The software and data required for making these web pages and the PDF edition are contained
in the repository Source Academy / sicp,
and improvements, extensions and discussions are handled in this repository as with many other
open-source software projects.
\LaTeX sources of the textbook from Gerald Jay Sussman, and converted it to an XML
format that allowed
He developed a processing system to generate HTML from XML, using XSLT, resulting in the
making-of.2 Mobile-friendly Web Edition
The mobile-friendly web edition
of SICP JS was designed and implemented by Liu Hang
in 2017 and then further developed by Feng Piaopiao in 2018, and by He Xinyue and Wang Qian in 2020.
Formulas are retained in the resulting HTML files
and are typeset by the reader's browser on the fly, using the MathJax system.
The PDF edition was developed by Chan Ger Hean, using Node.js and and the
e-book edition by Jolyn Tan using Node.js and pandoc, both in 2019.
In the textbook, program fragments often require other program fragments.
In order to collect and execute the necessary programs, the corresponding
SNIPPET tags in the xml files include REQUIRES tags. The Rails
server uses these tags in order to assemble the executable programs.
The PDF edition
of SICP JS was designed and implemented by Chan Ger Hean in 2019.
Ger Hean decided to use Node.js for generating files from the XML sources.
The files are then typeset using the PdfLaTeX system.
making-of.4 E-book Edition
The e-book edition
of SICP JS was designed and implemented by Jolyn Tan in 2019.
Jolyn decided to use Node.js for generating files from the XML sources.
The files are then processed into the EPUB 3 format using the
The figures are adapted from HTML5/EPUB3 version of SICP
by Andres Raba. The figures are licensed under Creative Commons Attribution-ShareAlike 4.0 International
of figures were done by manually by Tobias Wrigstad using Inkscape and gratuitous use of sed.