prolog for squeak
Bolot Kerimbaev
bolot at cc.gatech.edu
Thu Aug 19 22:22:06 UTC 1999
Prolog is originally written by or is based on the work originally
developed by Mike Teng <miket at objectshare.com>, then at Digitalk, as
part of the Prolog/V implementation distributed with Smalltalk V/286 in
1988. We gratefully acknowledge Mike's permission to port his code to
Squeak.
The port to Squeak is the work of Bolot Kerimbaev <bolot at cc.gatech.edu>,
a summer intern at Walt Disney Imagineering.
Most of the changes are on LParser side (to account for differences
between Smalltalk/V and Squeak parsing/compilation).
Documentation is available in Word and Postscript formats, and while it
is written for the original, it still mostly applies to the Squeak port.
http://fce.cc.gatech.edu/~bolot/squeak/prolog/Prolog.14Aug351pm.cs
http://fce.cc.gatech.edu/~bolot/squeak/prolog/v-prolog.doc
http://fce.cc.gatech.edu/~bolot/squeak/prolog/v-prolog.ps
To run an example:
1. file in the code
2. LCompiler evaluate: 'Family new :? father(''John'', x)'
A few issues:
- Dungeons example is not complete
- animation is done differently
- doesn't compile some rules due to frame size limit
- Due to a limit of a frame size, rules are limited in length
- Explicit use of LCompiler is needed to embed code:
(LCompiler evaluate: 'Family new :? father(x,y)') do: [:pair | ...]
- otherwise requires change to Parser class (rather than LParser)
Comments are welcome.
Thanks go to Mike (design/code), Dan and Andreas (insights/help).
bolot
More information about the Squeak-dev
mailing list
|