Screamer(ID:2479/scr008)Nondeterministic LISPAn extension of Common Lisp providing nondeterministic backtracking and constraint programming. Related languages
References: language as an extension to Common Lisp. This constraint package provides a unified framework for solving both numeric and non-numeric systems of constraints using a combination of local propagation techniques including binding propagation, Boolean constraint propagation, generalized forward checking, propagation of bounds, and unification. The backtracking facility of the nondeterministic dialect Common Lisp used to implement this constraint package acts as a general fallback constraint solving method mitigating the incompleteness of local propagation. An important aspect of our implementation is that it is both an extension to Common Lisp as well as fully implemented within Common Lisp. This is in contrast to recent constraint-based languages formulated in the logic programming framework which cannot be implemented efficiently in the language which they extend. External link: Online copy automatic backtracking. Nondeterminism allows concise description of many search tasks which form the basis of much AI research. This paper discusses Screamer, an efficient implementation of nondeterministic Lisp as a fully portable extension of Common Lisp. In this paper we present the basic nondeterministic Lisp constructs, motivate the utility of the language via numerous short examples, and discuss the compilation techniques. External link: Online copy Resources |