Ir al contenido principal

Entry #7: The Roots of Lisp

"The Roots of Lisp” is an article written by Paul Graham in 2002. In the article, the writer talks about how John McCarthy worked with simple operations and notations, which later would become Lisp. Just as a reminder, Lisp is a programming language and it stands for  "List Processing".

According to Paul Graham, there have been only two consistent models of programming: the C model and the Lisp model. He also tells that new programming languages in the past twenty years would be taking the C model of computing and add functions taken from the Lisp model, like runtime typing and garbage collection. The evolution in computer's performance and hardware has made that the new programming languages move to the Lisp model.

In the article, Paul Graham explains the bases in which Lisp was created using the rules of John McCarthy. The writer mentions that Lisp can be written in itself. First, we have the seven primitive operators: quote, atom, eq, car, cdr, cons y cond. Then, he talks about the functions which are expressed with parameters and expressions.

An expression whose first element is another expression is called a function call, meaning that the parameters can be used as operators or as arguments in expressions. Function calls allow us to express new functions in terms of the primitive operators like null, and, not, append, pair and assoc.

However, the most powerful function is eval which can build the entire language in just a few lines of code, and it is because the data are made out of the same data structures...or in other words, thanks to the property of recursion. Graham is responsible for breaking down the entire function and explain it in detail. He also mentions that if we understand eval, we will be probably understanding the main computational model in the future.

Article: P. Graham (2002). The Roots of Lisp. Recovered from http://34.212.143.74/s201913/tc2006/roots_of_lisp.pdf

Comentarios

Entradas populares de este blog

Entry #9: Language as the Ultimate Weapon

"Language as the “Ultimate Weapon” in Nineteen Eighty-Four" is an essay written by Jem Berkes in 2000. In the article, Jem Berkes discusses the inspiration behind the Newspeak language used by George Orwell inside his novel 1984 (Nineteen Eighty-Four) and how it reflects in real-world situations we face day to day and how the language is powerful enough to express meaning, intention and ability.  Inside the novel 1984, there is a language called Newspeak which is a simplification of the English language, or as the novel refers it as Oldspeak. Newspeak vocabulary eliminates words that are not necessary. The new vocabulary helped the government to control people and affect memories from person's, in order to forget most of them or provoke and affect the way a person could express or think. However, in this particular entry I won't talk about the essay written by Jem Berkes, I will answer a question asked by my professor which is something related to the essay...

Entry #4: Dick Gabriel on Lisp

"Dick Gabriel on Lisp" is a 60 minute long podcast produced by Software Engineering Radio in 2008. In this podcast, Dick Gabriel talks about his professional background and about the history of Lisp programming language and its functions and characteristics. Dick Gabriel is a computer scientist who studied at the Stanford University. He started his own Lisp company in 1984. Lisp is one of the first programming languages developed with a functional approach. Functional means that a function can be evaluated and when it returns a value, it is then evaluated by another function and so on. The computation or algorithms are done by nesting functions, in other words, a function is data and a data can be a function. However, other programming languages have taken over the industry in the next years, leaving behind Lisp. Modern programming languages have a more attractive and easier to understand method of coding in comparison to Lisp. Nevertheless, Lisp has been used in oth...

Entry #3: The Promises of Functional Programming

“The Promises of Functional Programming” is an article written by Konrad Hinsen in 2009, it was published in the scientific magazine "Computing now" from the IEEE Computer Society (Institute of Electrical and Electronics Engineers). In the article, Konrad Hinsen talks about functional programming while using examples made in Clojure programming language, in order to explain some essential concepts about functional programming. The article shows the characteristics and advantages of functional programming using Clojure, and it also explains the differences between functional and traditional programming. Functional programming was created in the 50s, however it has been used to write programs, because of its advantages for concurrent and parallel programming, and its robust and easier to test. A functional programming language is a language that operates by evaluating mathematical functions, like declarations and expressions. The fundamental principle of functional program...