Induction of recursive program schemes

  • Ute Schmid
  • Fritz Wysotzki
Inductive Logic Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1398)


In this paper we present an approach to the induction of recursive structures from examples which is based on the notion of recursive program schemes. We separate induction from examples in two stages: (1) constructing initial programs from examples and (2) folding initial programs to recursive program schemes. By this separation, the induction of recursive program schemes can be reduced to a pattern-matching problem which can be handled by a generic algorithm. Construction of initial programs is performed with an approach to universal planning. “Background knowledge” is given in the form of operators and their conditions of application. Furthermore synthesizing recursive program schemes instead of programs in a predefined programming language enables us to combine program synthesis and analogical reasoning. A recursive program scheme represents the class of structural identical programs and can be assigned different semantics by interpretation. We believe that our approach mimicks in some way the problem solving and learning behavior of a (novice) human programmer and that our approach integrates theoretical ideas and empirical results of learning by doing and learning by analogy from cognitive science in a unique framework.


Inductive Program Synthesis Planning and Learning Analogy Cognitive Modelling 


  1. 1.
    J.R. Anderson. Knowledge compilation: A general learning mechanism. In R.S. Michalski, J.G. Carbonell, and T.M. Mitchell, editors, Machine Learning — An AI Approach, volume 2, pages 289–310. Tioga, 1986.Google Scholar
  2. 2.
    J.R. Anderson, P. Pirolli, and R. Farrell. Learning to program recursive functions. In M.T.H. Chi, R. Glaser, and M.J. Farr, editors, The Nature of Expertise, pages 153–183. Lawrence Erlbaum, 1988.Google Scholar
  3. 3.
    A. W. Biermann, G. Guiho, and Y. Kodratoff, editors. Automatic Program Construction Techniques. Collier Macmillan, 1984.Google Scholar
  4. 4.
    G. Le Blanc. BMWk revisited: Generalization and formalization of an algorithm for detecting recursive relations in term sequences. In F. Bergadano and L. de Raedt, editors, Machine Learning, Proc. of ECML-94, pages 183–197, 1994.Google Scholar
  5. 5.
    W. W. Cohen. Desiderata for generaization-to-n algorithms. In Int. Workshop All '92, Dagstuhl Castle, Germany, volume LNAI 642, pages 140–150. Springer, 1992.Google Scholar
  6. 6.
    B. Courcelle and M. Nivat. The algebraic semantics of recursive program schemes. In Winkowski, editor, Math. Foundations of Computer Science, volume 64 of LNCS, pages 16–30. Springer, 1978.Google Scholar
  7. 7.
    J. Engelfriet. Simple Program Schemes and Formal Languages. Springer, 1974.Google Scholar
  8. 8.
    A.J. Field and P.G. Harrison. Functional Progamming. Addison-Wesley, 1988.Google Scholar
  9. 9.
    P. Flener and S. Yilmaz. Inductive synthesis of recursive logic programs: Achievements and prospects. to appear.Google Scholar
  10. 10.
    M. Ginsberg. Universal planning: An (almost) universally bad idea. AI Magazine, 10(4):40–44, 1989.Google Scholar
  11. 11.
    J. P. Jouannaud and Y. Kodratoff. Characterization of a class of functions synthesized from examples by a summers like method using a ‘B.M.W.’ matching technique. In IJCAI, pages 440–447, 1979.Google Scholar
  12. 12.
    S. Lu. A tree-to-tree distance and its application to cluster analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, PAMI-1(2):219–224, 1979.Google Scholar
  13. 13.
    Z. Manna and R. Waldinger. How to clear a block: a theory of plans. Journal of Automated Reasoning, 3(4):343–378, 1987.CrossRefGoogle Scholar
  14. 14.
    S. Muggleton. Learning from positive data. In S. Muggleton, editor, Proc. of the 6th Int. Workshop on Inductive Logic Programming, pages 225–244. Stockholm University, Royal Institute of Technology, 1996.Google Scholar
  15. 15.
    L. R. Novick and K. J. Holyoak. Mathematical problem solving by analogy. Journal of Experimental Psychology: Learning, Memory, and Cognition, 14:510–520, 1991.Google Scholar
  16. 16.
    U. Schmid and F. Wysotzki. Skill acquisition can be regarded as program synthesis. In U. Schmid, J. Krems, and F. Wysotzki, editors, Proc. of the First European Workshop on Cognitive Modelling (TU Berlin), pages 39–45, 1996.Google Scholar
  17. 17.
    M.J. Schoppers. Universal plans for reactive robots in unpredictable environments. In IJCAI '87, pages 1039–1046, 1987.Google Scholar
  18. 18.
    P. D. Summers. A methodology for LISP program construction from examples. Journal ACM, 24(1):162–175, 1977.Google Scholar
  19. 19.
    M. Veloso, J. Carbonell, M. A. Pérez, D. Borrajo, E. Fink, and J. Blythe. Integrating planning and learning: The prodigy architecture. J. of Experimental and Theoretical AI, 7(1):81–120, 1995.Google Scholar
  20. 20.
    F. Wysotzki. Representation and induction of infinite concepts and recursive action sequences. In Proc. of the 8th IJCAI, Karlsruhe, 1983.Google Scholar
  21. 21.
    F. Wysotzki. Program synthesis by hierarchical planning. In P. Jorrand and V. Sgurev, editors, Artificial Intelligence: Methodology, Systems, Applications, pages 3–11. Elsevier Science, Amsterdam, 1987.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Ute Schmid
    • 1
  • Fritz Wysotzki
    • 1
  1. 1.Department of Computer ScienceTechnical UniversityBerlin

Personalised recommendations