Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p><a href="http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/impl/kamin/0.html" rel="noreferrer">The Kamin Interpreters</a> from Samuel Kamin's book <em>Programming Languages, An Interpreter-Based Approach</em>, translated to C++ by Timothy Budd. I'm not sure how useful the bare source code will be, as it was meant to go with the book, but it's a fine book that covers the basics of implementing Lisp in a lower-level language, including garbage collection, etc. (That's not the focus of the book, which is programming languages in general, but it is covered.)</p> <p><em>Lisp in Small Pieces</em> goes into more depth, but that's both good and bad for your case. There's a lot of material on compiling and such that won't be relevant to you, and its simpler interpreters are in Scheme, not C++.</p> <p>SICP is good, definitely. Not overkill, but of course writing interpreters is only a small fraction of the book.</p> <p>The JScheme suggestion is a good one, too (and it incorporates some code by me), but won't help you with things like GC. </p> <p>I might flesh this out with more suggestions later.</p> <p><strong>Edit:</strong> A few people have said they learned from my <a href="http://github.com/darius/awklisp/tree/master/awklisp" rel="noreferrer">awklisp</a>. This is admittedly kind of a weird suggestion, but it's very small, readable, actually usable, and unlike other tiny-yet-readable toy Lisps it implements its own garbage collector and data representation instead of relying on an underlying high-level implementation language to provide them.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload