Learning programs from traces using version space algebra

  • Authors:
  • Tessa Lau;Pedro Domingos;Daniel S. Weld

  • Affiliations:
  • IBM TJ Watson Research, Yorktown Heights, NY;University of Washington, Seattle, WA;University of Washington, Seattle, WA

  • Venue:
  • Proceedings of the 2nd international conference on Knowledge capture
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

While existing learning techniques can be viewed as inducing programs from examples, most research has focused on rather narrow classes of programs, e.g., decision trees or logic rules. In contrast, most of today's programs are written in languages such as C++ or Java. Thus, many tasks we wish to automate (e.g. programming by demonstration and software reverse engineering) might be best formulated as induction of code in a procedural language. In this paper we apply version space algebra [10] to learn such procedural programs given execution traces. We consider two variants of the problem (whether or not program-step information is included in the traces) and evaluate our implementation on a corpus of programs drawn from introductory computer science textbooks. We show that our system can learn correct programs from few traces.