計算機プログラムの構造と解釈
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/05/19 06:57 UTC 版)
![]()
第二版の表紙
|
|
著者 | ハル・アベルソン、ジェラルド・ジェイ・サスマン、ジュリー・サスマン |
---|---|
題材 | 計算機科学 |
ジャンル | 教科書 |
出版社 | マサチューセッツ工科大学出版局 |
出版日 | 1984年(初版) 1996年(第二版) 2022年(JavaScript版) |
ページ数 | 657 |
ISBN | 0-262-51087-1 (第二版) |
LC分類 | QA76.6 .A255 1996 |
ウェブサイト | mitpress |
『計算機プログラムの構造と解釈』(けいさんきプログラムのこうぞうとかいしゃく、原題: Structure and Interpretation of Computer Programs、略称: SICP)は、1985年にMIT出版から刊行された、計算機科学分野の古典的な教科書。著者はマサチューセッツ工科大学 (MIT) の教授ハル・アベルソンとジェラルド・ジェイ・サスマン、ジュリー・サスマン。
表紙に魔術師が描かれているため、「魔術師本」(Wizard Book)、またはまれに表紙の色をとって「紫本」(Purple Book)と呼ばれる。計算機科学の基本原理、すなわち再帰、抽象化、モジュール、プログラミング言語の設計と実装について書かれている。
1984年に初版、1996年に第二版が出版され、1984年から2007年まで、MITの計算機科学入門講義の教科書として使用された。SICPは、特定の問題を解決するための一般的なパターンの発見と、それらのパターンを利用するソフトウェアシステムの構築に焦点を当てている[1]。2022年にはJavaScript版が出版された[2]。
第二版の和田英一による日本語訳(ISBN 978-4894711631)がピアソン桐原から2000年2月に発売された[3][4]。2013年8月にピアソン桐原が撤退し絶版になり[要出典]、和田はHTML版を公開した[5]。 和田は一時MIT助教授であったため、著者の一人ジェラルド・サスマンとは知り合いである[要出典]。 全体的に訳が古めかしいという不評も一部にある[要出典]。その後2014年5月に翔泳社より再版されている[6]。
内容
本書は計算機科学の概念を、SchemeというLISP方言を用いて説明している。また、仮想のレジスタマシンとアセンブラを使用して、LISPのインタプリタおよびコンパイラを実装している。
本書で扱われる主なトピックは以下の通りである[7]。
第1章: 手続きによる抽象の構築
- プログラムの要素
- 手続きとその生成するプロセス
- 高階手続きによる抽象
第2章: データによる抽象の構築
- データ抽象入門
- 階層データ構造と閉包性
- 記号データ
- 抽象データの多重表現
- 汎用演算のシステム
第3章: 標準部品化力、オブジェクトおよび状態
- 代入と局所状態
- 評価の環境モデル
- 可変データでのモデル化
- 並列性:時が本質的
- ストリーム
第4章: 超言語的抽象
- 超循環評価器
- Schemeの変形-遅延評価
- Schemeの変形ー非決定性アルゴリズム
- 論理型プログラミング
第5章: レジスタ計算機での計算
ライセンス
本書はクリエイティブ・コモンズ 表示-継承 4.0 国際 (CC BY-SA 4.0) ライセンスの下で公開されている[8]。
講義資料
本書は、MITにおける旧・初級プログラミング講義「6.001」の教科書として使用されていた[9]。この講義は1984年秋学期から始まり、最終学期となった2007年秋まで続いた[10]。他の大学でも、本書が講義の教科書として利用されていた[11]。
評価
SICPは、出版後短期間のうちに米国や世界各地の学校で最初の講義に使われるようになった[12]。MIT出版のボブ・プライアーによればSICPは最初の5年間で4万5000部売れた[12]。
『バイト』誌は1986年にSICPを「自身の職業に真に関心を持つプロフェッショナルなプログラマ」に推奨した。同誌は、本書の内容は読みやすいものではないとしながらも、熟練したプログラマに対して新旧の話題に触れる機会を提供するものであると述べている[13]。
SICPを学部生向け教科書として評価したフィリップ・ワドラーによる書評では、計算機科学の入門言語としてScheme言語の弱点が指摘された[14]。ワドラーは特に、パターンマッチングの欠如が等式推論 (equational reasoning) を不明瞭にし、証明の教育を困難にしている点、Schemeにおける代数的データ型の不在と、consペアによるコードおよびデータの表現に過度に依存している点が、初学者を混乱させると批判した。また、標準の評価戦略として遅延評価ではなく正格評価を選択している点も問題視された。
影響
SICPは計算機科学教育に大きな影響を与え、のちの数多くの教科書がその体裁に刺激を受けた。
- Structure and Interpretation of Classical Mechanics(通称SICM) - ジェラルド・ジェイ・サスマンによる、Schemeを使ったもう一つの教科書。
- Software Design for Flexibility
- How to Design Programs(通称HtDP) - SICPと同様のアイディアを数多く盛り込んだ、より取っ付きやすい初等的な教科書。
- Essentials of Programming Languages - プログラミング言語の講義の教科書。
- Concepts, Techniques, and Models of Computer Programming - Schemeを利用せずにインタープリタベースの学習を採用した最近の教科書。
関連項目
- 関数型言語
- ラムダ式は、 SICPの核となる概念で[要出典]、表紙にも描かれている。
- 表紙の中で、陰陽マークに eval と apply が描かれており、その相補的な関係を暗示している。
- 『コンピュータプログラミングの概念・技法・モデル』 (CTM、CTMCP)
脚注
- ^ Harvey, B (2011), “Why SICP matters?”, The 150th anniversary of MIT, Boston Globe
- ^ Structure and Interpretation of Computer Programs: JavaScript Edition. MIT Press. (2022). ISBN 9780262543231
- ^ 計算機プログラムの構造と解釈 第二版 - 和書
- ^ 奥乃博 Introduction to Algorithms and Data Structures (SICP, 計算機プログラムの構造と解釈), 2013
- ^ http://sicp.iijlab.net/
- ^ http://www.shoeisha.co.jp/book/detail/9784798135984
- ^ “計算機プログラムの構造と解釈 第2版”. 翔泳社. 2025年5月18日閲覧。
- ^ “SICP”. MIT Press. 2017年12月26日時点のオリジナルよりアーカイブ。2007年11月11日閲覧。
- ^ “Electrical Engineering and Computer Science; 6.001 Structure and Interpretation of Computer Programs”. OpenCourseWare. MIT (Spring 2005). 2020年6月21日閲覧。
- ^ Guy, Donald, “The End of an Era”, MIT Admissions (blog comment), オリジナルの2018-08-21時点におけるアーカイブ。 2008年8月5日閲覧, "I talked to Professor Sussman on the phone... He said that he'd actually been trying to have 6.001 replaced for the last ten years (and I read somewhere that Professor Abelson was behind the move too). Understanding the principles is not essential for an introduction to the subject matter anymore. He sees 6.001 as obsolete."
- ^ “Universities and Colleges Using SICP”. MIT Press. 2022年4月23日時点のオリジナルよりアーカイブ。2022年3月30日閲覧。
- ^ a b Matthias Felleisen, Robert Findler, Matthew Flatt, Shriram Krishnamurthi (PDF), The Structure and Interpretation of the Computer Science Curriculum
- ^ Kilov, Haim (November 1986) (English). Byte Magazine Volume 11 Number 12: Knowledge Representation. p. 70
- ^ Wadler, P (1987-03-01). “A critique of Abelson and Sussman or why calculating is better than scheming”. SIGPLAN Not. 22 (3): 83–94. doi:10.1145/24697.24706. ISSN 0362-1340 .
書籍
- 『プログラムの構造と実行』、H. エーベルソン(著)、G. J. サスマン(著)、元吉文男 (訳) 、マグロウヒル出版、1989年 上巻:ISBN 978-4895012935 下巻:ISBN 978-4895012942。本書の第一版の和訳である。
- 『計算機プログラムの構造と解釈 第二版』、ジェラルド・ジェイ サスマン (著) 、ハロルド エイブルソン (著) 、ジュリー サスマン (著) 、和田英一 (訳) 、ピアソン・エデュケーション、2000年 ISBN 978-4894711631
- Structure and Interpretation of Computer Programs Second Edition, Harold Abelson, Gerald Jay Sussman, Julie Sussman, Mit Press, 1996, ISBN 978-0262510875
外部リンク
書籍
- 公式ウェブサイト 原文の全文が公開されている
- SICP Web Site for the Japanese Edition 日本語訳第二版の公式サイト
- 英語版HTML
- 英語版PDF
- 日本語版PDF
MITでの講義
- 計算機プログラムの構造と解釈のページへのリンク