skip to main content
10.1145/1321631.1321646acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

Keyword programming in java

Published: 05 November 2007 Publication History

Abstract

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 keywords provided by the user into a valid expression. Prior work has demonstrated the feasibility and merit of this approach in limited domains. This paper presents a new algorithm that scales to the much larger domain of general-purpose Java programming. We tested the algorithm by extracting keywords from method calls in open source projects, and found that it could accurately reconstruct over 90% of the original expressions. We also conducted a study using keywords generated by users, whose results suggest that users can obtain correct Java code using keyword queries as accurately as they can write the correct Java code themselves

References

[1]
Christiane Fellbaum, editor. WordNet: An Electronic Lexical Database. Bradford Books, 1998.
[2]
Rosco Hill and Joe Rideout. Automatic Method Completion. Proceedings of Automated Software Engineering (ASE 2004), pp. 228--235.
[3]
J.-J. Jeng and B. H. C. Cheng. Specification Matching for Software Reuse: A Foundation. In Proceedings of the 1995 Symposium on Software reusability, pp. 97--105, 1995.
[4]
Greg Little, Tessa A. Lau, Allen Cypher, James Lin, Eben M. Haber, and Eser Kandogan. Koala: Capture, Share, Automate, Personalize Business Processes on the Web. Proceedings of CHI 2007, to appear.
[5]
Greg Little, and Robert C. Miller. Translating Keyword Commands into Executable Code. Proceedings of User Interface Software & Technology (UIST 2006), pp. 135--144.
[6]
David Mandelin, Lin Xu, Rastislav Bodik, Doug Kimelman. Jungloid Mining: Helping to Navigate the API Jungle. Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pp. 48--61.
[7]
R. Prieto-Diaz and P. Freeman. Classifying Software for Reusability. IEEE Software, 4(1):616, 1987.
[8]
M. Rittri. Retrieving library identifiers via equational matching of types. Proceedings of the tenth international conference on Automated deduction, pp. 603--617, 1990.
[9]
Naiyana Sahavechaphan and Kajal Claypool. XSnippet: Mining For Sample Code. Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented Programming Systems, Languages, and Applications (OOPSLA 2006), pp. 413--430.
[10]
N. Tansalarak and K. T. Claypool. Finding a Needle in the Haystack: A Technique for Ranking Matches between Components. In Proceedings of the 8th International SIGSOFT Symposium on Component-based Software Engineering (CBSE 2005): Software Components at Work, May 2005.
[11]
Y. Ye, G. Fischer, and B. Reeves. Integrating active information delivery and reuse repository systems. In International Symposium on Foundations of Software Engineeringq, pp. 60--68, November 2000.
[12]
Y. Ye and G. Fischer. Supporting reuse by delivering task-relevant and personalized information. In Proceedings of the 24th International Conference on Software Engineering (ICSE-02), pp. 513--523, May 2002.
[13]
A. M. Zaremski and J. M. Wing. Signature matching: a tool for using software libraries. ACM Transactions on Software Engineering and Methodology, (2):146--170, April 1995.
[14]
A. M. Zaremski and J. M. Wing. Specification matching of software components. ACM Transactions on Software Engineering and Methodology, 6(4):333--369, October 1997.

Cited By

View all
  • (2024)Generating Java Methods: An Empirical Assessment of Four AI-Based Code AssistantsProceedings of the 32nd IEEE/ACM International Conference on Program Comprehension10.1145/3643916.3644402(13-23)Online publication date: 15-Apr-2024
  • (2021)Natural mapping between voice commands and APIsOpen Computer Science10.1515/comp-2020-012511:1(135-145)Online publication date: 13-Jan-2021
  • (2021)Searching a database of source codes using contextualized code searchProceedings of the VLDB Endowment10.14778/3401960.340197213:10(1765-1778)Online publication date: 10-Mar-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ASE '07: Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering
November 2007
590 pages
ISBN:9781595938824
DOI:10.1145/1321631
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 05 November 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. autocomplete
  2. code assistants
  3. java

Qualifiers

  • Research-article

Conference

ASE07

Acceptance Rates

Overall Acceptance Rate 82 of 337 submissions, 24%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)15
  • Downloads (Last 6 weeks)0
Reflects downloads up to 04 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Generating Java Methods: An Empirical Assessment of Four AI-Based Code AssistantsProceedings of the 32nd IEEE/ACM International Conference on Program Comprehension10.1145/3643916.3644402(13-23)Online publication date: 15-Apr-2024
  • (2021)Natural mapping between voice commands and APIsOpen Computer Science10.1515/comp-2020-012511:1(135-145)Online publication date: 13-Jan-2021
  • (2021)Searching a database of source codes using contextualized code searchProceedings of the VLDB Endowment10.14778/3401960.340197213:10(1765-1778)Online publication date: 10-Mar-2021
  • (2019)Designing Voice-Controllable APIs2019 IEEE 15th International Scientific Conference on Informatics10.1109/Informatics47936.2019.9119302(000019-000024)Online publication date: Nov-2019
  • (2018)Generative transformation via abstract change scriptInternational Journal of Knowledge-based and Intelligent Engineering Systems10.3233/KES-18039122:4(277-286)Online publication date: 24-Dec-2018
  • (2018)Exploiting abstract change pattern from code changesJournal of Intelligent & Fuzzy Systems10.3233/JIFS-16969835:2(1597-1608)Online publication date: 26-Aug-2018
  • (2018)IrisProceedings of the 2018 CHI Conference on Human Factors in Computing Systems10.1145/3173574.3174047(1-12)Online publication date: 21-Apr-2018
  • (2018)Towards Semantic Approaches for General-Purpose End-User Development2018 Second IEEE International Conference on Robotic Computing (IRC)10.1109/IRC.2018.00077(369-376)Online publication date: Jan-2018
  • (2018)Seeking the user interfaceAutomated Software Engineering10.1007/s10515-017-0216-325:1(157-193)Online publication date: 1-Mar-2018
  • (2017)DemoMatch: API discovery from demonstrationsACM SIGPLAN Notices10.1145/3140587.306238652:6(64-78)Online publication date: 14-Jun-2017
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media