for the lisp fans of you...

Thomas Mahler thomas.mahler@home.ins.de
Sat, 15 May 1999 00:08:43 +0200


hi there,

I implemented a parallel operating graph-reduction machine for
combinatory logic (CL) in C++.
On my website ( http://www.techno.net/pcl/tm/plisp/linux ) you can now
find 
my just finished (almost:-) linux port.

My system contains a CL reduction machine with a flexible microcode
scheme (which allows simple extension with additional operations), fine
grained implicit parallelity, and a special combinator for explicit
parallelity.
The microcode set is until now quite small (a lot of useful combinators
but only basic integer arithmetics, but as mentioned extending the
microcodes is quite straightforward).

For bootstrapping reasons the VM is driven by a simple dynamically
scoped
lisp interpreter.
The Compiler from lambda-calculus to CL is entirely written in lisp and
executed by
this small interpreter.

The lambda to CL compiler uses higher order functions for using
different abstraction algorithms. All of this code is done in lisp and
can be freely inspected and modified.
I took the respective knowledge from the textbook "compiling functional
languages" by A. Diller, Wiley & Sons. References to this book are
cleanly documented in my source code.

As a nice feature I included basic ideas of literate programming ("the
documentation IS the program"): The library is completely documented in
html and the lisp-interpreter is able to read in this html documented
library as source-code...

My pLisp project was done to provide an implementory basis for
´concurrent reflection' (see introductory paper
http://www.techno.net/pcl/tm/plisp/ENGLISH.EPS on my homepage). 

enjoy, Thomas