English

Program Synthesis using Natural Language

Programming Languages 2015-09-02 v1

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 keyword-programming 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.

Keywords

Cite

@article{arxiv.1509.00413,
  title  = {Program Synthesis using Natural Language},
  author = {Aditya Desai and Sumit Gulwani and Vineet Hingorani and Nidhi Jain and Amey Karkare and Mark Marron and Sailesh R and Subhajit Roy},
  journal= {arXiv preprint arXiv:1509.00413},
  year   = {2015}
}
R2 v1 2026-06-22T10:46:43.591Z