PiE: programming in eliza

Eliza, a primitive example of natural language processing, adopts a rule-based method to conduct simple conversations with people. In this paper, we extend Eliza for a novel application. We propose a system to assist with program synthesis called Programming in Eliza (PiE). According to a set of rules, PiE can automatically synthesize programs from natural language conversations between Eliza and users. PiE is useful for programming in domain-specific languages. We have implemented PiE to synthesize programs in the LOGO programming language, and our experimental results show that, on average, the success ratio is 88.4% for synthesizing LOGO programs from simple conversations with Eliza. PiE also enables end-users with no experience to program in LOGO with a smoother learning curve.

[1]  Hugo Liu,et al.  Feasibility Studies for Programming in Natural Language , 2006, End User Development.

[2]  Sumit Gulwani,et al.  NLyze: interactive programming by natural language for spreadsheet data analysis and manipulation , 2014, SIGMOD Conference.

[3]  Andrew Begel Programming By Voice : A Domain-specific Application of Speech Recognition , 2005 .

[4]  William N. Robinson,et al.  A Rule-Based Natural Language Technique for Requirements Discovery and Classification in Open-Source Software Development Projects , 2011, 2011 44th Hawaii International Conference on System Sciences.

[5]  Alan W. Biermann,et al.  Programming in natural language: “NLC” as a prototype , 1979, ACM '79.

[6]  Sumit Gulwani,et al.  Automated feedback generation for introductory programming assignments , 2012, PLDI.

[7]  Joseph Weizenbaum,et al.  ELIZA—a computer program for the study of natural language communication between man and machine , 1966, CACM.

[8]  Sumit Gulwani,et al.  Synthesizing geometry constructions , 2011, PLDI '11.

[9]  Betty Kirkpatrick,et al.  Roget's Thesaurus , 1852 .

[10]  Alan W. Biermann,et al.  An Experimental Study of Natural Language Programming , 1983, Int. J. Man Mach. Stud..

[11]  Eric Brill,et al.  A Simple Rule-Based Part of Speech Tagger , 1992, HLT.

[12]  Ufuk Topcu,et al.  Correct, Reactive, High-Level Robot Control , 2011, IEEE Robotics & Automation Magazine.

[13]  Edsger W. Dijkstra,et al.  On the Foolishness of "Natural Language Programming" , 1978, Program Construction.

[14]  Sumit Gulwani,et al.  Automating string processing in spreadsheets using input-output examples , 2011, POPL '11.

[15]  Zohar Manna,et al.  A Deductive Approach to Program Synthesis , 1979, TOPL.

[16]  Sumit Gulwani,et al.  Automatically Generating Algebra Problems , 2012, AAAI.

[17]  Sumit Gulwani,et al.  SmartSynth: synthesizing smartphone automation scripts from natural language , 2013, MobiSys '13.

[18]  Hadas Kress-Gazit,et al.  Iterative temporal motion planning for hybrid systems in partially unknown environments , 2013, HSCC '13.

[19]  Seymour Papert A Computer Laboratory for Elementary Schools , 1971 .

[20]  Alan W. Biermann,et al.  Natural Language Programming , 1983 .

[21]  Richard C. T. Lee,et al.  PROW: A Step Toward Automatic Program Writing , 1969, IJCAI.