October 25 – 30 , 2015, Dagstuhl Seminar 15442
Approaches and Applications of Inductive Programming
1 / 3 >
For support, please contact
Inductive programming research addresses the problem of learning (mostly declarative) programs from incomplete specifications, such as input/output examples, observed traces, or constraints. Beginning in the 1960s, 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.
The recent release of FlashFill as a plug-in inductive programming tool for Microsoft Excel is an impressive demonstration that inductive programming research has matured in such a way that commercial applications become feasible. Similarly, the field has attracted widespread interest in computer science as a whole, as illustrated by the recent review article published by the Communications of the ACM .
In the seminar, we brought together researchers from different areas of computer science – especially from machine learning, AI, declarative programming, and software engineering – and researchers from cognitive psychology interested in inductive learning as well as in teaching and learning computer programming. Furthermore, participants from industry presented current as well as visionary applications for inductive programming.
We addressed many aspects which partially were identified as relevant topics during the previous Dagstuhl Deminar 13502 (http://www.dagstuhl.de/13502). In particular, we had the following sessions for presentations:
- Session: General techniques, languages and systems for inductive logic and inductive functional programming.
- Session: End-user programming, programming by example and applications
- Session: Program synthesis and transformation
- Cognitive Aspects of Induction
In addition, we had several systems demos and tutorials (some of them `hands-on'):
- System demo on Metagol.
- Hands-on-Tutorial: The MagicHaskeller Library and Server System
- Tutorial: FlashMeta SDK for creating programming-by-example tools
- Tutorial: Sketch synthesis infrastructure
The seminar also included a DemoFest, where several systems were demonstrated in small groups in a relaxed atmosphere.
The first and second days the following topics were identified and further discussed in working groups during the rest of the seminar:
- Benchmarks, Evaluation, and Applications
- General-Purpose IP Infrastructures and Applicability and Evaluation Criteria for IP Approaches in the Context of AI
- Probabilities in IP
Concluding remarks and future plans
In the final panel discussion the results of the seminar were summarised as well as future plans.
Regarding the seminar, there were several suggestions that topics should be more mixed, instead of grouping them too much into "silo" sessions. About the format of the seminar, there was a general agreement that the change from half a week to one week had been beneficial, and that the DemoFest had been a real success. Indeed, the possibility of having several independent demos earlier in the week and more demo sessions (or DemoFests) was a possible suggestion for subsequent meetings.
The following topics were elaborated about future actions:
- Make the community and the area more visible through tutorials and workshops at major conferences, or summer schools.
- Integrate tools, demos, videos, tutorials and other kinds of material at www.inductive-programming.org/resources.html
- Focus on benchmarks and a common representation language for problems, and use the inductive-programming website to publish the benchmarks. Organise competitions (or hackathons building apps that use the underlying IP engines).
- Revitalise the mailing list (at the moment of writing this report the list is fully operative again, see http://www.inductive-programming.org/)
- Attract people from other areas (e.g., cognitive robotics).
- Change the frequency of the meetings to a 1-year cadence, with perhaps Dagstuhl every other year and a competition or summer school in between.
Overall, the main conclusion can be summarised as the realisation of a very significant progress in techniques and its exploitation in new applications, so it is now time to strengthen the visibility of the IP research and its community, for which this Dagstuhl seminar has served as a lever.
Creative Commons BY 3.0 Unported license
Jose Hernandez-Orallo, Stephen H. Muggleton, Ute Schmid, and Benjamin Zorn
Dagstuhl Seminar Series
- 17382: "Approaches and Applications of Inductive Programming" (2017)
- 13502: "Approaches and Applications of Inductive Programming" (2013)
- Artificial Intelligence / Robotics
- Programming Languages / Compiler
- Semantics / Formal Methods
- Inductive program synthesis
- End-user programming
- Constraint programming
- Probabilistic programming
- Cognitive modeling