Inductive Programming: A Survey of Program Synthesis Techniques

Inductive programming (IP)—the use of inductive reasoning methods for programming, algorithm design, and software development—is a currently emerging research field. A major subfield is inductive program synthesis, the (semi-)automatic construction of programs from exemplary behavior. Inductive program synthesis is not a unified research field until today but scattered over several different established research fields such as machine learning, inductive logic programming, genetic programming, and functional programming. This impedes an exchange of theory and techniques and, as a consequence, a progress of inductive programming. In this paper we survey theoretical results and methods of inductive program synthesis that have been developed in different research fields until today.

[1]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[2]  José Hernández-Orallo,et al.  Incremental Learning of Functional Logic Programs , 2001, FLOPS.

[3]  Pavel B. Brazdil,et al.  Machine Learning: ECML-93 , 1993, Lecture Notes in Computer Science.

[4]  Stephen Muggleton,et al.  Efficient Induction of Logic Programs , 1990, ALT.

[5]  Tina Yu,et al.  Hierarchical Processing for Evolving Recursive and Modular Programs Using Higher-Order Functions and Lambda Abstraction , 2001, Genetic Programming and Evolvable Machines.

[6]  John R. Koza,et al.  Genetic Programming III - Darwinian Invention and Problem Solving , 1999, Evolutionary Computation.

[7]  Shan-Hwei Nienhuys-Cheng,et al.  Foundations of Inductive Logic Programming , 1997, Lecture Notes in Computer Science.

[8]  Alan W. Biermann,et al.  Automatic Program Construction Techniques , 1984 .

[9]  Stephen Muggleton,et al.  Inverse entailment and progol , 1995, New Generation Computing.

[10]  John R. Koza,et al.  Genetic programming - on the programming of computers by means of natural selection , 1993, Complex adaptive systems.

[11]  Francesco Bergadano,et al.  Inductive Logic Programming: From Machine Learning to Software Engineering , 1995 .

[12]  Thomas G. Dietterich What is machine learning? , 2020, Archives of Disease in Childhood.

[13]  Chowdhury Rahman Mofizur,et al.  Top-down Induction of Recursive Programs from Small Number of Sparse Examples , 1995 .

[14]  Werner Kluge,et al.  Implementation of Functional Languages , 1996, Lecture Notes in Computer Science.

[15]  Alípio Mário Jorge,et al.  Iterative Induction of Logic Programs, An approach to logic program synthesis from incomplete specifications , 1999, AI Commun..

[16]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[17]  Luc De Raedt,et al.  Inductive Logic Programming: Theory and Methods , 1994, J. Log. Program..

[18]  Roland Olsson,et al.  Inductive Functional Programming Using Incremental Program Transformation , 1995, Artif. Intell..

[19]  Pierre Flener,et al.  Inductive Programming , 2001, Automated Software Engineering.

[20]  Jean-Pierre Jouannaud,et al.  Program Synthesis from Examples of Behavior , 1983 .

[21]  Stefan Kahrs,et al.  Genetic programming with primitive recursion , 2006, GECCO '06.

[22]  Luc De Raedt,et al.  Machine Learning: ECML-94 , 1994, Lecture Notes in Computer Science.

[23]  Ute Schmid,et al.  A Unifying Framework for Analysis and Evaluation of Inductive Programming Systems , 2009 .

[24]  Nobuhiro Inuzuka,et al.  Induction of Logic Programs with More Than One Recursive Clause by Analyzing Saturations , 1997, ILP.

[25]  Phillip D. Summers,et al.  A Methodology for LISP Program Construction from Examples , 1977, J. ACM.

[26]  De Raedt,et al.  Advances in Inductive Logic Programming , 1996 .

[27]  Ute Schmid,et al.  Inductive Synthesis of Functional Programs: An Explanation Based Generalization Approach , 2006, J. Mach. Learn. Res..

[28]  L. Hamel,et al.  An Inductive Programming Approach to Algebraic Specification , 2007, AAIP.

[29]  Stan Matwin,et al.  Efficient Induction of Recursive Prolog Definitons , 1996, Canadian Conference on AI.

[30]  Stan Matwin,et al.  Inverting Implication with Small Training Sets , 1994, ECML.

[31]  Pierre Flener,et al.  Inductive Synthesis of Recursive Logic Programs: Achievements and Prospects , 1999, J. Log. Program..

[32]  Emanuel Kitzelmann,et al.  Analytical Inductive Functional Programming , 2009, LOPSTR.

[33]  Derek Partridge,et al.  The Case for Inductive Programming , 1997, Computer.

[34]  Pierre Flener,et al.  Inductive Logic Program Synthesis with DIALOGS , 1996, Inductive Logic Programming Workshop.

[35]  Susumu Katayama Systematic search for lambda expressions , 2005, Trends in Functional Programming.

[36]  Man Leung Wong,et al.  Evolving recursive programs by using adaptive grammar based genetic programming , 2006, Genet. Program. Evolvable Mach..

[37]  Ute Schmid,et al.  Inductive Synthesis of Functional Programs , 2003, Lecture Notes in Computer Science.

[38]  Alan W. Biermann,et al.  The Inference of Regular LISP Programs from Examples , 1978, IEEE Transactions on Systems, Man, and Cybernetics.

[39]  Gordon Plotkin,et al.  A Note on Inductive Generalization , 2008 .

[40]  R. Mike Cameron-Jones,et al.  FOIL: A Midterm Report , 1993, ECML.

[41]  Amy P. Felty,et al.  Genetic programming with polymorphic types and higher-order functions , 2008, GECCO '08.

[42]  Ute Schmid Inductive Synthesis of Functional Programs: Universal Planning, Folding of Finite Programs, and Schema Abstraction by Analogical Reasoning , 2003 .

[43]  Marinus J. Plasmeijer,et al.  Gast: Generic Automated Software Testing , 2002, IFL.