http://www.dagstuhl.de/13502

December 8 – 11, 2013, Dagstuhl Seminar 13502

Approaches and Applications of Inductive Programming

Organizers

Sumit Gulwani (Microsoft – Redmond, US)
Emanuel Kitzelmann (Universität Duisburg – Essen, DE)
Ute Schmid (Universität Bamberg, DE)

For support, please contact

Susanne Bach-Bernhard for administrative matters

Marc Herbstritt for scientific matters

Motivation

Inductive programming research addresses the problem of learning programs from incomplete specifications, such as input/output examples or constraints. Beginning in the 1960-ies, this area of research was initiated in artificial intelligence (AI) exploring the complex intellectual cognitive processes involved in producing program code which satisfies some specification. Furthermore, applications of AI for software engineering are investigated resulting in methodologies and techniques for automating parts of the program development process. Inductive programming can be seen as a very special subdomain of machine learning where the hypothesis space consists of classes of computer programs.

Nowadays, researchers working on inductive programming are distributed over different communities, especially inductive logic programming, evolutionary programming, grammar inference, functional programming, and programming languages and verification. Furthermore, similar approaches are of interest in programming by demonstration applications for end-user programming as well as in cognitive models of inductive learning.

Inductive programming methodologies are of potential use in different areas:

End-user development Even if the use of computers has become ubiquitous in everyday life, there is still a fundamental gap between users and their personal computers. Computers must be programmed, yet programming remains to be a highly specialized task requiring experts skills. As a consequence, millions of users carry out repetitive tasks or cannot even achieve a goal at all { although a few lines of code could potentially solve the problem. Inductive programming can help end users program computers by demonstrations, or even simply by examples.

Autonomous Intelligent Agents Generalizing particular problem-solving experience into general strategies that help to solve other problems in the same domain is a fundamental capability of human cognition. Inductive programming is a promising approach to computationally model this capability and to implement it in autonomous intelligent agents such as in tools for computer-aided education, and even in robots to make them more useful in open environments such as households.

Process Mining Computationally analyzing procedural data { e.g., biological network data or logs from business processes { by directly executable models such as Petri nets, becomes more and more important in science as well as in industry. Inductive programming will help to automatically mine such executable models from collected data.

Software Synthesis Inductive programming can even be useful in professional software development. In (deductive) software synthesis { e.g., synthesis of specific algorithm details that are hard to figure out by humans {, inductive reasoning can be used to generate program candidates from either user-provided data such as test cases or from data automatically derived from a formal specification. The aim of this seminar is to bring together researchers from the different areas where inductive programming is of interest. We expect that the possibility to discuss and evaluate approaches from different perspectives will be fruitful for (a) gaining better insights in general mechanisms underlying inductive programming algorithms, (b) identifying commonalities between induction algorithms and empirical knowledge about cognitive characteristics of the induction of complex rules, and (c) open up new areas for applications for inductive programming in end-user programming, support tools for example driven programming, and architectures for cognitive systems.

Classification

  • Artificial Intelligence / Robotics
  • Programming Languages / Compiler
  • Verification / Logic

Keywords

  • Inductive program synthesis
  • End-user programming
  • Universal artificial intelligence
  • Constraint programming
  • Probabilistic programming
  • Cognitive modeling

Book exhibition

Books from the participants of the current Seminar 

Book exhibition in the library, 1st floor, during the seminar week.

Documentation

In the series Dagstuhl Reports each Dagstuhl Seminar and Dagstuhl Perspectives Workshop is documented. The seminar organizers, in cooperation with the collector, prepare a report that includes contributions from the participants' talks together with a summary of the seminar.

 

Download overview leaflet (PDF).

Publications

Seminar participants may publish preprints within the scope of the seminar documentation as part of the Dagstuhl Preprint Archive.

 

Furthermore, a comprehensive peer-reviewed collection of research papers can be published in the series Dagstuhl Follow-Ups.

Dagstuhl's Impact

Please inform us when a publication was published as a result from your seminar. These publications are listed in the category Dagstuhl's Impact and are presented on a special shelf on the ground floor of the library.