Introduction to algorithms
Quickly detecting relevant program invariants
Proceedings of the 22nd international conference on Software engineering
The Science of Programming
A Discipline of Programming
Version Space Algebra and its Application to Programming by Demonstration
ICML '00 Proceedings of the Seventeenth International Conference on Machine Learning
Sheepdog: learning procedures for technical support
Proceedings of the 9th international conference on Intelligent user interfaces
Efficient incremental algorithms for dynamic detection of likely invariants
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Augmentation-based learning: combining observations and user edits for programming-by-demonstration
Proceedings of the 11th international conference on Intelligent user interfaces
Learning hierarchical task networks by observation
ICML '06 Proceedings of the 23rd international conference on Machine learning
Interactive presentation: Automatic model generation for black box real-time systems
Proceedings of the conference on Design, automation and test in Europe
Recovering from errors during programming by demonstration
Proceedings of the 13th international conference on Intelligent user interfaces
Improving User Taught Task Models
UM '07 Proceedings of the 11th international conference on User Modeling
Programming with angelic nondeterminism
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Sheepdog, parallel collaborative programming-by-demonstration
Knowledge-Based Systems
Dimensions in program synthesis
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Automating string processing in spreadsheets using input-output examples
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 34th International Conference on Software Engineering
Liberating the programmer with prorogued programming
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Game programming by demonstration
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Hi-index | 0.00 |
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.