http://t3x.org/LISP/   (light|dark)

Experiments in LISP

Here is a summary of the various LISP interpreters and compilers that I have written in the past 20 years, ranging from a proof-of-concept tree-walker to a full compiler or a complete self-hosting LISP system. Given in reverse chronological order.

LISP XV

Web page: LISP XV
Dialect: subset of LISP 1.5
Data types: purely symbolic
Type: tree-walking interpreter
Language: T3X/0, LISP 1.5
OS: Unix, DOS, CP/M, others?
Book: -/-

A version of KILO LISP 23 that has been modified to resemble the original, 1960's LISP 1.5.

KILO LISP 23

Web page: KILO LISP 23
Dialect: Common-LISP-ish, but LISP-1
Data types: purely symbolic
Type: tree-walking interpreter
Language: T3X/0, LISP
OS: Unix, DOS, CP/M, others?
Book: -/-

A version of KILO LISP 22 that imports lots of bug fixes and improvements from MICRO COMMON LISP.

MICRO COMMON LISP

Web page: MICRO COMMON LISP
Dialect: subset of Common LISP
Data types: purely symbolic
Type: tree-walking interpreter
Language: T3X/0, C, LISP
OS: Unix, DOS, CP/M, others?
Book: -/-

A version of KILO LISP 22 that is more compatible to Common LISP: separate namespaces, FUNCTION, FUNCALL, &REST arguments.

KLSYS – A KILO LISP SYSTEM

Web page: KLSYS
Dialect: Common-LISP-ish, but LISP-1
Data types: Scheme, only fixnums, escape-continuations
Type: bytecode compiler
Language: KLSYS LISP, core in C
OS: Unix
Book: -/-

A self-hosting LISP compiler and REPL that runs on a virtual machine. The entire system, including the compiler, is written in LISP. Very hackable. Based on the techniques explored in the LISP9 compiler.

KILO LISP 22

Web page: KILO LISP 22
Dialect: Common-LISP-ish, but LISP-1
Data types: purely symbolic
Type: tree-walking interpreter
Language: T3Xr7, LISP
OS: Unix, DOS, others?
Book: -/-

A T3X version of KILO LISP with command line editing.

KILO LISP

Web page: KILO LISP
Dialect: Mix of Scheme and LISP
Data types: purely symbolic
Type: tree-walking interpreter
Language: C, T3X/Z, LISP
OS: Unix, DOS, CP/M, others?
Book: The KILO LISP System

A LISP system with a size in the kilobyte range (13KB on DOS when compiled with Turbo C).

LISCMP

Web page: LISCMP
Dialect: dynamically scoped retro LISP
Data types: purely symbolic
Type: compiler (to C), interpreter (in LISP)
Language: LISP (low-level runtime in C)
OS: Unix
Book: LISP from Nothing

A LISP compiler that is completely written in LISP, including the reader, printer, and much of the low-level stuff. The only parts written in C are garbage collection, character I/O, and argument binding.

LISP9

Web page: LISP9
Dialect: Scheme-ish, shorter keywords
Data types: Scheme, only fixnums, escape-continuations
Type: bytecode compiler
Language: C, LISP
OS: Unix
Book: LISP System Implementation

An small, experimental bytecode compiler and virtual machine for running LISP. Written in C. An improved version of the S9fES Reimagined compiler.

Scheme 9 from Empty Space, Reimagined

Web page: Scheme 9 from Empty Space, Reimagined
Dialect: R4RS Scheme
Data types: Scheme, bignums, no complex numbers
Type: bytecode compiler
Language: C, Scheme
OS: Unix, Plan 9, others?
Book: -/-

A version of S9fES that uses a bytecode compiler and a VM instead of a tree walker.

Small Scheme Compilers and Interpreters

Web page: Various small Scheme compilers/interpreters
Dialect: subset of R4RS Scheme
Data types: purely symbolic
Type: tree-walking interpreters, compilers (to VM, C)
Language: C, Scheme
OS: Unix
Book: Compiling Lambda Calculus

A collection of small interpreters and compilers for a tiny subset of Scheme, ranging from a tree-walker with deep binding to a compiler (to C) with shallow binding. All interpreters, compilers, and VMs in Scheme with some runtime code in C.

Scheme 9 from Empty Space, 3rd Ed.

Download: s9fes-2014.tgz
Dialect: R4RS Scheme
Data types: Scheme, bignums, no complex numbers
Type: tree-walking interpreter
Language: C, Scheme
OS: Unix, Plan 9, others?
Book: Scheme 9 from Empty Space

A bug-fixed and extended version of the original (first edition) S9fES.

Mini Scheme v.3

Originally by Atsushi Moriwaki and Akira KIDA.

Download: miniscm3.tar.gz
Dialect: subset of R4RS Scheme
Data types: subset of Scheme
Type: interpreter
Language: C, Scheme
OS: Unix, DOS, others?
Book: -/-

An extended, but still tiny version of the original Mini Scheme.

zenlisp

Download: zenlisp.zip
Dialect: LISP-1
Data types: purely symbolic
Type: tree-walking interpreter
Language: C, LISP
OS: Unix, others?
Book: Zen-style Programming

A weird, little, purely symbolic dialect of LISP.

Scheme 9 from Empty Space, First Ed.

Download: s9fes-2007.tgz
Dialect: R4RS Scheme
Data types: subset of Scheme, integer-only, bignums, no call/cc
Type: tree-walking interpreter
Language: C, Scheme
OS: Unix, Plan 9, others?
Book: -/-

The interpreter from the first edition of the book, with some fixes from 2009.


contact | privacy