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
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.