Skip to content

Bootstrapping LISP in a Boot Sector

License

Notifications You must be signed in to change notification settings

swolchok/sectorlisp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sectorlisp

sectorlisp is an effort to bootstrap John McCarthy's meta-circular evaluator on bare metal from a 512-byte boot sector.

Yo dawg, I heard you like LISP so I put a LISP in your LISP so you can eval while you eval

Motivations

Much of the information about LISP online tends to focus on wild macros, JIT compilation, or its merits as a better XML as well as a better JSON. However there's been comparatively little focus on the primary materials from the 1950's which emphasize the radically simple nature of LISP, as best evidenced by the meta-circular evaluator above.

Binary Footprint Comparison

This project aims to promote the radical simplicity of the essential elements of LISP's original design, by building the tiniest LISP machine possible. With a binary footprint less than one kilobyte, that's capable of running natively without dependencies on modern PCs, sectorlisp might be the tiniest self-hosting LISP interpreter to date.

We're still far off however from reaching our goal, which is to have sectorlisp be small enough to fit in the master boot record of a floppy disk, like sectorforth. If you can help this project reach its goal, please send us a pull request!

Demo

booting sectorlisp in emulator

The video above demonstrates how to boot sectorlisp in the blinkenlights emulator, to bootstrap the meta-circular evaluator, which evaluates a program for finding the first element in a tree.

You can watch the full demo on YouTube.

About

Bootstrapping LISP in a Boot Sector

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 48.4%
  • Assembly 26.7%
  • Common Lisp 10.7%
  • sed 10.2%
  • Makefile 3.1%
  • Shell 0.9%