電腦程序的構造和解釋, 2/e (典藏版) (Structure and Interpretation of Computer Programs, 2/e)

[美] 哈羅德·阿貝爾森(Harold Abelson)傑拉爾德·傑伊·薩斯曼(Gerald Jay Sussman) 朱莉·薩斯曼(Julie Sussman)著

買這商品的人也買了...

商品描述

本書從1980年開始就作為美國麻省理工學院計算機科學專業的入門課程教材之一,從理論上講解計算機程序的創建、執行和研究。主要內容包括:構造過程抽象,構造數據抽象,模塊化、對象和狀態,元語言抽象.寄存器機器裏的計算等。 本書描述生動有趣,分析清晰透徹,是計算機專業學生入門必讀教材,也是計算機專業人士不可或缺的參考讀物。

作者簡介

哈羅德·阿貝爾森(Harold Abelson)是MIT 1992年度MacVicar Faculty Fellow。在MIT電子工程和計算機科學系工作,得到過重要的計算機科學教育獎——IEEE計算機學會的Booth獎。

目錄大綱

出版者的話

第2版前言
第1版前言
致謝
第1章 構造過程抽象
1.1 程序設計的基本元素
1.1.1 表達式
1.1.2 命名和環境
1.1.3 組合式的求值
1.1.4 覆合過程
1.1.5 過程應用的代換模型
1.1.6 條件表達式和謂詞
1.1.7 實例:采用牛頓法求平方根
1.1.8 過程作為黑箱抽象
1.2 過程及其產生的計算
1.2.1 線性的遞歸和疊代
1.2.2 樹形遞歸
1.2.3 增長的階
1.2.4 求冪
1.2.5 最大公約數
1.2.6 實例:素數檢測
1.3 用高階函數做抽象
1.3.1 過程作為參數
1.3.2 用lambda構造過程
1.3.3 過程作為一般性的方法
1.3.4 過程作為返回值
第2章 構造數據抽象
2.1 數據抽象導引
2.1.1 實例:有理數的算術運算
2.1.2 抽象屏障
2.1.3 數據意味著什麼
2.1.4 擴展練習:區間算術
2.2 層次性數據和閉包性質
2.2.1 序列的表示
2.2.2 層次性結構
2.2.3 序列作為一種約定的界面
2.2.4 實例:一個圖形語言
2.3 符號數據
2.3.1 引號
2.3.2 實例:符號求導
2.3.3 實例:集合的表示
2.3.4 實例:Huffman編碼樹
2.4 抽象數據的多重表示
2.4.1 覆數的表示
2.4.2 帶標誌數據
2.4.3 數據導向的程序設計和可加性
2.5 帶有通用型操作的系統
2.5.1 通用型算術運算
2.5.2 不同類型數據的組合
2.5.3 實例:符號代數
第3章 模塊化、對象和狀態
3.1 賦值和局部狀態
3.1.1 局部狀態變量
3.1.2 引進賦值帶來的利益
3.1.3 引進賦值的代價
3.2 求值的環境模型
3.2.1 求值規則
3.2.2 簡單過程的應用
3.2.3 將框架看作局部狀態的展臺
3.2.4 內部定義
3.3 用變動數據做模擬
3.3.1 變動的表結構
3.3.2 隊列的表示
3.3.3 表格的表示
3.3.4 數字電路的模擬器
3.3.5 約束的傳播
3.4 並發:時間是一個本質問題
3.4.1 並發系統中時間的性質
3.4.2 控制並發的機制
3.5 流
3.5.1 流作為延時的表
3.5.2 無窮流
3.5.3 流計算模式的使用
3.5.4 流和延時求值
3.5.5 函數式程序的模塊化和對象的模塊化
第4章 元語言抽象
4.1 元循環求值器
4.1.1 求值器的內核
4.1.2 表達式的表示
4.1.3 求值器數據結構
4.1.4 作為程序運行求值器
4.1.5 將數據作為程序
4.1.6 內部定義
4.1.7 將語法分析與執行分離
4.2 Scheme的變形—惰性求值
4.2.1 正則序和應用序
4.2.2 一個采用惰性求值的解釋器
4.2.3 將流作為惰性的表
4.3 Scheme的變形—非確定性計算
4.3.1 amb和搜索
4.3.2 非確定性程序的實例
4.3.3 實現amb求值器
4.4 邏輯程序設計
4.4.1 演繹信息檢索
4.4.2 查詢系統如何工作
4.4.3 邏輯程序設計是數理邏輯嗎
4.4.4 查詢系統的實現
第5章 寄存器機器裏的計算
5.1 寄存器機器的設計
5.1.1 一種描述寄存器機器的語言
5.1.2 機器設計的抽象
5.1.3 子程序
5.1.4 采用堆棧實現遞歸
5.1.5 指令總結
5.2 一個寄存器機器模擬器
5.2.1 機器模型
5.2.2 匯編程序
5.2.3 為指令生成執行過程
5.2.4 監視機器執行
5.3 存儲分配和廢料收集
5.3.1 將存儲看作向量
5.3.2 維持一種無窮存儲的假象
5.4 顯式控制的求值器
5.4.1 顯式控制求值器的內核
5.4.2 序列的求值和尾遞歸
5.4.3 條件、賦值和定義
5.4.4 求值器的運行
5.5 編譯
5.5.1 編譯器的結構
5.5.2 表達式的編譯
5.5.3 組合式的編譯
5.5.4 指令序列的組合
5.5.5 編譯代碼的實例
5.5.6 詞法地址
5.5.7 編譯代碼與求值器的互連
參考文獻
練習表
索引