Workshop on

Approaches and Applications of Inductive Programming (AAIP)

to be held on August 7th 2005 in conjunction with the 22nd International Conference on Machine Learning (ICML 2005) in Bonn, Germany. Organized by
Emanuel Kitzelmann, Roland Olsson, Ute Schmid.



Automatic induction of programs from input/output examples is an active area of research since the sixties and of interest for machine learning research as well as for automated software engineering.

In the early days of inductive programming research there were proposed several approaches to the synthesis of Lisp programs from examples or traces. Due to only limited progress, interest decreased in the mid-eighties and research focused on inductive logic programming (ILP) instead. Although ILP proved to be a powerful approach to learning relational concepts, applications to learning of recursive clauses had only moderate success. Learning recursive programs from examples is also investigated in genetic programming and other forms of evolutionary computation. Here again, functional programs are learned from sets of positive examples together with an output evaluation function which specify the desired input/output behavior of the program to be learned. A fourth approach is learning recursive programs in the context of grammar inference.

Currently, there is no single prominent approach to inductive program synthesis. Instead, research is scattered over the different approaches. Nevertheless, inductive programming is a research topic of crucial interest for machine learning and artificial intelligence in general. The ability to generalize a program – containing control structures as resursion or loops – from examples is a challenging problem which calls for approaches going beyond the requirements of algorithms for concept learning. Pushing research forward in this area can give important insights in the nature and complexity of learning as well as enlarging the field of possible applications.

Typical areas of application where learning of programs or recursive rules are called for, are first in the domain of software engineering where structural learning, software assistants and software agents can help to relieve programmers from routine tasks, give programming support for endusers, or support of novice programmers and programming tutor systems. Further areas of application are language learning, learning recursive control rules for AI-planning, learning recursive concepts in web-mining or for data-format transformations.

Goals of the Workshop

Today research on program induction is scattered over different communities. One goal of the workshop is to bring together researchers from these different communities with the common interest on induction of general programs regarding theory, methodology and applications. In our opinion, getting acquainted with other approaches to this problem, their relative merits and limits, will strengthen research in inductive programming by cross-fertilization. We hope, that for the machine learning community at large the challenging topic of program induction which is currently rather neglected, might come in the focus of interest.


The workshop will be interesting to anyone studying the inductive synthesis of general programs in any aspect.

Topics of interest include but are not limited to:

  • New approaches of synthesis of recursive programs with techniques from inductive logic programming, genetic programming, synthesis of functional programs, grammar inference.
  • Theoretical analyses of learnability of classes of recursive/loop programs.
  • Applications of inductive synthesis of general programs in the context of software engineering, such as programming support for endusers, novice programmers and routine programming.
  • Applications of inductive synthesis of general programs for policy learning, language learning, web-mining, data transformation.

Please send technical remarks to the Webmaster, emanuel.kitzelmann(at)

Last modified: Thu Jan 27 17:21:48 2005