The JavaScript adaptation of SICP is an open-source community effort.
The software and data required for making these web pages and the PDF edition are contained
in the github repository
source-academy / sicp,
and improvements, extensions and discussions are handled in this repository using
git.
SICPのJavaScript版はオープンソースのコミュニティによる取り組みです。これらのウェブページとPDF版を作成するために必要なソフトウェアとデータは、GitHubリポジトリ
source-academy / sicpに含まれており、改善、拡張、議論はこのリポジトリで
gitを使って行われています。
Martin Henz started translating SICP to JavaScript in 2008. He obtained the original
LaTeX sources of the second edition from Gerald Jay Sussman, and converted them to
a custom-built XML format. The original sources are retained in the XML format, which
allows for generating the
comparison edition.
A processing system written in XSLT resulted in the
first version of the JavaScript adaptation around 2009, covering the first few sections of SICP.
The content of SICP JS contained in the
XML files are undergoing continuous improvement by the adapters Martin Henz and Tobias
Wrigstad, and by the community of SICP JS readers, using the github repository.
Martin Henzは2008年にSICPのJavaScriptへの翻訳を開始しました。Gerald Jay Sussmanから第2版のオリジナルの
LaTeXソースを入手し、独自に構築したXMLフォーマットに変換しました。オリジナルのソースはXMLフォーマット内に保持されており、
比較版の生成を可能にしています。XSLTで書かれた処理システムにより、SICPの最初の数セクションをカバーするJavaScript版の最初のバージョンが2009年頃に完成しました。XMLファイルに含まれるSICP JSの内容は、改編者のMartin HenzとTobias Wrigstad、およびSICP JSの読者コミュニティによって、GitHubリポジトリを使って継続的に改善されています。
In the book, 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
XML processors use these tags in order to assemble the executable programs.
The project thus can be seen as a literate programming system, custom-made
for authoring SICP JS.
本書では、プログラムの断片が他のプログラムの断片を必要とすることがよくあります。必要なプログラムを収集して実行するために、XMLファイル内の対応するSNIPPETタグにはREQUIRESタグが含まれています。XMLプロセッサはこれらのタグを使って実行可能なプログラムを組み立てます。したがって、このプロジェクトはSICP JSの著作のために特注された文芸的プログラミングシステムと見なすことができます。
Interactive SICP JS
インタラクティブ SICP JS
Interactive SICP JS
was designed and implemented by Samuel Fang
in 2021. The XML textbook sources are translated to a JSON format, which
are then read and rendered by a dedicated component of the Source Academy.
インタラクティブ SICP JSは、2021年にSamuel Fangによって設計・実装されました。XMLのテキストブックソースはJSONフォーマットに変換され、Source Academyの専用コンポーネントによって読み込まれてレンダリングされます。
The precursor of the comparison edition was the
mobile-friendly web edition
of SICP JS, designed and implemented by Liu Hang
in 2017. Feng Piaopiao improved the system in 2018.
He Xinyue and Wang Qian developed the
comparison edition
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 comparison edition is maintained by Martin Henz.
比較版の前身は、2017年にLiu Hangが設計・実装したSICP JSのモバイル対応ウェブ版でした。Feng Piaopiao が2018年にシステムを改良しました。He XinyueとWang Qianが2020年に
比較版を開発しました。数式は生成されたHTMLファイル内に保持され、MathJaxシステムを使って読者のブラウザによってその場で組版されます。比較版はMartin Henzが保守しています。
The early PDF editions (2010-2018) used XSLT for generating LaTeX from
the XML sources.
The first Node.js version of the PDF edition
was designed and implemented by Chan Ger Hean in 2019.
Tobias Wrigstad and Martin Henz are the main developers of this system.
初期のPDF版(2010〜2018年)は、XMLソースからLaTeXを生成するためにXSLTを使用していました。PDF版の最初のNode.jsバージョンは、2019年にChan Ger Heanによって設計・実装されました。Tobias WrigstadとMartin Henzがこのシステムの主要な開発者です。
Most figures are adapted from the
HTML5/EPUB3 version of SICP
by Andres Raba. The figures are licensed under Creative Commons
Attribution-ShareAlike 4.0 International
License
(cc by-sa).
JavaScript adaptations
of figures were done by Tobias Wrigstad using Inkscape and gratuitous use of
sed.
ほとんどの図はAndres Rabaによる
SICPのHTML5/EPUB3版を基に作成されています。図はCreative Commons Attribution-ShareAlike 4.0 International License
(cc by-sa)の下でライセンスされています。JavaScript版に合わせた図の修正は、Tobias WrigstadがInkscapeと
sedを駆使して行いました。
About the SICP JS Project
SICP JSプロジェクトについて