第2版の表紙 | |
| 著者 | ハロルド・アベルソン、ジェラルド・ジェイ・サスマン、ジュリー・サスマン |
|---|---|
| 主題 | コンピュータサイエンス |
| ジャンル | 教科書 |
| 出版社 | MITプレス |
発行日 | 1984年(第1版)、1996年(第2版)、2022年(JavaScript版) |
| ページ | 657 |
| ISBN | 0-262-51087-1(第2版) |
| LCクラス | QA76.6 .A255 1996 |
| Webサイト | mitpress |
『コンピュータプログラムの構造と解釈』( SICP)は、マサチューセッツ工科大学のハロルド・エイブルソン教授、ジェラルド・ジェイ・サスマン教授、そしてジュリー・サスマン教授が共著したコンピュータサイエンスの教科書です。ハッカー文化では「ウィザードブック」として知られています。 [ 1 ]再帰、抽象化、モジュール化、プログラミング言語の設計と実装など、コンピュータプログラミングの基本原則を解説しています。
MITプレスは1984年に初版を出版し、1996年に第2版を出版した。1984年から2007年までMITのコンピュータサイエンス入門コースの教科書として使用された。SICPは、特定の問題を解決するための一般的なパターンを発見し、それらのパターンを活用するソフトウェアシステムを構築することに重点を置いている。[ 2 ]
MIT Pressは2022年にこの本のJavaScript版を出版した。 [ 3 ]
コンテンツ
本書では、 Lisp方言であるSchemeを用いてコンピュータサイエンスの概念を解説しています。また、仮想レジスタマシンとアセンブラを用いてLispインタプリタとコンパイラを実装しています。
本のトピックは次のとおりです。
- プログラミングの要素
- 手順とそれによって生成されるプロセス
- 高階手続きによる抽象化の定式化
第2章:データによる抽象化の構築
- データ抽象化入門
- 階層データと閉包性
- シンボリックデータ
- 抽象データの複数の表現
- 汎用的な操作を備えたシステム
第4章メタ言語的抽象化
- メタサーキュラー評価器
- Schemeのバリエーション –遅延評価
- スキームのバリエーション –非決定性コンピューティング
- 論理プログラミング
第5章レジスタマシンによる計算
- レジ機の設計
- レジ機シミュレータ
- ストレージ割り当てとガベージコレクション
- 明示的制御評価器
- コンピレーション
キャラクター
この本には、ユーモラスな名前を持つ架空のキャラクターがいくつか登場します。
- Lispハッカーのアリッサ・P・ハッカー
- ベン・ビディドル
- Cy D. Fect、「改心したCプログラマー」
- エヴァ・ル・アトール
- レム・E・トゥエキット
- ルイス・リーザナー、「ゆるい推論者」
ライセンス
この本はクリエイティブ・コモンズ表示-継承4.0 国際 (CC BY-SA 4.0) ライセンスの下で提供されています。[ 4 ]
コースワーク
この本は、MITの以前のプログラミング入門コース6.001の教科書として、1984年秋から2007年秋の最終学期まで使用されました。 [ 5 ] [ 6 ]他の学校でも教科書として利用されました。[ 7 ]
受付
1986年、 Byte誌は「自分の専門分野に真に関心を持つプロのプログラマー」向けにSICPを推薦した。同誌は、この本は読みやすいものではないが、経験豊富なプログラマーに古い話題と新しい話題の両方を紹介するのに役立つと評した。 [ 8 ]
Philip Wadlerによる学部生の教科書としての SICP のレビューでは、コンピュータサイエンスのコースの入門言語としての Scheme 言語の弱点が指摘されています。[ 9 ] Wadler は特に、パターン マッチングが欠如しているため方程式の推論がわかりにくく、証明の指導が難しくなる点、 Scheme には代数データ型が欠如しており、コードとデータの表現の両方でconsペアに過度に依存しているため初心者の学生を混乱させる点、標準的な評価戦略として遅延評価ではなく厳密な評価が選択されていることを批判しました。
影響
SICP はコンピュータサイエンスの教育に影響を与えており、その後のいくつかの書籍はそのスタイルに影響を受けています。
- ジェラルド・ジェイ・サスマンとジャック・ウィズダムによる、Scheme を教育要素として使用している別の本、「古典力学の構造と解釈(SICM)」
- 柔軟性のためのソフトウェア設計、クリス・ハンソンとジェラルド・ジェイ・サスマン著
- プログラムの設計方法(HtDP)は、コンピュータサイエンス入門者にとってよりアクセスしやすい本になることを目指しており、SICPの欠陥に対処することを目的としています。
- プログラミング言語の基礎(EoPL)プログラミング言語コース向けの本
参照
- コンパイラ:原則、テクニック、ツール -ドラゴンブックとしても知られる
参考文献
- ^レイモンド、エリック・S.、スティール、ガイ (1991). 『新ハッカー辞典』 . インターネットアーカイブ. マサチューセッツ州ケンブリッジ: MIT 出版. ISBN 978-0-262-68069-1。
- ^ハーヴェイ、B(2011)、「なぜSICPが重要なのか?」 MIT創立150周年記念、ボストン・グローブ。
- ^コンピュータプログラムの構造と解釈:JavaScript版。MIT Press。2022年。ISBN 9780262543231。
- ^ "SICP" . MIT Press. 2017年12月26日時点のオリジナルよりアーカイブ。2007年11月11日閲覧。。
- ^ 「電気工学とコンピュータサイエンス; 6.001 コンピュータプログラムの構造と解釈」 . OpenCourseWare . MIT. 2005年春. 2020年6月21日閲覧。
- ^ Guy, Donald, "The End of an Era", MIT Admissions (blog comment), archived from the original on 2018-08-21 , retrieved 2008-08-05 ,
Sussman教授と電話で話しました…教授は実はここ10年、6.001の置き換えを試みてきたと言っていました(どこかで読んだのですが、Abelson教授もその動きの背後にいたそうです)。もはや、この分野の入門書として、原則を理解することは必須ではありません。教授は6.001は時代遅れだと考えているのです。
- ^ 「SICPを使用している大学」 MIT Press. 2022年4月23日時点のオリジナルよりアーカイブ。 2022年3月30日閲覧。
- ^ Kilov, Haim (1986年11月). Byte Magazine 第11巻 第12号: 知識表現. p. 70.
- ^ Wadler, P (1987-03-01). 「アベルソンとサスマン批判、あるいは計算することが策略よりも優れている理由」 . ACM SIGPLAN Notices . 22 (3): 83– 94. doi : 10.1145/24697.24706 . ISSN 0362-1340 .