Porting IgorII from Maude to Haskell

  • Martin Hofmann
  • Emanuel Kitzelmann
  • Ute Schmid
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5812)


This paper describes our efforts and solutions in porting our IP system Igor 2 from the termrewriting language Maude to Haskell. We describe how, for our purpose necessary features of the homoiconic language Maude, especially the treatment of code as data and vice versa, can be simulated in Haskell using a stateful monad transformer which makes type and class information available. With our new implementation we are now able to use higher-order context during our synthesis and extract information from type classes useable as background knowledge. Keeping our new implementation as close as possible to our old, we could keep all features of our system.


Logic Program Open Rule Inductive Logic Programming Initial Rule Program Synthesis 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Hofmann, M.: Automatic Construction of XSL Templates – An Inductive Programming Approach. VDM Verlag, Saarbrücken (2007)Google Scholar
  2. 2.
    Biermann, A.W., Kodratoff, Y., Guiho, G.: Automatic Program Construction Techniques. The Free Press, NY (1984)zbMATHGoogle Scholar
  3. 3.
    Summers, P.D.: A methodology for LISP program construction from examples. Journal ACM 24, 162–175 (1977)CrossRefMathSciNetGoogle Scholar
  4. 4.
    Kitzelmann, E., Schmid, U.: Inductive synthesis of functional programs: An explanation based generalization approach. Journal of Machine Learning Research 7, 429–454 (2006)MathSciNetGoogle Scholar
  5. 5.
    Kitzelmann, E.: Data-driven induction of recursive functions from I/O-examples. In: Kitzelmann, E., Schmid, U. (eds.) Proceedings of the ECML/PKDD 2007 Workshop on Approaches and Applications of Inductive Programming (AAIP 2007), pp. 15–26 (2007)Google Scholar
  6. 6.
    Olsson, R.J.: Inductive functional programming using incremental program transformation. Artificial Intelligence 74(1), 55–83 (1995)CrossRefGoogle Scholar
  7. 7.
    Katayama, S.: Systematic search for lambda expressions. In: van Eekelen, M.C.J.D. (ed.) Revised Selected Papers from the Sixth Symposium on Trends in Functional Programming, TFP 2005, vol. 6, pp. 111–126. Intellect (2007)Google Scholar
  8. 8.
    Quinlan, J.R.: Learning first-order definitions of functions. Journal of Artificial Intelligence Research 5, 139–161 (1996)zbMATHGoogle Scholar
  9. 9.
    Muggleton, S., Feng, C.: Efficient induction of logic programs. In: Proceedings of the 1st Conference on Algorithmic Learning Theory, Ohmsma, Tokyo, Japan, pp. 368–381 (1990)Google Scholar
  10. 10.
    Muggleton, S.: Inverse entailment and Progol. New Generation Computing, Special issue on Inductive Logic Programming 13(3-4), 245–286 (1995)Google Scholar
  11. 11.
    Flener, P.: Inductive Logic Program Synthesis with Dialogs. In: Muggleton, S. (ed.) Proceedings of the 6th International Workshop on Inductive Logic Programming, Stockholm University, Royal Institute of Technology, pp. 28–51 (1996)Google Scholar
  12. 12.
    Hernández-Orallo, J., Ramírez-Quintana, M.J.: Inverse narrowing for the induction of functional logic programs. In: Freire-Nistal, J.L., Falaschi, M., Ferro, M.V. (eds.) Joint Conference on Declarative Programming, pp. 379–392 (1998)Google Scholar
  13. 13.
    Mitchell, T.M.: Machine Learning. McGraw-Hill Higher Education, New York (1997)zbMATHGoogle Scholar
  14. 14.
    Kitzelmann, E.: Analytical inductive functional programming. In: Hanus, M. (ed.) LOPSTR 2008. LNCS, vol. 5438, pp. 87–102. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  15. 15.
    Sheard, T., Jones, S.P.: Template metaprogramming for Haskell. In: Chakravarty, M.M.T. (ed.) ACM SIGPLAN Haskell Workshop 2002, pp. 1–16. ACM Press, New York (2002)CrossRefGoogle Scholar
  16. 16.
    Wadler, P.: The essence of functional programming. In: Conference Record of the Nineteenth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Albequerque, New Mexico, pp. 1–14 (1992)Google Scholar
  17. 17.
    King, D., Wadler, P.: Combining monads. Mathematical Structures in Computer Science, pp. 61–78 (1992)Google Scholar
  18. 18.
    Spivey, J.M.: Combinators for breadth-first search. J. Funct. Program. 10(4), 397–408 (2000)CrossRefMathSciNetzbMATHGoogle Scholar
  19. 19.
    Spivey, M., Seres, S.: The algebra of searching. In: Proceedings of a symposium in celebration of the work of. MacMillan, Basingstoke (2000)Google Scholar
  20. 20.
    Katayama, S.: Efficient exhaustive generation of functional programs using monte-carlo search with iterative deepening. In: Ho, T.-B., Zhou, Z.-H. (eds.) PRICAI 2008. LNCS (LNAI), vol. 5351, pp. 199–210. Springer, Heidelberg (2008)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Martin Hofmann
    • 1
  • Emanuel Kitzelmann
    • 1
  • Ute Schmid
    • 1
  1. 1.Cognitive Systems GroupUniversity of Bamberg 

Personalised recommendations