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 #1: Presentation

Hi! My name is Adrián Méndez López, and this is the first entry of my blog for the Programming Languages course. I expect to learn Clojure and Programming Paradigms like: Procedural Programming, Object Oriented Programming, Functional Programming, Logical Programming and Concurrent Programming. Hobbies and Personal Interests: Videogames, Investigations about actual topics or technology, running, going to the cinema, etc... Books / Comics: "It", "Mein Kampf", "DC Flashpoint", "DC The Button"...I like comics or graphic novels. Music: Imagine Dragons, AC/DC, Avicii...I like Rock, Pop, Electronic music Movies: Toy Story, MCU movies...I like action, animated and horror movies. TV programs: The Walking Dead, Breaking Bad, Game of Thrones, The Big Bang Theory.

Entry #6: Pair Programming

“All I Really Need to Know about Pair Programming I Learned In Kindergarten” is an article written by  Laurie A. Williams and  Robert R. Kessler  in 2000; it was published in the scientific magazine " Communications of the ACM " from the Association for Computing Machinery. In the article, the writers talk about the pair programming technique while explaining some concepts about it. Pair Programming is the practice in which two programmers work side-by-side, but, only in one computer, while collaborating on the same design, algorithm, code or tests. Pair programming helps to improve productivity, efficiency and the quality of software products, this improvement also helps programmers to create confidence in their solutions. The writers indicate that all the skills from pair programming, we have learned them while we were at kindergarten. While I was reading the article, I must say that they were correct; since my mother is a kindergarten director, I have already he...