Bottoms Scheme implementation project
history | edit |


Scope / goals

We'll try to work towards an implementation that's "real-world capable". We will simplify on features and performance, but not in a way that would prevent them from being added or improved easily later on.

The compiler, if everything goes according to plan, will not itself depend on another Scheme system to run (it will use itself to run, though). The VM is exempt from this aim.

The full version of the workshop plan involves building a lowlevel interpreter/VM, a compiler for a dynamic programming language (with a bottom-up development approach), and possibly an implementation for a programming language to use for implementing the VM (with a top-down development approach). The work will give incentives for work on static analysis (type systems and proofs), although actual such work is not part of the plan. You can choose to participate only in certain parts of the project.

The aims

The language

The system should ultimately support R5RS Scheme, including efficient (computational and memory complexity wise) first-class continuations, and universal tail-call optimization.

We may implement simpler languages than Scheme first (and Scheme might be implemented on top of the simpler one(s)).

But we may defer or ignore parts of R5RS less interesting to us:

Approach & features