Screamer(ID:2479/scr008)

Nondeterministic LISP 


An extension of Common Lisp providing nondeterministic backtracking and constraint programming.


Related languages
Common LISP => Screamer   Extension of

References:
  • J.M. Siskind and D.A. McAllester. "Nondeterministic Lisp as a substrate for constraint logic programming" Proceedings of the Twelfth National Conference on Artificial Intelligence, pp133-138, 1993. view details Abstract: We have implemented a comprehensive constraint-based programming
    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
  • Siskind, Jeffrey Mark; McAllester, David Allen "Screamer: A Portable Efficient Implementation of Nondeterministic Common Lisp" Technical Report IRCS-9303, University of Pennsylvania, Institute for Research in Cognitive Science, July 1 1993. view details Abstract: Nondeterministic Lisp is a simple extension of Lisp which provides
    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