#lisp #vm #language

app seax

SECD virtual machine for interpreting programs in FP languages and a Scheme compiler targeting that machine

1 unstable release

Uses old Rust 2015

0.0.2 Apr 14, 2015

#1280 in Programming languages

Download history 5/week @ 2024-09-23 10/week @ 2024-09-30 28/week @ 2024-12-02 31/week @ 2024-12-09

59 downloads per month

MIT license

1.5MB
65 lines

Contains (WOFF font, 135KB) doc/SourceSansPro-Bold.otf.woff, (WOFF font, 135KB) doc/SourceSansPro-Black.otf.woff, (WOFF font, 135KB) doc/SourceSansPro-Regular.otf.woff, (WOFF font, 135KB) doc/SourceSansPro-Semibold.otf.woff, (WOFF font, 125KB) doc/SourceSansPro-ExtraLight.otf.woff, (WOFF font, 130KB) doc/SourceSansPro-Light.otf.woff and 13 more.

Seax

Build Status License

A SECD virtual machine for evaluating Lisp programs.

This project consists of three primary components in separate crates:

Seax Virtual Machine (SVM)

Build Status Latest RustDoc Latest SVM release

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.

Seax Scheme

Build Status Latest RustDoc Latest Seax Scheme release

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.

Seax

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.

Dependencies

~3.5–5.5MB
~96K SLoC