The following item about Screamer was originally posted to
Newsgroups: comp.lang.lisp, comp.ai, comp.constraints
Message-ID: <2sj137$t82@netnews.upenn.edu>
Date: 1 Jun 1994 22:11:51 GMT
Organization: University of Pennsylvania
From: kaye@linc.cis.upenn.edu (Jonathan Kaye)
It may be of interest to Poplog users, as it claims Screamer works
with Poplog. Jeff Siskind gave me a demo when he visited Birmingham
in December 1992 and I helped him work out how to port it to Poplog
Common Lisp. It seems that a more recent version is now available.
Screamer is an extension of Common Lisp that adds support for
nondeterministic programming provides a constraint programming language.
Aaron
=======================================================================
SSSS CCCC RRRR EEEEE A M M EEEEE RRRR
S C R R E A A MM MM E R R
SSS C RRRR EEE AAAAA M M M EEE RRRR
S C R R E A A M M E R R
SSSS CCCC R R EEEEE A A M M EEEEE R R
Announcing the creation of the Screamer Tool Repository, an ftp site
which contains the Screamer distribution and user-contributed code
developed using Screamer. We would appreciate any contribution that
uses or extends Screamer in either interesting or even not-so
interesting ways. By providing the repository, we hope to encourage
future development using Screamer. We have attached a brief note
about Screamer at the end of this message.
The repository is also accessible (for retrieval only) at
"http://www.cis.upenn.edu/~screamer-tools/home.html".
** At the time of this writing (June 1, 1994), there are no entries yet **
** in the repository. We hope this will change soon. **
The ftp site is ftp.cis.upenn.edu. The repository is arranged as
follows:
/pub/screamer.tar.Z Screamer distribution
/pub/screamer-tools/
incoming/ for people to drop code off
contrib/ user-contributed code
INDEX a file that indexes contributions
README Introduction to site
All contributions should be placed in the pub/screamer-tools/incoming
subdirectory. If you contribute code, please write me a note (at
screamer-repository@cis.upenn.edu) stating the filename(s) of your
contribution and a brief description. Where applicable, this
description should include on which platform(s) the code has been
tested. I will place this description in the file in
pub/screamer-tools/INDEX.
Alternatively, you may mail me the contribution directly, at
screamer-repository@cis.upenn.edu
The preferred format is as a uuencoded compressed tar file, but other
formats are okay. If they get too exotic (i.e., I can't unpack them),
I will let you know. For consistency, I may repackage the
contribution. It may be obvious, but for files deposited in the
incoming/ directory, you should skip the uuencoding and transfer them
as binary compressed tar files, when possible.
Screamer was written by Jeffrey Mark Siskind and David Allen
McAllester. It is available by anonymous FTP from either
ftp.ai.mit.edu, ftp.cis.upenn.edu, or ftp.cs.toronto.edu as the file
/pub/qobi/screamer.tar.Z. Contact Jeffrey Mark Siskind
(Qobi@CS.Toronto.EDU) for further information about Screamer.
Please write to me (kaye@linc.cis.upenn.edu, or
screamer-repository@cis.upenn.edu), however, with questions about the
repository.
Jonathan Kaye
P.S. We want to acknowledge the assistance of Mark Foster and
Mark-Jason Dominus for arranging the administrative tasks involved in
setting up this repository.
--------------------------------------------------------------
What is all the noise about Screamer?
Screamer is an extension of Common Lisp that adds support for
nondeterministic programming. Screamer consists of two levels. The
basic nondeterministic level adds support for backtracking and undoable
side effects. On top of this nondeterministic substrate, Screamer
provides a comprehensive constraint programming language in which one
can formulate and solve mixed systems of numeric and symbolic
constraints. Together, these two levels augment Common Lisp with
practically all of the functionality of both Prolog and constraint logic
programming languages such as CHiP and CLP(R). Furthermore, Screamer is
fully integrated with Common Lisp. Screamer programs can coexist and
interoperate with other extensions to Common Lisp such as CLOS, CLIM and
Iterate.
In several ways Screamer is more efficient than other implementations of
backtracking languages. First, Screamer code is transformed into Common
Lisp which can be compiled by the underlying Common Lisp system. Many
competing implementations of nondeterministic Lisp are interpreters and
thus are far less efficient than Screamer. Second, the backtracking
primitives require fairly low overhead in Screamer. Finally, this
overhead to support backtracking is only paid for those portions of the
program which use the backtracking primitives. Deterministic portions
of user programs pass through the Screamer-to-Common-Lisp transformation
unchanged. Since in practice, only small portions of typical programs
utilize the backtracking primitives, Screamer can produce more efficient
code than compilers for languages in which backtracking is more
pervasive.
Screamer is fairly portable across most Common Lisp implementations. Screamer
is known to run under the following Common Lisp implementations:
Genera 8.1.1 and 8.3 on Symbolics 36xx and Ivory.
Lucid 4.0.2 and 4.1 on Sun SPARC.
Lucid 4.1 on SGI MIPS.
Lucid 4.1 on HP PA.
Lucid 4.1 on DEC MIPS.
Lucid 4.0.1 on IBM RS/6000.
MCL 2.0 and 2.0p2 on Apple Macintosh.
Harlequin 3.0.3+ on Sun SPARC.
Allegro 4.1 and 4.2 on Sun SPARC and SGI MIPS.
Allegro 4.1 on DEC MIPS.
Poplog 14.2 on Sun SPARC.
AKCL 1.605 and 1.615 on Sun SPARC.
CMU Common Lisp 17b on Sun SPARC.
It should run under any implementation of Common Lisp that is compliant with
CLtL2 and with minor revision could be made to run under implementations
compliant with CLtL1 or dpANS.
Screamer was written by Jeffrey Mark Siskind and David Allen
McAllester. It is available by anonymous FTP from either
ftp.ai.mit.edu, ftp.cis.upenn.edu, or ftp.cs.toronto.edu as the file
/pub/qobi/screamer.tar.Z. Contact Jeffrey Mark Siskind
(Qobi@CS.Toronto.EDU) for further information.
--
Aaron Sloman,
School of Computer Science, The University of Birmingham, B15 2TT, England
EMAIL A.Sloman@cs.bham.ac.uk OR A.Sloman@bham.ac.uk
Phone: +44-(0)21-414-3711 Fax: +44-(0)21-414-4281
|