Abstract
Interacting with computers is a ubiquitous activity for millions of people. Repetitive or specialized tasks often require creation of small, often one-off, programs. End-users struggle with learning and using the myriad of domain-specific languages (DSLs) to effectively accomplish these tasks. We present a general framework for constructing program synthesizers that take natural language (NL) inputs and produce expressions in a target DSL. The framework takes as input a DSL definition and training data consisting of NL/DSL pairs. From these it constructs a synthesizer by learning optimal weights and classifiers (using NLP features) that rank the outputs of a keywordprogramming based translation. We applied our framework to three domains: repetitive text editing, an intelligent tutoring system, and flight information queries. On 1200+ English descriptions, the respective synthesizers rank the desired program as the top-1 and top-3 for 80% and 90% descriptions respectively.
Original language | English |
---|---|
Title of host publication | Proceedings - 2016 IEEE/ACM 38th IEEE International Conference on Software Engineering Companion, ICSE 2016 |
Pages | 345-356 |
Number of pages | 12 |
ISBN (Electronic) | 9781450339001, 9781450342056 |
DOIs | |
State | Published - May 14 2016 |
Event | 2016 IEEE/ACM 38th IEEE International Conference on Software Engineering, ICSE 2016 - Austin, United States Duration: May 14 2016 → May 22 2016 |
Publication series
Name | Proceedings - International Conference on Software Engineering |
---|---|
Volume | 14-22-May-2016 |
ISSN (Print) | 0270-5257 |
Conference
Conference | 2016 IEEE/ACM 38th IEEE International Conference on Software Engineering, ICSE 2016 |
---|---|
Country/Territory | United States |
City | Austin |
Period | 5/14/16 → 5/22/16 |
Bibliographical note
Publisher Copyright:© 2016 ACM.
ASJC Scopus subject areas
- Software