Skip to main content

Logic implemented functionally

  • Education: Methodologies
  • Conference paper
  • First Online:
  • 192 Accesses

Part of the book series: Lecture Notes in Computer Science ((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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. H. Abelson, G. J. Sussman, and J. Sussman. Structure and Interpretation of Computer Programs. MIT Press, 1985.

    Google Scholar 

  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. 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. S. Ceri, G. Gottlob, and L. Tanca. Logic Programming and Databases. Springer-Verlag, 1990.

    Google Scholar 

  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. W. Clinger and J. Rees. Revised4 report on the algorithmic language Scheme. ACM Lisp Pointers IV, July–Sept. 1991.

    Google Scholar 

  7. O. Danvy, editor. Partial evaluation. Number 1110 in Lecture Notes in Computer Science. Springer-Verlag, 1996.

    Google Scholar 

  8. D. P. Friedman, M. Wand, and C. T. Haynes. Essentials of Programming Languages. MIT Press, 1992.

    Google Scholar 

  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. 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. P. Graf. Term Indexing. Number 1053 in Lecture Notes in Artificial Intelligence. Springer-Verlag, 1996.

    Google Scholar 

  12. W. Hamscher, editor. Readings in model-based diagnosis. Morgan Kaufmann, 1992.

    Google Scholar 

  13. R. R. Hoogerwoord. A symmetric set of efficient list operations. Journal of Functional Programming, 2(4):505–513, 1992.

    Google Scholar 

  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. 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. J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1984.

    Google Scholar 

  17. J. Lobo, J. Minker, and A. Rajasekar. Foundations of Disjunctive Logic Programming. MIT Press, 1992.

    Google Scholar 

  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. 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. 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. 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. 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. 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. 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. 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. N. Wirth. Algorithmen and Datenstrukturen mit Modula-2. Teubner, 1986. In German.

    Google Scholar 

  27. L. A. Wos, R. Overbeek, E. Lusk, and J. Boyle. Automated Reasoning. McGrawHill, 2nd edition, 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hugh Glaser Pieter Hartel Herbert Kuchen

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Eisinger, N., Geisler, T., Panne, S. (1997). Logic implemented functionally. In: Glaser, H., Hartel, P., Kuchen, H. (eds) Programming Languages: Implementations, Logics, and Programs. PLILP 1997. Lecture Notes in Computer Science, vol 1292. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0033855

Download citation

  • DOI: https://doi.org/10.1007/BFb0033855

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63398-3

  • Online ISBN: 978-3-540-69537-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics