Programming in Eliza
Open Access
- Author:
- Liu, Xiao
- Graduate Program:
- Information Sciences and Technology
- Degree:
- Master of Science
- Document Type:
- Master Thesis
- Date of Defense:
- December 17, 2015
- Committee Members:
- Dinghao Wu, Thesis Advisor/Co-Advisor
Mary Beth Rosson, Thesis Advisor/Co-Advisor
John Yen, Thesis Advisor/Co-Advisor - Keywords:
- Program Synthesis
Natural Language
Eliza
LOGO - Abstract:
- According to the technical report by Microsoft 2012, there will be a shortage of graduates to fill available job positions in computer-related occupations till 2020. One of the possible reasons accounts for the shortage is the challenge of mastering the skill to code; the rigid and abstruse syntax of programming languages is the first barrier. Out of creating an easier environment to program, this thesis proposes a system that allows users to program in natural language, which enhances the coding experience for novices as well as experienced programmers. Our prototype system, called PiE (Programming in Eliza), is based on Eliza, an early primitive AI prototype. The original Eliza was designed to be a psychotherapist. We make it a programming robot. Using a rule-based method, PiE interprets the natural commands into a universal intermediate language (PiE script) and programs in the target syntax will be synthesized according to the semantics we extract with the rules. To demonstrate the PiE system, we create PiE-LOGO, which synthesizes programs in the LOGO programming language that helps people to draw graphs. 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. We also build it with a voice module, with which children can interact with PiE by voice before learning to type, and users can play with it on mobile devices more easily. We also provide an online adaptation with explanatory step-by-step tutorial through which feedbacks for further improvement are collected.