"The Roots of Lisp" - Personnal comments


The article ‘The Roots of Lisp’ was written by Paul Graham and treats about the beginning of the language Lisp. He translates how John McCarthy created the language in 1960. 

The first discovery he made is that he would need to define some operators based on mathematic expressions and the main data structure: list. He started by defining what an expression is. It can either be an atom (sequence of letter) or a list. From this he defined seven primitive operators: quote, atom, eq, acr, cdr, cons and cond. 

Then he defines a notation for describing functions and functions calls. In this part he explains how expressions are computed, in which order parameters or operators are evaluated. Something that I have learned is that we can abbreviate some expressions when we use function composition. For example we can write (car (cdr e)) this way : (cadr e). All these functions use mostly one type of data structure : lists. 

Besides performing operations on lists, some functions can also evaluate the value of a function. In the article, the example used is with the function eval. The function is based on a cond condition with four clauses. The four clauses only use the seven primitive operators defined at the beginning.
Finally, the author explains what was missing to the language Lisp at its early ages when McCarthy designed it. It had no side-effects, no sequential execution, no practical numbers or dynamic scope. These features were added afterwards by two researchers Steele and Sussman. 

To conclude I found this article interesting but a bit complicated. I didn’t understand all the clauses of the eval function. And I don’t understand how this model will be the computation model of the future. In any case I am glad to know a little bit of how Lisp was first designed and the way of thinking of its creator. Now I am quite curious to learn about other language creators especially for the language C.

Commentaires

Posts les plus consultés de ce blog

"Language as the Ultimate Weapon in Nineteen Eighty-Four" - Personnal Comments

"Revenge of the Nerd" - Personnal Comments

"Rich Hickey on Clojure" - Personnal Comments