5 ms·
A Simple Scheme Compiler (1997)
- deleted 6y ago[deleted]
- mcguire 6y agoThe book this is from (follow the contents link) is dated 1997, which I find very disappointing. I think it is part of Paul Wilson's garbage collection archive. It was apparently intended to go from an introduction to Scheme all the way to implementation details. Unfortunately, it was never finished.
- vector_spaces 6y agoYou might like "Lisp In Small Pieces", which starts from a simple Lisp-1 interpreter to a Lisp-2 to C transport.
- ilammy 6y agoWith a bytecode compiler, multiple implementation approaches, and a couple of macrosystems dissected along the line. Though, LiSP is geared a bit more towards Scheme semantics rather than pragmatics. There are some details like closures, and dynamic binding, and call/cc, but you won't find truly gnarly details on garbage collection, value representation, threads, etc. Nevertheless, it's still an amazing book which I would recommend reading!
- agumonkey 6y agoFair enough. I heard that John Anatomy of Lisp might have more details. Do you know books talking about the topics you mentionned ?
- register 6y agoI would like to know as well. I would also be interested in opinions about "Lisp system implementation by Nils M Holm". I tried to read "Lisp in small pieces" at least 3 times but never managed to go further than the 1st chapter. I find the prose pedantic and often it doesn't go straight to the point that is the objective of the chapter. Maybe this is an issue due to the translation from French. In any case I find it a very heavy read. I have the feeling that the contents of the book could be easily condensed in half the pages.
- coryrc 6y agoIMO the point of the prose is to explain each concept so thoroughly that the concept and implementation go from "this is beyond me" to "of course it works this way, it's obvious" for each and every chapter. It could maybe be shortened, then maybe not everyone could have that experience.
- agumonkey 6y agoI found the style a bit difficult too.
- philzook 6y agoI have also bounced off of LiSP a couple times
- Jtsummers 6y agoI've also attempted it several times. If I were not so burnt out on programming at the moment (WFH is not a vacation, and I desperately need one) I'd probably have made it through this last time. Maybe, like all those SICP study groups, someone should make a LiSP study group to help keep people engaged and moving.
- inetsee 6y agoMissing a last name: "Anatomy of Lisp by John Allen".
- zeveb 6y agoIt is excellent and easy-to-follow … right up until the denotational semantics piece, which I found very difficult to understand. Maybe someday!
- bgribble 6y agoI can't find any author information in the linked doc but it reminds me of the work Donovan Kolbly was doing about that time on RScheme. I think RScheme was initially intended to be a teachable implementation and I seem to recall a book project that went along with it (I was a grad student then and there, and was an RScheme user, but wasn't closely involved with Wilson's group).
- mcguire 6y agoNow that you mention it, RScheme sounds right.
- juliangamble 6y agoGhuloum's scheme compiler tutorial essentially follows a useful process: http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf. It starts with emitting x86 machine code for constants, then unary and binary primitives, local variables, conditionals, heap allocation, procedure calls, and finally closures. It helps that Scheme has little to no parser to speak of, but it is straightforward to extend the technique to a language that does.