Anyone know of a good / small scheme interpreter in C++? Perferably something < 2000 LOC, with a simple garbage collectro (either compacting or mark & sweep), no need to
There's also Gambit Scheme. It's also written in C and has the advantage that it's designed to be embeddable. I have personally used it to embed Scheme inside Excel 2003!
Although it's very much work in progress it works fine and you could easily adapt it to whatever C++ needs you have.
I have started a project at my university to do exactly this. Shaka Scheme is an attempt to implement R7RS in C++.
We are working towards implementing macros and continuations as of the time of writing, and will focus on an implementation model after R. Kent Dybvig's dissertation's heap-allocated model for evaluation.
In the future, we hope to have a fully-comprehensible documentation database through the GitHub wiki of our design and methodology to make implementation of Scheme readable to novices.
Here's a long list of scheme implementations:
http://community.schemewiki.org/?scheme-faq-standards#implementations
Several of them are embeddable interpreters, mostly in C. That shouldn't be a deal breaker for C++.
Well, there's a veeery tiny lisp by Gary Knott. Not even close to R5RS, but it's small, and comes with a book describing the internals! However, it's C, not C++, and as far as I can remember there's no GC (but I could be wrong).
There's also Mini Scheme by Nils Holm, but it's also C, and a bit larger than what you asked (2404 lines of C plus 1352 of Scheme). Nils has also written Scheme 9 from Empty Space, which is larger but also comes with a book describing every piece of code.
Tinyscheme is another small Scheme (4500 lines of C plus 452 of Lisp)...
Unfortunately Scheme Implementations doesn't organize based on such practical criteria. :)
I did find one Scheme Interpreter in C++ that you might check out to see if it fits your needs. I haven't tried this particular one, so this isn't an endorsement.