DocumentCode
2439809
Title
Finding suitable programs: Semantic search with incomplete and lightweight specifications
Author
Stolee, Kathryn T.
Author_Institution
Dept. of Comput. Sci. & Eng., Univ. of Nebraska - Lincoln, Lincoln, NE, USA
fYear
2012
fDate
2-9 June 2012
Firstpage
1571
Lastpage
1574
Abstract
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.
Keywords
formal specification; information retrieval; programming languages; search engines; SMT solver; Yahoo Pipes mashup language; abstraction level; code search literature; incomplete specifications; lightweight specifications; matching program searching; program encodings; program repository; programming languages; semantic approach; semantic search; suitable code finding; suitable program finding; syntactic approach; Concrete; Encoding; Lattices; Mashups; Semantics; Syntactics; SMT solvers; code reuse; constraints; program composition; semantic search;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Engineering (ICSE), 2012 34th International Conference on
Conference_Location
Zurich
ISSN
0270-5257
Print_ISBN
978-1-4673-1066-6
Electronic_ISBN
0270-5257
Type
conf
DOI
10.1109/ICSE.2012.6227034
Filename
6227034
Link To Document