|
Research
Abstracts - 2007 |
Keyword ProgrammingGreg Little & Robert MillerMotivationModern applications often provide scripting interfaces to programmatically control their content. For instance, Microsoft Word allows users to modify documents using Visual Basic. Blender, an open source application for 3d modeling and animation, allows users to write Python scripts to manipulate 3d models. Firefox, a popular web browser, has extensions like Chickenfoot[1] that allow users to modify webpages using Javascript. The Gimp, an open source image editing program, allows users to modify images using LISP. These, and many other applications provide scripting support. Scripting is useful in these applications to automate repetitive tasks, and to record complicated procedures so that they can be repeated later (or shared with other people). Unfortunately, users must overcome several hurdles in order to write scripts:
Many people who use the applications mentioned above are not familiar with programming. Even those who are may not be familiar with the particular scripting language in use. And if they are, they still need to learn the API for the application. This learning curve is so high that many professional users of these applications do not know how to write scripts for them. ApplicationWe propose Keyword Programming: a programming paradigm that eschews rigid syntax and strives to parse suggestive and loosely grammatical expressions. Consider the expression "left margin 2 inches" in the context of Microsoft Word. This expression suggests the idea of making the left margin of the current document 2 inches wide. It can be expressed in the formal syntax of Visual Basic as ActiveDocument.PageSetup.LeftMargin = InchesToPoints(2). A Keyword Programming system will try to automatically generate this code from the original expression. Using this approach, users face a smaller set of hurdles for writing scripts:
Current WorkWe have created a Keyword Programming system in the web domain [2]. We are currently working to extend this system to the Java domain. Our goal is to create an Eclipse plugin that offers auto-complete style suggestions for a sequence of keywords, as shown in this figure: Figure 1. Diagram depicting Keyword Completion in Eclipse. Our two main efforts right now include:
AcknowledgementsThis work was supported in part by the National Science Foundation under award number IIS-0447800, and by Quanta Computer as part of the TParty project. Any opinions, findings, conclusions or recommendations expressed in this publication are those of the authors and do not necessarily reflect the views of the sponsors. References[1] Michael Bolin, Matthew Webber, Philip Rha, Tom Wilson, and Robert C. Miller. "Automation and Customization of Rendered Web Pages." UIST 2005, pp. 163-172. Winner of best paper award. [2] Greg Little, and Robert C. Miller. "Translating Keyword Commands into Executable Code." UIST, 2006 |
||||
|