Advertisement

Logic implemented functionally

  • Norbert Eisinger
  • Tim Geisler
  • Sven Panne
Education: Methodologies
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1292)

Abstract

We describe a course intended to introduce second-year undergraduates to medium-scale programming. The project of the course is to implement a nonconventional logic programming language using a functional implementation language. This exercise reinforces two declarative paradigms and puts the students in experimental touch with a wide range of standard computer science concepts. Declarativity is decisive in making this wide range possible.

Keywords

programming course functional programming disjunctive logic programming model generation 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    H. Abelson, G. J. Sussman, and J. Sussman. Structure and Interpretation of Computer Programs. MIT Press, 1985.Google Scholar
  2. 2.
    F. Bry, R. Manthey, and H. Schütz. Deduktive Datenbanken. KI-Künstliche Intelligenz-Forschung, Entwicklung, Erfahrungen, 3:17–23, 1996. In German.Google Scholar
  3. 3.
    F. Bry and A. Yahya. Minimal model generation with positive unit hyper-resolution tableaux. In Proceedings of the 5th Workshop on Theorem Proving with Tableaux and Related Methods, number 1071 in Lecture Notes in Artificial Intelligence, pages 143–159. Springer-Verlag, 1996.Google Scholar
  4. 4.
    S. Ceri, G. Gottlob, and L. Tanca. Logic Programming and Databases. Springer-Verlag, 1990.Google Scholar
  5. 5.
    C. Clack and C. Myers. The dys-functional student. In Proceedings of the First International Symposium on Functional Languages in Education, FPLE '95, number 1022 in Lecture Notes in Computer Science, pages 289–309. Springer-Verlag, 1995.Google Scholar
  6. 6.
    W. Clinger and J. Rees. Revised4 report on the algorithmic language Scheme. ACM Lisp Pointers IV, July–Sept. 1991.Google Scholar
  7. 7.
    O. Danvy, editor. Partial evaluation. Number 1110 in Lecture Notes in Computer Science. Springer-Verlag, 1996.Google Scholar
  8. 8.
    D. P. Friedman, M. Wand, and C. T. Haynes. Essentials of Programming Languages. MIT Press, 1992.Google Scholar
  9. 9.
    M. Fujita, J. Slaney, and F. Bennett. Automatic generation of some results in finite algebra. In Proceedings of the 13th International Joint Conference on Artificial Intelligence, IJCAI 93, pages 52–57. Morgan Kaufmann, 1993.Google Scholar
  10. 10.
    T. Geisler, S. Panne, and H. Schütz. Satchmo: The compiling and functional variants. Journal of Automated Reasoning, 18(2):227–236, 1997.Google Scholar
  11. 11.
    P. Graf. Term Indexing. Number 1053 in Lecture Notes in Artificial Intelligence. Springer-Verlag, 1996.Google Scholar
  12. 12.
    W. Hamscher, editor. Readings in model-based diagnosis. Morgan Kaufmann, 1992.Google Scholar
  13. 13.
    R. R. Hoogerwoord. A symmetric set of efficient list operations. Journal of Functional Programming, 2(4):505–513, 1992.Google Scholar
  14. 14.
    K. M. Kahn and M. Carlsson. How to implement Prolog on a LISP machine. In J. A. Campbell, editor, Implementations of PROLOG, pages 117–134. Ellis Horwood, 1984.Google Scholar
  15. 15.
    M. Kettner and N. Eisinger. The tableau browser SNARKS-system description. In W. McCune, editor, Proceedings of the 14th International Conference on Automated Deduction, CADS-14, number 1249 in Lecture Notes in Artificial Intelligence. Springer-Verlag, 1997.Google Scholar
  16. 16.
    J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1984.Google Scholar
  17. 17.
    J. Lobo, J. Minker, and A. Rajasekar. Foundations of Disjunctive Logic Programming. MIT Press, 1992.Google Scholar
  18. 18.
    R. Manthey and F. Bry. SATCHMO: A theorem prover implemented in Prolog. In E. Lusk and R. Overbeek, editors, Proceedings of the 9th International Conference on Automated Deduction, CADS-9, number 310 in Lecture Notes in Computer Science, pages 415–434. Springer-Verlag, 1988.Google Scholar
  19. 19.
    M. Núñez, P. Palao, and R. Pefia. A second year course on data structures based on functional programming. In Proceedings of the First International Symposium on Functional Languages in Education, FPLE '95, number 1022 in Lecture Notes in Computer Science, pages 65-84. Springer-Verlag, 1995.Google Scholar
  20. 20.
    M. Odersky and P. Wadler. Pizza into Java: Translating theory into practice. In 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 146–159. ACM Press, 1997.Google Scholar
  21. 21.
    S. Panne. EAGLE–Ein Generator für erweiterte attribuierte LR(1)-Grammatiken. Diplomarbeit, Universität Erlangen-Nürnberg, IMMD8, December 1994. In German.Google Scholar
  22. 22.
    H. Schütz and T. Geisler. Efficient model generation through compilation. In M. McRobbie and J. Slaney, editors, Proceedings of the 13th International Conference on Automated Deduction, CADE-13, number 1104 in Lecture Notes in Artificial Intelligence, pages 433–447. Springer-Verlag, 1996.Google Scholar
  23. 23.
    G. L. Steele Jr. Debunking the “expensive procedure call” myth or, Procedure call implementations considered harmful or, Lambda: The ultimative goto. AI Memo 443, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, 1977.Google Scholar
  24. 24.
    G. Sutcliffe, C. B. Suttner, and T. Yemenis. The TPTP problem library. In A. Bundy, editor, Proceedings of the 12th International Conference on Automated Deduction, CADE-12, number 814 in Lecture Notes in Artificial Intelligence, pages 252–266. Springer-Verlag, 1994.Google Scholar
  25. 25.
    P. Wadler. How to replace failure by a list of successes. In Proceedings of the 1985 Conference on Functional Programming Languages and Computer Architecture, number 201 in Lecture Notes in Computer Science, pages 113–128. Springer-Verlag, 1985.Google Scholar
  26. 26.
    N. Wirth. Algorithmen and Datenstrukturen mit Modula-2. Teubner, 1986. In German.Google Scholar
  27. 27.
    L. A. Wos, R. Overbeek, E. Lusk, and J. Boyle. Automated Reasoning. McGrawHill, 2nd edition, 1992.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Norbert Eisinger
    • 1
  • Tim Geisler
    • 1
  • Sven Panne
  1. 1.Institut für InformatikUniversität MünchenMünchenGermany

Personalised recommendations