Simple Scheme interpreter in Python
Serval is a high-level Scheme interpreter written in Python. It implements a subset of R5RS. The code closely follows Scheme meta-circular evaluator implementation from Ch.4 of the SICP book.
The goal of the project
- Self-education (I’ve been always fascinated by language design and implementation, it was about time I started learning about interpreters and compilers by actually writing something).
- To serve as a potential example for other people interested in interpreter implementation, particularly Scheme interpreter.
- Not a goal per se, but I wanted the Serval to be able to run all examples from “The Little Schemer” book (that was my test target). The project has a test module test_the_little_schemer.py which runs simple meta-circular evaluator from Ch.10 of the book.