3 ms·
McCarthy did not invent Lisp with the expectation that it even could be used as a language for real computers. Steve Russell had to convince him that McCarthy's
by Zambyte 3y ago
McCarthy did not invent Lisp with the expectation that it even could be used as a language for real computers. Steve Russell had to convince him that McCarthy's theoretical definition of Lisp would actually work by actually implementing the interpreter himself.
I don't think McCarty would have been too snobbish in dialects, considering he wasn't expecting a practical language at all :D
- lispm 3y ago> McCarthy did not invent Lisp with the expectation that it even could be used as a language for real computers. He was expecting a practical language and was designing one. Lisp was from day zero a project to implement a real programming language for a real computer. Earlier he experimented with IPL and also list processing / functional programming in Fortran. The original plan was to implement a Lisp compiler. At first the Lisp code, which McCarthy was experimenting with, was manually translated to machine code. So before the first Lisp compiler or interpreter existed, he was experimenting with how to represent and make the code running on a computer. He then invented a Lisp interpreter in Lisp. Then came up the idea (-> Steve Russell) to use this EVAL as a base for an interpreter implementation, which was also implemented by manually translating the Lisp code to machine language. McCarthy at first thought that it was not possible to use this Lisp evaluator written in Lisp as a base, but Steve Russell implemented it. Around 1962 then a Lisp compiler followed. The paper by Herbert Stoyan describes the history of McCarthy's Lisp project: https://github.com/papers-we-love/papers-we-love/blob/main/comp_sci_fundamentals_and_history/early-lisp-history-1956-1959-herbert-stoyan-html-rendering.pdf https://github.com/papers-we-love/papers-we-love/blob/main/c... > considering he wasn't expecting a practical language at all :D He was expecting a practical language, since he was designing one and the team was implementing it. He designed data structures, core functions, evaluation, garbage collection as memory management, input and output, ... The language was to be used as a list processing language for research in the upcoming field of Artificial Intelligence: game play, natural language dialogs, symbolic maths (integration, ...), logic reasoning, computer vision, robotics, ... He wrote several design documents on the language and its implementation. There even is the Lisp I Programmer's Manual from March 1960: https://bitsavers.org/pdf/mit/rle_lisp/LISP_I_Programmers_Manual_Mar60.pdf https://bitsavers.org/pdf/mit/rle_lisp/LISP_I_Programmers_Ma... Lisp was initially developed for an IBM 704 computer and primitive list operations CAR (= FIRST, HEAD) and CDR (= REST, TAIL) were referencing machine architecture details of the IBM 704.
- kazinator 3y agoMacCarthy was definitely conducting Lisp as a language implementation project. He was just surprised that his specification of the evaluation could be literally translated to code and executed; at first he thought Russell misunderstood that the spec was just for people to read, not for the machine. Someone was supposed to read that and implement the behavior. It's kind of hard to understand why MacCarthy was surprised. Anyone sitting down to follow the spec and make it work on the machine would soon realize that they are just mechanically converting the expressions to code. Like where the specification calls APPLY with certain arguments, your machine code has to obtain those argument values and call APPLY in the same way. It will soon be obvious that you're just hand-coding exactly what is written. People were already doing that. FORTRAN is "formula translator"; before Fortran, formulas had to be translated to code by hand. Russell was just "fortranning" the formulas in the Lisp specification, like you would arithmetic formulas.