A SECD virtual machine for evaluating Lisp programs.
This project consists of three primary components in separate crates:
Seax Virtual Machine (SVM)
The core of the project. A virtual machine based on the SECD machine described by Peter Landin in 1963. SVM is distributed as a library so that it may be included in other programs.
A Scheme interpreter/compiler targeting the Seax VM. This implementation aims to conform with the Revised6 Report on Scheme (R6RS) whenever possible, but may not be a complatible implementation.
seax-scheme is released as a library, rather than an executable, so that it may be included in other applications which use Scheme as an embedded language.
The Seax main crate will contain a simple command-line wrapper for invoking the Scheme interpreter, either on source code files or as a REPL, compiling Scheme programs to SVM bytecode, and executing SVM bytecode files. This is so that the individual components of the system may be written as libraries rather than as executable programs. If additional compilers targeting the SVM are developed, this main program may invoke them as well.