End-User Software Engineering in Natural Language

impulseverseAI and Robotics

Oct 24, 2013 (4 years and 17 days ago)

73 views


End
-
User Software Engineering in
Natural Language




Abstract

In the search for easier
-
to
-
use environments for End
-
Users to do s
oftware development, everybody
overlooks the obvious choice


using natural language
to communicate between the user and the machine.
Problems of ambiguity and imprecision are usually
taken to be prohibitive, but we believe that modern
natural language pro
cessing techniques and Common
Sense reasoning can be used to create a workable
environment for the creation and modification of
programs. We present Metafor, a program
outliner/editor that takes natural language input and
allows a user to have a dialogue w
ith the system about
program construction.

Keywords

Natural language processing, Programming, Software
Engineering, Dialogue management,

Copyright is held by the author/owner(s).

CHI 2006,
April 22

28, 2006, Montréal, Québec, Canada.

ACM 1
-
59593
-
298
-
4/06/0004.

Henry Lieberman

MIT Media Lab

20 Ames St. 384A

Cambridge, MA 02139 USA

lieber@media.mit.edu


Hugo Liu

MIT Media Lab

20 Ames St.

Cambridge, MA 02139 USA

hugo@media.mit.edu


Ying
Li

MIT Media Lab

20 Ames St.

Cambridge, MA 02139 USA

cyli@media.mit.edu




2

ACM Classification Keywords

D.1 PROGRAMMING TECHNIQUES (E), D.2 SOFTWARE
ENGINEERING (K.6.3), D.3 PROGRAMMING
LANGUAG
ES, I.2 ARTIFICIAL INTELLIGENCE



Natural Language Interaction for Software
Engineering

We explore the idea of using descriptions in a natural
language like English as a representation for programs.
While we cannot yet convert arbitrary English
descriptio
ns to fully specified code, we can use a
reasonably expressive subset of English as a
conceptualization, visualization, editing and debugging
tool. Simple descriptions of program objects and their
behavior are converted to scaffolding (underspecified)
code

fragments, that can be used as feedback for the
designer, and which can later be elaborated. Roughly
speaking, noun phrases can be interpreted as program
objects; verbs can be functions, adjectives can be
properties. A surprising amount of information abo
ut
program structure can be inferred by our parser from
relations implicit in the linguistic structure. We refer to
this phenomenon as
programmatic semantics
. We
present a program editor,
Metafor
, that dynamically
converts a user's stories into program cod
e, and in a
user study, participants found it useful as a
brainstorming tool.

Metafor has some interesting capabilities for
refactoring

programs. Different ways of describing objects in
natural language can give rise to different
representation and impleme
ntation decisions as
embodied in the details of the code. Conventional
programming requires making up
-
front commitments to
overspecified details, and saddles the user with having
to perform distributed, error
-
prone edits in order to
change design decisions
. Metafor uses the inherent
"ambiguity" of natural language as an advantage,
automatically performing refactoring as the system
learns more about the user's intent.


Figure 1.

The Metafor programming environment. Natural
language input at the lower lef
t produces Python code at the
lower right. The other two panes display system state and are
not intended for the end
-
user.



3

References

Hugo Liu and Henry Lieberman (2005) Programmatic
Semantics for Natural Language Interfaces.
Proceedings of the ACM Confe
rence on Human Factors
in Computing Systems, CHI 2005, April 5
-
7, 2005,
Portland, OR, USA. ACM Press.


Hugo Liu and Henry Lieberman (2005) Metafor:
Visualizing Stories as Code. Proceedings of the ACM
International Conference on Intelligent User Interfaces,

IUI 2005, January 9
-
12, 2005, San Diego, CA, USA, to
appear. ACM 2005.


Hugo Liu and Henry Lieberman (2004) Toward a
Programmatic Semantics of Natural Language.
Proceedings of VL/HCC'04: the 20th IEEE Symposium
on Visual Languages and Human
-
Centric Comput
ing.
pp. 281
-
282. September 26
-
29, 2004, Rome. IEEE
Computer Society Press.


Henry Lieberman and Hugo Liu. Feasibility Studies for
Programming in Natural Language. H. Lieberman, F.
Paterno, and V. Wulf (Eds.) Perspectives in End
-
User
Development, to appear
. Springer, 2006.