This project is read-only.

Project Description

A R5RS Scheme interpreter/compiler for the .NET runtime.


  • Configurable Read-Eval-Print loop;
  • multiple values (VALUES and CALL-WITH-VALUES).

Things To Do

Currently, Scheme.Net works as an interpreter. It supports a fairly substantial subset of the R5RS standard, but leaves a lot to be desired:
  • No syntactic analysis before evaluation (see Structure and Interpretation of Computer Programs, section 4.1.7);
  • No support for syntactic transformations (DEFINE-SYNTAX and either SYNTAX-RULES or SYNTAX-CASE);
  • No support for conditions or signals;
  • Minimal error checking;
  • Minimal support for standard libraries;
  • The numeric tower is still slightly buggy.


The ultimate goal is to create a Scheme compiler that generates native .NET bytecodes. There are various paths that may be followed to this end, including .NET expressions, an IL code generator, or even a virtual stack machine running on top of the .NET VM. How to resolve this issue is still TBD.

Last edited Jul 4, 2012 at 7:01 AM by gtryf, version 8