zlacker

[return to "Can logic programming be liberated from predicates and backtracking? [pdf]"]
1. xelxeb+th2[view] [source] 2024-10-13 05:10:12
>>matt_d+(OP)
Abstract. 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 set of predicate definitions executed by resolution steps with a backtracking search strategy. The use of back- tracking was justified by efficiency reasons when Prolog was invented. However, its incompleteness destroys the elegant connection of logic pro- gramming 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 exe- cutions. In this paper we show 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 re- duce the number of computation steps and avoid infinite search spaces. Replacing backtracking by complete search strategies with new imple- mentation techniques closes the gap between the theory and practice of logic programming. In this way, we can keep the ideas of logic program- ming in future programming systems.
◧◩
2. cerved+Mt2[view] [source] 2024-10-13 08:03:54
>>xelxeb+th2
isn't backtracking a complete search strategy?
◧◩◪
3. usgrou+BQ2[view] [source] 2024-10-13 12:42:10
>>cerved+Mt2
Depth first search is not complete if branches can be infinitely deep. Therefore if you're in the wrong infinite branch the search will never finish.

Breadth first search is complete even if the branches are infinitely deep. In the sense that, if there is a solution it will find it eventually.

◧◩◪◨
4. agumon+SA3[view] [source] 2024-10-13 18:35:52
>>usgrou+BQ2
Reminds me that Warren made a talk about prolog term domains to study resolution over infinite branches.
[go to top]