『コンピュータプログラムの構造と解釈』( SICP)は、マサチューセッツ工科大学のハロルド・アベルソン教授とジェラルド・ジェイ・サスマン教授、そしてジュリー・サスマン教授によるコンピュータ科学の教科書です。ハッカー文化では「魔法の本」として知られています。 [ 1 ]再帰、抽象化、モジュール性、プログラミング言語の設計と実装など、コンピュータプログラミングの基本原理を教えています。
MIT Pressは1984年に初版を、1996年に第2版を出版した。1984年から2007年まで、 MITのコンピュータサイエンス入門コースの教科書として使用された。SICPは、特定の問題を解決するための一般的なパターンを発見し、それらのパターンを利用するソフトウェアシステムを構築することに焦点を当てている。[ 2 ]
MIT Pressは2022年に本書のJavaScript版を出版した。 [ 3 ]
本書は、 Lispの方言であるSchemeを用いてコンピュータサイエンスの概念を解説している。また、仮想レジスタマシンとアセンブラを用いてLispインタプリタとコンパイラを実装している。
本書で取り上げられているテーマは以下のとおりです。
この本には、ユーモラスな名前の架空のキャラクターが何人か登場する。
本書はクリエイティブ・コモンズ表示-継承4.0国際ライセンス(CC BY-SA 4.0)の下でライセンスされています。[ 4 ]
この本は、MITのかつての入門プログラミングコース6.001 [ 5 ]の教科書として、1984年秋から最後の学期である2007年秋まで使用されました[ 6 ]。他の学校でもこの本がコースの教科書として使用されました[ 7 ] 。
Byte誌は1986年にSICPを「自分の職業に真に興味を持っているプログラマー向け」として推薦した。同誌は、この本は読みやすいものではないが、経験豊富なプログラマーに古いトピックと新しいトピックの両方を紹介するだろうと述べた。 [ 8 ]
Philip Wadlerによる学部生向け教科書としての SICP のレビューでは、コンピュータサイエンスの入門言語としての Scheme 言語の弱点が指摘されている。[ 9 ] Wadler は特に、パターンマッチングの欠如により等式推論が不明瞭になり、証明の指導が難しくなること、Scheme に代数的データ型がないこと、コードとデータの表現の両方でconsペアに過度に依存しているため、初心者を混乱させる可能性があること、標準的な評価戦略として遅延評価ではなく厳密評価を選択していることを批判した。
SICPはコンピュータ科学教育に大きな影響を与えており、後世の多くの書籍がそのスタイルに影響を受けています。
サスマン教授と電話で話しました... 彼は、実際には過去10年間6.001を置き換えようとしていたと言っていました(そして、アベルソン教授もその動きの背後にいたとどこかで読みました)。原理を理解することは、もはやその主題の入門には必須ではありません。彼は6.001を時代遅れだと考えています。