6 ms·
Hey, I'm probably punching out of my weight class here - I'm basically a Lisp beginner. But I will say that I don't think the manual for Lisp 1.5 gets as much a
by sroerick 20d ago
Hey, I'm probably punching out of my weight class here - I'm basically a Lisp beginner. But I will say that I don't think the manual for Lisp 1.5 gets as much airtime as the original John McCarthy eval statement, which does describe an interpreter. I do think there's a lot of conceptual overlap between an interpreter and a REPL. And while I've not read SICP my understanding is that they teach a Lisp interpreter. And also I think the author of this article is describing an interpreted language.
So I don't think I'm over my skis here. But I appreciate your clarifying point! I've not read the Lisp 1.5 manual but I probably should!
- kazinator 19d agoEVAL was described in Lisp, on paper first. Steve Russel realized that the Lisp specification of EVAL can be translated to machine language to produce an interpreter. So he did exactly that, by hand, surprising MacCarthy who had only expected his EVAL to be a reference specification, not source code. In other words, before there was an interpreter, a manual compilation step already took place with Lisp being translated to code. Several years later, they had code doing that, and it was mentioned in the 1960 paper "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I": > The LISP programming system is a system for using the IBM 704 computer to compute with symbolic information in the form of S-expressions. It has been or will be used for the following purposes: > 1. Writing a compiler to compile LISP programs into machine language. > 2. Writing a program to check proofs in a class of formal logical systems. > 3. Writing programs for formal differentiation and integration … > 4. [...] Conceptually, the specification of EVAL is a kind of term-rewriting system which indicates what is to be calculated from what, without asserting how.
- sroerick 19d ago> Steve Russel realized that the Lisp specification of EVAL can be translated to machine language to produce an interpreter. So just to be clear, you are here confirming that the first implementation of Lisp was in fact an interpreter?
- kazinator 19d agoThe first implementation of Lisp was Steve Russel, hand-translating Lisp written on paper to machine code.