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