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.
Mobile-friendly Web Edition
$\rm\LaTeX$ sources of the textbook from the Gerald 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
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. Liu Hang decided to use Ruby on
Rails for generating the HTML pages from the XML sources.
The XML documents are processed using Nokogiri. For that, the website is originally
hosted as a Ruby on Rails application and the generated HTML files are then collected as
a pure-HTML5 website. Formulas are retained in the resulting HTML files
and are type-set by the reader's browser on-the-fly, using the MathJax system.
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.
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.