Logic Implemented Functionally

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.

[1]  Letizia Tanca,et al.  Logic Programming and Databases , 1990, Surveys in Computer Science.

[2]  Larry Wos,et al.  Automated reasoning (2nd ed.): introduction and applications , 1992 .

[3]  Martin Odersky,et al.  Pizza into Java: translating theory into practice , 1997, POPL '97.

[4]  D. H. Bartley,et al.  Revised4 report on the algorithmic language scheme , 1991, LIPO.

[5]  Norbert Eisinger,et al.  The Tableau Browser SNARKS , 1997, CADE.

[6]  Masayuki Fujita,et al.  Automatic Generation of Some Results in Finite Algebra , 1993, IJCAI.

[7]  Tim Geisler,et al.  Efficient Model Generation through Compilation , 1996, CADE.

[8]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[9]  François Bry,et al.  SATCHMO: A Theorem Prover Implemented in Prolog , 1988, CADE.

[10]  Colin Myers,et al.  The Dys-Functional Student , 1995, FPLE.

[11]  François Bry,et al.  Minimal Model Generation with Positive Unit Hyper-Resolution Tableaux , 1996, TABLEAUX.

[12]  Guy L. Steele Debunking the “expensive procedure call” myth or, procedure call implementations considered harmful or, LAMBDA: The Ultimate GOTO , 1977, ACM '77.

[13]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[14]  Mitchell Wand,et al.  Essentials of programming languages , 2008 .

[15]  Peter Graf,et al.  Term Indexing , 1996, Lecture Notes in Computer Science.

[16]  Geoff Sutcliffe,et al.  The TPTP Problem Library , 1994, CADE.

[17]  Rob R. Hoogerwoord,et al.  Functional Pearls A symmetric set of efficient list operations , 1992, Journal of Functional Programming.

[18]  Philip Wadler,et al.  Packrat parsing:: simple, powerful, lazy, linear time, functional pearl , 2002, ICFP '02.

[19]  Jack Minker,et al.  Circumscription and Disjunctive Logic Programming , 1991, Artificial and Mathematical Theory of Computation.

[20]  Larry Wos,et al.  What Is Automated Reasoning? , 1987, J. Autom. Reason..

[21]  Jorge Lobo,et al.  Foundations of disjunctive logic programming , 1992, Logic Programming.

[22]  Mats Carlsson,et al.  How to Implement Prolog on a LISP Machine , 1984, Implementations of Prolog.

[23]  Ricardo Peña-Marí,et al.  A Second Year Course on Data Structures Based on Functional Programming , 1995, FPLE.

[24]  Luca Console,et al.  Readings in Model-Based Diagnosis , 1992 .