コンピュータプログラムの構造と解釈

コンピュータプログラムの構造と解釈(SICP)
第2版​​の表紙
著者ハロルド・アベルソンジェラルド・ジェイ・サスマン、ジュリー・サスマン
主題コンピュータサイエンス
ジャンル教科書
出版社MITプレス
発行日
1984年(第1版)、1996年(第2版)、2022年(JavaScript版
ページ657
ISBN0-262-51087-1(第2版)
LCクラスQA76.6 .A255 1996
Webサイトmitpress .mit .edu /sicp

『コンピュータプログラムの構造と解釈』 SICP)は、マサチューセッツ工科大学のハロルド・エイブルソン教授、ジェラルド・ジェイ・サスマン教授、そしてジュリー・サスマン教授が共著したコンピュータサイエンスの教科書です。ハッカー文化では「ウィザードブック」として知られています。 [ 1 ]再帰抽象化モジュール化プログラミング言語の設計実装など、コンピュータプログラミングの基本原則を解説しています。

MITプレスは1984年に初版を出版し、1996年に第2版を出版した。1984年から2007年までMITのコンピュータサイエンス入門コースの教科書として使用された。SICPは、特定の問題を解決するための一般的なパターンを発見し、それらのパターンを活用するソフトウェアシステムを構築することに重点を置いている。[ 2 ]

MIT Pressは2022年にこの本のJavaScript版を出版した。 [ 3 ]

コンテンツ

本書では、 Lisp方言であるSchemeを用いてコンピュータサイエンスの概念を解説しています。また、仮想レジスタマシンアセンブラを用いてLispインタプリタコンパイラを実装しています。

本のトピックは次のとおりです。

  1. プログラミングの要素
  2. 手順とそれによって生成されるプロセス
  3. 高階手続きによる抽象化の定式化
  1. データ抽象化入門
  2. 階層データと閉包性
  3. シンボリックデータ
  4. 抽象データの複数の表現
  5. 汎用的な操作を備えたシステム

第3章: モジュール性、オブジェクト状態

  1. 割り当てローカル状態
  2. 環境評価モデル
  3. 可変データによるモデリング
  4. 同時実行:時間は重要
  5. ストリーム

第4章メタ言語的抽象化

  1. メタサーキュラー評価器
  2. Schemeのバリエーション –遅延評価
  3. スキームのバリエーション –非決定性コンピューティング
  4. 論理プログラミング
  1. レジ機の設計
  2. レジ機シミュレータ
  3. ストレージ割り当てガベージコレクション
  4. 明示的制御評価器
  5. コンピレーション

キャラクター

この本には、ユーモラスな名前を持つ架空のキャラクターがいくつか登場します。

ライセンス

この本はクリエイティブ・コモンズ表示-継承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 はコンピュータサイエンスの教育に影響を与えており、その後のいくつかの書籍はそのスタイルに影響を受けています。

参照

参考文献

  1. ^レイモンド、エリック・S.、スティール、ガイ (1991). 『新ハッカー辞典』 . インターネットアーカイブ. マサチューセッツ州ケンブリッジ: MIT 出版. ISBN 978-0-262-68069-1
  2. ^ハーヴェイ、B(2011)、「なぜSICPが重要なのか?」 MIT創立150周年記念ボストン・グローブ
  3. ^コンピュータプログラムの構造と解釈:JavaScript版。MIT Press。2022年。ISBN 9780262543231
  4. ^ "SICP" . MIT Press. 2017年12月26日時点のオリジナルよりアーカイブ2007年11月11日閲覧。
  5. ^ 「電気工学とコンピュータサイエンス; 6.001 コンピュータプログラムの構造と解釈」 . OpenCourseWare . MIT. 2005年春. 2020年6月21日閲覧
  6. ^ 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は時代遅れだと考えているのです。
  7. ^ 「SICPを使用している大学」 MIT Press. 2022年4月23日時点のオリジナルよりアーカイブ。 2022年3月30日閲覧
  8. ^ Kilov, Haim (1986年11月). Byte Magazine 第11巻 第12号: 知識表現. p. 70.
  9. ^ Wadler, P (1987-03-01). 「アベルソンとサスマン批判、あるいは計算することが策略よりも優れている理由」 . ACM SIGPLAN Notices . 22 (3): 83– 94. doi : 10.1145/24697.24706 . ISSN 0362-1340 .