Can Logic Programming Be Liberated from Predicates and Backtracking? (Lightning talk)
This program is tentative and subject to change.
Logic programming has a long history. The representative of logic programming in practice, the language Prolog, has been introduced more than 50 years ago. The main features of Prolog are still present today: a Prolog program is a sequence of predicate definitions executed by resolution steps with a backtracking search strategy. The use of backtracking was justified by efficiency reasons when Prolog was invented. However, its incompleteness destroys the elegant connection of logic programming and the underlying Horn clause logic and causes difficulties to teach logic programming. Moreover, the restriction to predicates hinders an adequate modeling of real world problems (which are often functions from input to output data) and leads to unnecessarily inefficient executions. In this short talk, we sketch a way to overcome these problems. By transforming predicates and goals into functions and nested expressions, one can evaluate them with a demand-driven strategy which might reduce the number of computation steps and avoid infinite search spaces. Replacing backtracking by complete search strategies with new implementation techniques closes the gap between the theory and practice of logic programming. In this way, we can keep the ideas of logic programming in future programming systems. This talk is based on works published in [2], [3], and [1]. A recent tool implementing these ideas is available as a Curry package [4] or docker image [5]. Moreover, there is also a web interface to this tool [6] with various examples.
References
-
J. Bohm, M. Hanus, and F. Teegen. From non-determinism to goroutines: A fair implementation of Curry in Go. In Proc. of the 23rd International Symposium on Principles and Practice of Declarative Programming (PPDP 2021), pages 16:1– 16:15. ACM Press, 2021.
-
M. Hanus. From logic to functional logic programs. Theory and Practice of Logic Programming, 22(4):538–554, 2022.
-
M. Hanus. Improving logic programs by adding functions. In Proceedings of the 34th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2024), pages 27–44. Springer LNCS 14919, 2024.
This program is tentative and subject to change.
Mon 20 JanDisplayed time zone: Mountain Time (US & Canada) change
16:00 - 17:30 | |||
16:00 30mTalk | MOLA: A Runtime Verification Engine Factory by (Meta-)interpreting Embedded DSLs PADL Felipe Gorostiaga IMDEA Software Institute, Martin Ceresa IMDEA Software Institute, César Sánchez IMDEA Software Institute | ||
16:30 30mTalk | Checking Concurrency Coding Rules PADL Lars-Åke Fredlund Universidad Politécnica de Madrid, Ángel Herranz Universidad Politécnica de Madrid, Julio Mariño Universidad Politécnica de Madrid | ||
17:00 10mTalk | Can Logic Programming Be Liberated from Predicates and Backtracking? (Lightning talk) PADL Michael Hanus Kiel University | ||
17:10 10mTalk | Logic Programming with Extensible Types (Lightning talk) PADL Ivan Perez NASA Ames Research Center, Miguel Angel Fernandez Bitergia, P: Julio Mariño Universidad Politécnica de Madrid |