== avisiblenetwork ==
seeing the invisible

Elements and Expressions

Abelson and Sussman introduce the simplest elements of programming in LISP as a springboard to discuss the inner workings of programming. They propose that a language is based on three components: the primitive expressions (simplest building blocks), means of combining those expressions, and means of abstracting those compound elements for manipulation. This idea is grounded in John Locke’s framework of the human mind as quoted in the previous section. SICP further divides elements into data and procedures. Data are the things that are manipulated and the procedures are the rules that do the manipulation.

A simple expression in LISP, (+ 2 3) sufficiently illustrates these components. The operator is the procedure that manipulates the operands or data. These three elements are the primitive expressions that are combined. The interpreter will take this expression and return 5. This compound element can then be abstracted.