Structure and Interpretation of Computer Programs (SICP) by Abelson & Sussman

Electronic versions with newly typeset mathematics and figures:

HTML5, EPUB3, repo
PDF, repo
Pocket format PDFs

It is remarkable that the authors and the publisher have made this book freely available at the MIT Press site, licensing it under a Creative Commons license. That is much appreciated. The existence of HTML source has made it possible to convert the book to other formats, some of which are presented here. Current revisions are based on the Unofficial Texinfo Format (UTF), version 2.neilvandyke4, which has grown out from Lytha Ayth’s version 2. Many thanks to Lytha Ayth for the conversion effort and to Neil Van Dyke for maintaining and hosting the UTF.

Showcase of improvements

Most visible changes in this version are properly typeset mathematical expressions and vectorized figures. Below is the power series from exercise 3.59 typeset in old and new style:

All the figures in the last version were typed in ASCII art. Those are quite good, and really the only way to have any graphics in Info document. It’s nice to see that people are keeping the fascinating art of ASCII alive. But Texinfo supports vector images, too, if compiled to PDF. As an example is the linked list diagram from figure 2.24 in both styles:

One minor detail to fix was the redundancy in cross references. A simpler way to link to another section is shown below. Figure and exercise pointers are also shortened. Page numbers are obsolete in ebook links and have been dropped. There is page number on each page, though (only in the ordinary pdf, not in pocket edition).

Displaying the PDF

If you are using Adobe Reader 9 to view the PDF, you may want to change some display settings. First, go to Edit → Preferences…, then choose Page Display from the Categories list. In the Rendering section, uncheck Enhance thin lines. See the illustration below. This way the roofs of square roots will not render overly thick. Might be that the opposite setting will look better on your screen.

Navigating the PDF

When reading the book and seeing a cross reference, you sometimes want to follow it to take a quick look. Then the PDF reader jumps to another chapter or exercise, for example. But how do you get back to your original page? It helps if you memorized the page number, but who pays much attention to such detail?

In fact, you don’t need to. Just press Alt + Left Arrow and you are back where you were before the jump. Press Alt + Right Arrow to follow the link again. Those are just like Back and Forward buttons in a web browser. If you moved around in another part of the PDF, you might need to press the Alt combination several times before you get back. That’s because some of the page navigation commands will grow the navigation history and others don’t.

Adobe Reader calls these navigation commands Previous View and Next View. They are also accessible through the right mouse-button menu and from View → Go To in the main menu. By default, these buttons are not on the navigation toolbar. You can add them by right-clicking on the toolbar and choosing More Tools… There, scroll to Page Navigation Toolbar:

Xpdf also supports link navigation using the outermost arrow buttons on bottom left toolbar. Evince follows the links, but doesn’t know how to jump back. Other readers’ navigation abilities are unknown to me. To conclude this page, I hope the above information will enhance your reading experience. There are still typos to be found, if you find one, let me know.


19 thoughts on “Structure and Interpretation of Computer Programs (SICP) by Abelson & Sussman

  1. Reading the navigating the PDF section makes me think that a modern HTML5 version with MathML and SVG would be appropriate.

  2. Pingback: A New PDF Version of SICP | Irreal

  3. Pingback: Michael Tsai - Blog - Improved SICP PDF

  4. Pingback: Scheme and SICP — on a Mac | ricardian ambivalence

  5. Pingback: Structure and Interpretation of Computer Programs (SICP) | Binglong's space

  6. I’d like to be able to print a hardcopy of the updated pdf using They have a 740 page limit and the current pdf is 762 pages. Is there a simple way to produce a pdf that will fit within lulu’s 740 page limit ?

  7. Thank you for all your work in compiling and presenting this material. Your efforts are very much appreciated! 🙂

  8. Pingback: 《计算机程序的构造和解释》读书笔记 | 诟屍

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s