4 ms·
I remember Norvig comments on the book were very appraising (1) since he gave it 5 stars. The code of this book is here (3) I read it some twenty years ago. T
by nonenobody 3y ago
I remember Norvig comments on the book were very appraising (1) since he gave it 5 stars.
The code of this book is here (3)
I read it some twenty years ago. The terminology was new to me, something like fexpresion, nexpresion, ..., the difference being when and how the arguments are evaluated. At the same time I was reading macsima code, to learn how to develop a mathematical symbolic system. The book is mainly about the function eval, closures, and how to construct compiler. In a way is the reverse of 'practical common lisp'. It doesn't discuss any concrete implementation of Lisp, gc, servers, sockets or ffi. It is deep in how evaluation is done in Lisp but lacks a lot of other topics.
Perhaps a more practical approach to construct an optimizer compiler in Lisp is to study the code of sbcl, how it for example propagate constraints and declarations to optimize the code. Perhaps something like a JIT compiler (like hava hotspot) added to sbcl could be interesting. Also the code of Racket would be another source of interesting ideas, for example (2). Another idea is to study the code of Lush (by Yann LeCun and Leon Bottou)
(1) https://hackernewsbooks.com/book/lisp-in-small-pieces/dbb8b5f10c224e021a25eebe39bbb69d https://hackernewsbooks.com/book/lisp-in-small-pieces/dbb8b5...
(2) https://blog.racket-lang.org/2021/01/racket-status.html https://blog.racket-lang.org/2021/01/racket-status.html
(3) https://pages.lip6.fr/Christian.Queinnec/Books/LiSP-2ndEdition-2006Dec11.tgz https://pages.lip6.fr/Christian.Queinnec/Books/LiSP-2ndEditi...
- agumonkey 3y agoInteresting, I liked l.i.s.p gradual exploration of various traits and the various reimplementations. But that's right it avoids many low level bits. It seems a cultural trait, since McCarthy's paper was also a virtual metacircular description. About low level interfaces, there's another french book from back in the days: La programmation applicative : de LISP à la machine en passant par le lambda-calcul by Emmanuel Saint-James (also a colleague of C.Queinnec) (https://www.amazon.com/programmation-applicative-Emmanuel-Saint-James/dp/2866013557 https://www.amazon.com/programmation-applicative-Emmanuel-Sa...) Which, IIRC talks about IO at least (maybe gc, i forgot).