3 ms·
I wrote a few long-winded posts on HN listing Lisp implementation bibliographies. There are a few essential papers that you need to read to get the full picture
by mahmud 16y ago
I wrote a few long-winded posts on HN listing Lisp implementation bibliographies. There are a few essential papers that you need to read to get the full picture; Here they are collected in an archive. Nearly all of them assume nothing more than rudimentary familiarity with Lisp, some functional programming (Scheme and tiny bit of ML) and they're geared towards someone with some C, machine-org and assembly knowledge.
http://dl.dropbox.com/u/2083231/essential_lisp_implementation_papers.tar.gz http://dl.dropbox.com/u/2083231/essential_lisp_implementatio...
I would recommend these to someone who wants to implement a functional or a Lisp language, going with nothing but basic systems programming knowledge.
Recommend prerequisites are the first 2-3 chapters of SICP, some familiarity with classic compiler construction (dragon book would do, skip the lexical analysis and parsing parts though; you wont need much of that for Lisp if you retool and existing lexer. But focus on function calling and stack discipline, lexical scope and variable visibility, and maybe learn how an Algol dialect implements runtime heap-allocation) some exposure to C and assembly, and healthy curiosity.
A suggested order might be: Ghuloum, Wilson, Dybvig, the uncredited "lisp-implementation.pdf" paper, Gudeman, Kelsey, then Shao (Shao might make a whole lot more sense if you read one of Andrew Appel's compiler books and dip a tiny bit into ML.)
- eru 16y agoFor the brave, I can also recommend "Write Yourself a Scheme in 48 Hours" (http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_H...). I write `brave', because it implements Scheme using Haskell. And if you aren't familiar with either, the learning curve will be steep.