sectorlisp is a 512-byte implementation of LISP that’s able to bootstrap
John McCarthy’s meta-circular evaluator on bare metal.
Overview
LISP has been described as the Maxwell’s equations of
software.
Yet there’s been very little focus to date on reducing these equations
to their simplest possible form. Even the original LISP
paper
from the 1960’s defines LISP with nonessential elements, e.g. LABEL
.
This project aims to solve that by doing three things:
-
We provide a LISP implementation that’s written in LISP, as a single
pure expression, using only the essential functions of the language.
See lisp.lisp. It’s the same meta-circular evaluator in
John McCarthy’s paper from the 1960’s, except with its bugs fixed,
dependencies included, and syntactic sugar removed. -
We provide a readable portable C reference implementation to show how
the meta-circular evaluator can be natively bootstrapped on POSIX
conforming platforms, with a pleasant readline-like interface. See
lisp.c. -
We provide a 512-byte i8086 implementation of LISP that boots from
BIOS on personal computers. See sectorlisp.S. To the
best of our knowledge, this is the tiniest true LISP implementation
to date.
Getting Started
See lisp.lisp for code examples that you can copy and paste
into your LISP REPL.
You can run the C implementation as follows:
After running make
you should see a sectorlisp.bin
file, which is a
master boot record you can put on a flopy disk and boot from BIOS. If
you would prefer to run it in an emulator,