コンテンツにスキップ

計算機プログラムの構造と解釈

出典: フリー百科事典『ウィキペディア(Wikipedia)』
計算機プログラムの構造と解釈
Structure and Interpretation of Computer Programs
著者 ハル・アベルソン、ジェラルド・ジェイ・サスマン、ジュリー・サスマン
発行日 25 7 1996、1984
発行元 マサチューセッツ工科大学出版局
ジャンル 教科書
国 アメリカ合衆国
言語 英語
形態 文学作品
ページ数 657
公式サイト mitpress.mit.edu/sicp
コード OCLC 174302193
[ ウィキデータ項目を編集 ]
テンプレートを表示

『計算機プログラムの構造と解釈』(けいさんきプログラムのこうぞうとかいしゃく、原題: 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章: 手続きによる抽象の構築

[編集]
  1. プログラムの要素
  2. 手続きとその生成するプロセス
  3. 高階手続きによる抽象

第2章: データによる抽象の構築

[編集]
  1. データ抽象入門
  2. 階層データ構造と閉包性
  3. 記号データ
  4. 抽象データの多重表現
  5. 汎用演算のシステム

第3章: 標準部品化力、オブジェクトおよび状態

[編集]
  1. 代入と局所状態
  2. 評価の環境モデル
  3. 可変データでのモデル化
  4. 並列性:時が本質的
  5. ストリーム

第4章: 超言語的抽象

[編集]
  1. 超循環評価器
  2. Schemeの変形-遅延評価
  3. Schemeの変形ー非決定性アルゴリズム(英語版)
  4. 論理型プログラミング

第5章: レジスタ計算機での計算

[編集]
  1. レジスタ計算機の設計
  2. レジスタ計算機シミュレータ
  3. 記憶の割当とごみ集め
  4. 積極制御評価器
  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は計算機科学教育に大きな影響を与え、のちの数多くの教科書がその体裁に刺激を受けた。

関連項目

[編集]

脚注

[編集]
  1. ↑ Harvey, B (2011), “Why SICP matters?”, The 150th anniversary of MIT, Boston Globe
  2. ↑ Structure and Interpretation of Computer Programs: JavaScript Edition. MIT Press. (2022). ISBN 9780262543231
  3. ↑ 計算機プログラムの構造と解釈 第二版 - 和書
  4. ↑ 奥乃博 Introduction to Algorithms and Data Structures (SICP, 計算機プログラムの構造と解釈), 2013
  5. ↑ https://sicp.iijlab.net/
  6. ↑ https://www.shoeisha.co.jp/book/detail/9784798135984
  7. ↑ “計算機プログラムの構造と解釈 第2版”. 翔泳社. 2025年5月18日閲覧。
  8. ↑ “SICP”. MIT Press. 2017年12月26日時点のオリジナルよりアーカイブ。2007年11月11日閲覧。
  9. ↑ “Electrical Engineering and Computer Science; 6.001 Structure and Interpretation of Computer Programs”. OpenCourseWare. MIT (2005年春). 2020年6月21日閲覧。
  10. ↑ 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."
  11. ↑ “Universities and Colleges Using SICP”. MIT Press. 2022年4月23日時点のオリジナルよりアーカイブ。2022年3月30日閲覧。
  12. 1 2 Matthias Felleisen, Robert Findler, Matthew Flatt, Shriram Krishnamurthi (PDF), The Structure and Interpretation of the Computer Science Curriculum
  13. ↑ Kilov, Haim (November 1986) (English). Byte Magazine Volume 11 Number 12: Knowledge Representation. p. 70
  14. ↑ 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

外部リンク

[編集]

書籍

[編集]

MITでの講義

[編集]