Hacker News new | past | comments | ask | show | jobs | submit login
(Why?:Lisp) (alidlo.com)
3 points by alidcastano 45 days ago | hide | past | web | favorite | 6 comments



> Lisp, in fact, wasn’t proposed as a programming language at first. When John McCarthy invented it in 1958, all he intended to do was define a formal model of computation for AI research.

Where does this myth comes from? McCarthy wanted to develop a programming system for AI research. Not primarily a 'model of computation' for AI research. He programmed in Fortran and then he and his team developed it as a new language for an IBM 704 computer. The new language was designed and developed from 1958 on for that machine: code was hand translated first and then McCarthy came up with the interpreter idea, which then was implemented by Steve Russell and so on. It was a several year long project to develop a programming system. McCarthy also proposed ideas from Lisp as a model of computation - but that was more of a side-effect from "developing a programming system called LISP (for LISp Processor) for the IBM 704 computer by the Artificial Intelligence group at M.I.T." - literally the first sentence from the 1960 paper on "computations of recursive functions of symbolic expressions and their computation by machine".

That Lisp has functions like CAR and CDR is not because it was a 'model of computation', but because these were influences from the IBM 704 architecture. https://en.wikipedia.org/wiki/CAR_and_CDR


I first heard about Lisp from reading Paul Graham's articles, so naturally I learned about its history the same way.

In PG's essay introducing Bel, a new Lisp dialect, he mentions the origins of Lisp: "His goal was not to define a programming language in our sense of the word: a language used to tell computers what to do. The Lisp in his 1960 paper was meant to be a formal model of computation, like a Turing Machine. McCarthy didn't realize it could be used on computers till his graduate student Steve Russell suggested it."

Given how much research he's done on Lisp, I figured his interpretation of its history would be correct.

edit: sorry, forgot to include link: https://sep.yimg.com/ty/cdn/paulgraham/bellanguage.txt?t=157...


I think that essay a bit unfortunate worded:

'The Lisp in his 1960 paper was meant to be a formal model of computation, like a Turing Machine'

That's more about a paper from 1960 where McCarthy presented Lisp to a certain audience of mathematicians.

The actual Lisp programming system which existed at that time (and had a manual) was designed and developed from 1958 onwards.

Again: 'The Lisp in his 1960 paper was meant to be a formal model of computation, like a Turing Machine'

But the Lisp programming system they developed since 1958 was actually an implementation of Lisp on an IBM 704.

The language, its programming model and its implementation were developed since 1958 -> together. It was an iterative process over several years: ideas were formulated, code was written (often on paper) and then tested practically on a computer. Step by step.

More detail on the early years is by Prof. Herbert Stoyan:

https://github.com/papers-we-love/papers-we-love/blob/master...


Given your responses I wouldn't say its misworded but wrong. Specifically referring to his last sentence:

"McCarthy didn't realize it could be used on computers till his graduate student Steve Russell suggested it."

Anyway, appreciate the clarification/link. Will try to correct my article when I get a chance.


That sentence refers to the interpreter as an evaluator for Lisp, where McCarthy had the idea and Steve Russell suggested that it could be implemented - and then also did it. Before, code was manually translated to an actual implementation on the machine. It seems also that it took time to get details and the semantics right - especially the problem of of lexical binding (the FUNARG problem) took more than a decade to fix.


The list processing in Lisp was inspired by ideas from 1956 by Newell, Simon and Shaw. Herbert Gelernter and his team implemented this list processing in Fortran, into something called FLPL (Fortran List Processing Language) around 1958. Their implementation had lots of function names prefixed with X, among them XCAR and XCDR, that being inspired by the IBM 704. Lisp obviously stripped that back to CAR and CDR. The idea of doing list processing in Fortran was suggested to Gelernter by MacCarthy.




Applications are open for YC Summer 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: