Signature matching: a tool for using software libraries
ACM Transactions on Software Engineering and Methodology (TOSEM)
Specification matching for software reuse: a foundation
SSR '95 Proceedings of the 1995 Symposium on Software reusability
Specification matching of software components
ACM Transactions on Software Engineering and Methodology (TOSEM)
Integrating active information delivery and reuse repository systems
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Supporting reuse by delivering task-relevant and personalized information
Proceedings of the 24th International Conference on Software Engineering
Retrieving Library Identifiers via Equational Matching of Types
Proceedings of the 10th International Conference on Automated Deduction
Proceedings of the 19th IEEE international conference on Automated software engineering
Jungloid mining: helping to navigate the API jungle
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Translating keyword commands into executable code
UIST '06 Proceedings of the 19th annual ACM symposium on User interface software and technology
XSnippet: mining For sample code
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Koala: capture, share, automate, personalize business processes on the web
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Classifying Software for Reusability
IEEE Software
Finding a needle in the haystack: a technique for ranking matches between components
CBSE'05 Proceedings of the 8th international conference on Component-Based Software Engineering
No Code Required: Giving Users Tools to Transform the Web
No Code Required: Giving Users Tools to Transform the Web
A search engine for finding highly relevant applications
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Towards a better code completion system by API grouping, filtering, and popularity-based ranking
Proceedings of the 2nd International Workshop on Recommendation Systems for Software Engineering
Exemplar: EXEcutable exaMPLes ARchive
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Leveraging usage similarity for effective retrieval of examples in code repositories
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Code completion of multiple keywords from abbreviated input
Automated Software Engineering
Codelets: linking interactive documentation and example code in the editor
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
SNIPR: complementing code search with code retargeting capabilities
Proceedings of the 2013 International Conference on Software Engineering
Portfolio: Searching for relevant functions and their usages in millions of lines of code
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Hi-index | 0.00 |
Keyword programming is a novel technique for reducing the need to remember details of programming language syntax and APIs, by translating a small number of unordered keywords provided by the user into a valid expression. In a sense, the keywords act as a query that searches the space of expressions that are valid in the given context. Prior work has demonstrated the feasibility and merit of this approach in limited domains. This paper explores the potential for employing this technique in much larger domains, specifically general-purpose programming languages like Java. We present an algorithm for translating keywords into Java method call expressions. When tested on keywords extracted from existing method calls in Java code, the algorithm can accurately reconstruct over 90% of the original expressions. We tested the algorithm on keywords provided by users in a web-based study. The results suggest that users can obtain correct Java code using keyword queries as accurately as they can write the correct Java code themselves. We implemented the algorithm in an Eclipse plug-in as an extension to the autocomplete mechanism and deployed it in a preliminary field study of several users, with mixed results. One interesting result of this work is that most of the information in Java method call expressions lies in the keywords, and details of punctuation and even parameter ordering can often be inferred automatically.