SECD Mania collection

[ Index ] [ LISP reference ] [ LISP tutorial ] [ SECD collection ] [ SECD reference ]

This package consist from different models of SECD machines - result of my experience with P. Henderson book "Functional Programming: Application and Implementation", 1980, Prentice Hall.

I have a russian translation of this book since 1987.

All software in this package is licensed under GPL if it not conflicts with some pattents or licenses owned by any people related with SECD architecture such as Peter Henderson, Gordon Plotkin and Peter Landin.

Different machines inherits each other and are placed in different subdirectories.

The implamentation language for these machines is FreePascal.

More important machines in package are:

Full list of inheritance for the machines is listed in file Inherit.lst.

Some comments for each machine improvements you may found in file MachineDIR/Changes.txt

All these files are concatenated in file History.txt.


Machines from the package may be used for educational purposes in areas such as functional programing, computer design, system programming ....

Many of Henderson book exercises are solved by some of machines:

Exercise 6.3 is solved by SEC_0 machine.
Exercises 6.1, 6.2 and 6.4 are partialy solved in Fast_1.
Exercise 6.5 is solved in Base_0.
Exercise 6.6 is solved in TR_SECD, Fast_1 and SEC_0.
Exercise 8.7 is solved in Lasy_0.


Other possibility is to use some of these SECD machines as starting point for some practical implementation of your own functional language.

The appropriate machine for this is CacheL2 (or Base_0) - it have the following advantages:

The pascal sources for CacheL2 are compact and simple - about 20K, including comments and meta_IO functions.

The next appropriate machine is Base_1. It inherits all properties from Base_0. New properties:

The last machine Base_2 adds the following:
Now i'm working on error handling.

I do all these programs for fun, without any specific goal.

If you have comments, recomendations, improvements or someting else, mail me at home or work