Structure and Interpretation of Computer Programs, JavaScript Edition
Structure and Interpretation of Computer Programs, JavaScript Edition | ||
---|---|---|
著者 | Harold Abelson、Gerald Jay Sussman、Martin HenzとTobias Wrigstad(JavaScriptを使用した翻案)、Julie Sussman | |
発行元 | MIT Press | |
ジャンル | 教科書 | |
ページ数 | 640 | |
公式サイト | mitpress/sicp | |
|
Structure and Interpretation of Computer Programs, JavaScript Edition (略称:SICP JS)は、コンピューターサイエンスの教科書Structure and Interpretation of Computer Programs(SICP)をJavaScriptを用いて翻案したものである。再帰、抽象化、モジュール性、プログラミング言語の設計と実装など、コンピュータープログラミングの基本原則を説明している。SICPのオリジナルバージョンではプログラミング言語Schemeが使用されていたが、このエディションではプログラミング言語JavaScriptが使用されている。
このエディションは、Guy L. Steele Jr.による序文を掲載しており、2022年4月にMIT Pressから発行された[1]。
コンテンツ
[編集]オリジナル版と同様に、SICP JSは、特定の問題を解決するための一般的なパターンを発見し、それらのパターンを活用するソフトウェアシステムを構築することに重点を置いている[2]。この本では、JavaScriptを使用したコンピューターサイエンスの概念について説明している。また、仮想レジスターマシンとアセンブラーを使用して、JavaScriptインタープリターとコンパイラーを実装している。
ライセンス
[編集]この本は、Creative Commons Attribution NonCommercial ShareAlike 4.0ライセンスの下でMIT Pressによって発行されている。テキストと図については、Creative Commons Attribution ShareAlike 4.0ライセンスの対象である。JavaScriptプログラムは、GNU Public License 3.0の下でライセンスされている。セクション2.2.4のMIT 創設者ウィリアム・バートン・ロジャースの元の画像は、MIT Museumの厚意で提供されている。
歴史
[編集]シンガポール国立大学(NUS)は、2012年からドラフト版をオンラインで公開し、2019年12月13日に最初の正式版を公開した。SICP JSは、2012年からNUSのコースCS1101S[3]で使用されている[4]。
元の教科書との違い
[編集]この本は、特定のプログラミング言語ではなく、プログラミングの原則、モデル、抽象化に焦点を当てている。元のSICPでは、すべての例がプログラミング言語Schemeで書かれているが、SICP JSは、Schemeの代わりにJavaScriptを使用している。JavaScriptの関数的なコアはSchemeと共通しているため、JavaScriptへの適応は簡単で、最初の3章はほとんど文字通りの翻案となっている。第4章では、新しい内容、特にプログラム解析の概念を紹介している。第5章の評価器とコンパイラーは、末尾再帰を犠牲にすることなくreturnステートメント(ステートメント指向言語の顕著な特徴)をサポートするために、小さなスタックの規律を導入している。
Source
[編集]SourceはJavaScriptの一連のサブ言語であり、もともとはダグラス・クロックフォード『 JavaScript: The Good Parts』にインスパイアされたものである。この言語は、SICP JSの各章に対応するSource §1、Source §2、Source §3、Source §4の各言語から構成される。各言語は、それぞれ次のセクションの言語のサブ言語となっており、それぞれの章で必要な機能のみを含むように設計されている。これらの言語は、SICP JSの読者をサポートするさまざまなツールを備えたWebベースのプログラミング環境であるSource Academy[5]を用いて実装されている。
関連項目
[編集]出典
[編集]- ^ “Structure and Interpretation of Computer Programs: JavaScript Edition by Harold Abelson, Gerald Jay Sussman, Martin Henz, Tobias Wrigstad, Paperback | Barnes & Noble®”. Barnes & Noble (2021年). 2022年1月22日閲覧。
- ^ Harvey, B (2011), “Why SICP matters?”, The 150th anniversary of MIT, Boston Globe.
- ^ “Department of Computer Science; CS1101S Programming Methodology”. NUS (Fall 2021). 2020年7月17日閲覧。
- ^ “Interactive SICP JS”. Source Academy (2021年). 2021年11月4日閲覧。
- ^ “Source Academy”. NUS (2021年). 2021年6月21日閲覧。