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.
References
H. Abelson, G. J. Sussman, and J. Sussman. Structure and Interpretation of Computer Programs. MIT Press, 1985.
F. Bry, R. Manthey, and H. Schütz. Deduktive Datenbanken. KI-Künstliche Intelligenz-Forschung, Entwicklung, Erfahrungen, 3:17–23, 1996. In German.
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.
S. Ceri, G. Gottlob, and L. Tanca. Logic Programming and Databases. Springer-Verlag, 1990.
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.
W. Clinger and J. Rees. Revised4 report on the algorithmic language Scheme. ACM Lisp Pointers IV, July–Sept. 1991.
O. Danvy, editor. Partial evaluation. Number 1110 in Lecture Notes in Computer Science. Springer-Verlag, 1996.
D. P. Friedman, M. Wand, and C. T. Haynes. Essentials of Programming Languages. MIT Press, 1992.
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.
T. Geisler, S. Panne, and H. Schütz. Satchmo: The compiling and functional variants. Journal of Automated Reasoning, 18(2):227–236, 1997.
P. Graf. Term Indexing. Number 1053 in Lecture Notes in Artificial Intelligence. Springer-Verlag, 1996.
W. Hamscher, editor. Readings in model-based diagnosis. Morgan Kaufmann, 1992.
R. R. Hoogerwoord. A symmetric set of efficient list operations. Journal of Functional Programming, 2(4):505–513, 1992.
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.
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.
J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1984.
J. Lobo, J. Minker, and A. Rajasekar. Foundations of Disjunctive Logic Programming. MIT Press, 1992.
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.
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.
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.
S. Panne. EAGLE–Ein Generator für erweiterte attribuierte LR(1)-Grammatiken. Diplomarbeit, Universität Erlangen-Nürnberg, IMMD8, December 1994. In German.
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.
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.
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.
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.
N. Wirth. Algorithmen and Datenstrukturen mit Modula-2. Teubner, 1986. In German.
L. A. Wos, R. Overbeek, E. Lusk, and J. Boyle. Automated Reasoning. McGrawHill, 2nd edition, 1992.
Author information
Authors and Affiliations
Editor information
Rights 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