The original metacircular evaluator
Page 13 of the Lisp 1.5 Programmer's Manual, showing the 'evalquote' function written as an m-expr. Basically, you're looking at all of Lisp defined in terms of itself.
Page 13 of the Lisp 1.5 Programmer's Manual, showing the 'evalquote' function written as an m-expr. Basically, you're looking at all of Lisp defined in terms of itself.
Comments and faves
raganwald (82 months ago | reply)
Yes, that was the big revelation to me when I was in graduate school—when I finally understood that the half page of code on the bottom of page 13 of the Lisp 1.5 manual was Lisp in itself. These were “Maxwell’s Equations of Software!” This is the whole world of programming in a few lines that I can put my hand over.
Alan Kay
sketerpot (82 months ago | reply)
Actually, McCarthy's original Lisp paper in 1960 predates the Lisp 1.5 manual, which was put out in 1962. It contains a metacircular evaluator.
raganwald (82 months ago | reply)
McCarthy's original Lisp paper in 1960 predates the Lisp 1.5 manual
Excellent point! Thanks.
Adam Keys, bootload, and kaufmans added this photo to their favorites.
khunyee_fung (80 months ago | reply)
Our professor gave us this definition and three weeks to implement a Lisp interpreter in C (on a Dec10; that shows my age, eh?). My group, Tim and I, slept about 3 hours every day for that three weeks. The apply function is the tough one; eval is easy.
vruba, BioGeek, gfixler, SKoon, and 5 other people added this photo to their favorites.