Keyword programming in Java']Java

被引:12
|
作者
Little, Greg [1 ]
Miller, Robert C. [1 ]
机构
[1] MIT, CSAIL, Cambridge, MA 02139 USA
关键词
!text type='Java']Java[!/text; Autocomplete; Code assistants;
D O I
10.1007/s10515-008-0041-9
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:37 / 71
页数:35
相关论文
共 50 条
  • [1] Keyword programming in Java
    Greg Little
    Robert C. Miller
    [J]. Automated Software Engineering, 2009, 16
  • [2] Keyword programming in Java
    MIT CSAIL, 32 Vassar Street, Cambridge, MA 02139, United States
    [J]. Autom Software Eng, 1600, 1 (37-71):
  • [3] Programming in Java']Java
    Rudall, BH
    [J]. ROBOTICA, 1997, 15 : 202 - 202
  • [4] SPMD programming in Java']Java
    Hummel, SF
    Ngo, T
    Srinivasan, H
    [J]. CONCURRENCY-PRACTICE AND EXPERIENCE, 1997, 9 (06): : 621 - 631
  • [5] Is Java']Java for scientific programming?
    Dubois, PF
    [J]. COMPUTERS IN PHYSICS, 1997, 11 (06): : 611 - +
  • [6] Java']Java programming language
    Pappas, F
    [J]. COMPUTER, 1996, 29 (07) : 105 - 105
  • [7] OpenGL programming in Java']Java
    Xu, ZG
    Yon, YS
    Chen, JX
    [J]. COMPUTING IN SCIENCE & ENGINEERING, 2005, 7 (01) : 51 - 55
  • [8] Functional programming in java']java
    Zander, M
    [J]. DR DOBBS JOURNAL, 2005, 30 (11): : 60 - 63
  • [9] Better Java']Java programming
    Wayner, P
    [J]. BYTE, 1996, 21 (09): : 63 - 64
  • [10] Structured programming in Java']Java
    Gibbons, J
    [J]. ACM SIGPLAN NOTICES, 1998, 33 (04) : 40 - 43