ACM Computing Surveys (CSUR)
Retrieving reusable software by sampling behavior
ACM Transactions on Software Engineering and Methodology (TOSEM)
Specification matching of software components
ACM Transactions on Software Engineering and Methodology (TOSEM)
Efficient Specification-Based Component Retrieval
Automated Software Engineering
CodeGenie:: a tool for test-driven source code search
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
Code Conjurer: Pulling Reusable Software out of Thin Air
IEEE Software
Using assertions to help end-user programmers create dependable web macros
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Conversations in developer communities: a preliminary analysis of the yahoo! pipes community
Proceedings of the fourth international conference on Communities and technologies
Revealing the copy and paste habits of end users
VLHCC '09 Proceedings of the 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)
Exemplar: EXEcutable exaMPLes ARchive
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Exploring the use of crowdsourcing to support empirical studies in software engineering
Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement
Expressing computer science concepts through Kodu game lab
Proceedings of the 42nd ACM technical symposium on Computer science education
Refactoring pipe-like mashups for end-user programmers
Proceedings of the 33rd International Conference on Software Engineering
Synthesizing geometry constructions
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
How Well Do Search Engines Support Code Retrieval on the Web?
ACM Transactions on Software Engineering and Methodology (TOSEM)
End-User Programmers and their Communities: An Artifact-based Analysis
ESEM '11 Proceedings of the 2011 International Symposium on Empirical Software Engineering and Measurement
Hi-index | 0.00 |
Finding suitable code for reuse is a common task for programmers. Two general approaches dominate the code search literature: syntactic and semantic. While queries for syntactic search are easy to compose, the results are often vague or irrelevant. On the other hand, a semantic search may return relevant results, but current techniques require developers to write specifications by hand, are costly as potentially matching code need to be executed to verify congruence with the specifications, or only return exact matches. In this work, we propose an approach for semantic search in which programmers specify lightweight, incomplete specifications and an SMT solver automatically identifies programs from a repository, encoded as constraints, that match the specifications. The repository of programs is automatically encoded offline so the search for matching programs is efficient. The program encodings cover various levels of abstraction to enable partial matches when no or few exact matches exists. We instantiate this approach on a subset of the Yahoo! Pipes mashup language, and plan to extend our techniques to more traditional programming languages as the research progresses.