Structure and Interpretation of Computer Programs

Structure and Interpretation of Computer Programs

This is a classic programming text. We focus on Structure and Interpretation of Computer Programs by Harold Abelson and Jerry Sussman with Julie Sussman. While this book teaches an obscure language called Scheme, which is a dialect of a less obscure language Lisp, it provides insight through tutorials and high-level descriptions of the understanding of computer programs.

This review covers the book Structure and Interpretation of Computer Programs.

SICP basics

To start, the book Structure and Interpretation of Computer Programs is abbreviated as SICP or called the wizard book. It is a classic introductory programming text that was used at MIT. However, while it is an introduction, it was used to introduce students with varying experience in programming to the understanding of programming.

Warning

Not an easy read. SICP is not a book you will sit down and read through in one sitting. It is not a book that will help you make your next enterprise application. For the smartest readers, you may complete the text in several weeks; I have not completed it after several months. The tone of the book is at times grandiose: its first paragraph includes the sentence "Computational processes are abstract beings that inhabit computers."

Science and SICP. While in the programming industry is largely focused on design patterns, this book relates science to programming. For example, the book describes how Einstein's Theory of Relativity relates to multithreaded (concurrent) programs. On a personal note, this book may help you write about computer programs more than actually write real computer programs.

Examples

Examples

The wizard book has tons of interesting analysis in it, and often the chapters are organized in tutorial form. So, in the chapter on metalinguistic abstraction, you will see how to actually implement a metacircular evaluator in Scheme. In the section on nondeterministic programming, you will learn how to implement the ambivalence operator (amb) in Scheme. Even if you do not write Scheme for a living, this will help you understand the theory.

Writing your own compiler. The book describes a complete tutorial for writing your own register-based machine and Scheme compiler. Although I have not done the actual tutorial, the descriptions and their forms are very interesting.

Microshaft. One funny part in the book is the mention of a company named Microshaft. In the examples, you can see how the employees are underpaid and the managers and CEO are paid a lot. I don't know if the professors at MIT have any opinions in particular about Microsoft they are trying to express here.

Buy it?

Question and answer

If you have an intense interest in computer science, and are bored with software development, this is the best book to read. If you are interested in coding mainly, this book might not really appeal to you. If you write about computer programming, this book is an important one to read. If you want to understand computer programs on a higher level, this book is a step in the right direction. This is a good book to buy if you are willing to challenge yourself and have time to do so.

Bituminous coal

File: conceptual illustration

When learning about computer programming, some books such as the Structure and Interpretation of Computer Programs can help frame the study of technology for you. One of the best institutions that teaches computer programming is MIT. It was founded by William Barton Rogers in 1861. The school was focused on providing technical instruction, and proving that technical knowledge is not less valuable than the humanities.

The final speech. As told in the Structure and Interpretation of Computer Programs, Mr. Rogers retired due to illness but was called back to MIT to lead the school after repeated attempts by Harvard to take it over. Strangely, William Barton Rogers died during a speech at a graduation ceremony. Here are some quotations from the Structure and Interpretation of Computer Programs.

"As I stand here today and see what the Institute is, ... I call to mind the beginnings of science. I remember one hundred and fifty years ago Stephen Hales published a pamphlet on the subject of illuminating gas, in which he stated that his researchers had demonstrated that 128 grains of bituminous coal—"

"Bituminous coal," these were his last words on earth. Here he bent forward, as if consulting some notes on the table before him, then slowly regaining an erect position, threw up his hands, and was translated from the scene of his earthly labors and triumphs to "the tomorrow of death..."

This section provides information

Perspective. I believe that technology and technical understanding is just as important as any other shape of knowledge. You could say that bituminous coal is a metaphor for our technical thought—our drive to shape reality using technology. So while the president of MIT died with those two words, they could be seen to represent the far greater importance of all technical things in life, which result in a life that is meaningful and worth living.

Summary

Four-way arrow

We looked at the book Structure and Interpretation of Computer Programs. We touched on some basics and examples from the wizard book, abbreviated as SICP. While this is an introductory text, it might introduce an advanced programmer to a more advanced understanding of computer programs. For some it changes lives. It is ineffective for others.

MIT Book Reviews
.NET