程式設計語言與編譯:語言的設計和實現

程式設計語言與編譯:語言的設計和實現

《程式設計語言與編譯:語言的設計和實現》為“普通高等教育‘十一五’國家級規劃教材”,是一本計算機專業的寬口徑教材,新版覆蓋CC2001和CCC2002教程中,除自動機外程式語言(PL)模組的全部知識點。內容涉及語言及其編譯系統的設計要素、設計思想、設計方法、設計技術和設計風格等知識,全書分為上、下篇。上篇,程式設計語言的設計包括:緒論、數據類型、控制結構、程式語言設計、非過程式程式設計語言和形式語義學簡介;下篇,程式設計語言的實現(編譯)包括:編譯概述、詞法分析、自上而下的語法分析、自下而上的語法分析、語義分析和中間代碼生成、代碼最佳化和目標代碼生成、運行時存儲空間的組織。

基本介紹

  • 書名:程式設計語言與編譯:語言的設計和實現
  • 頁數:324頁
  • 出版社:電子工業出版社
  • 裝幀:平裝
圖書信息,內容簡介,目錄,

圖書信息

第3版 (2009年1月1日)
叢書名: 普通高等教育“十一五”國家級規劃教材,高等學校規劃教材
正文語種: 簡體中文
開本: 16
ISBN: 9787121081040
條形碼: 9787121081040
尺寸: 25.8 x 18.2 x 1.4 cm
重量: 540 g

內容簡介

《程式設計語言與編譯:語言的設計和實現(第3版)》的學習目標是,使讀者掌握設計和實現一個程式設計語言的基本思想和方法,具有分析、鑑賞、評價、選擇、學習、設計和實現一個語言的基本能力。《程式設計語言與編譯:語言的設計和實現(第3版)》力求簡明、通俗,注重可讀性,是大學計算機科學和軟體工程等專業高級程式設計語言概論及編譯技術課程教材,也是軟體開發人員的學習參考書。

目錄

上篇 程式設計語言的設計
第1章 緒論
1.1 引言
1.2 強制式語言
1.2.1 程式設計語言的分類
1.2.2 馮·諾依曼體系結構
1.2.3 綁定和綁定時間
1.2.4 變數
1.2.5 虛擬機
1.3 程式單元
1.4 程式設計語言發展簡介
1.4.1 早期的高級語言
1.4.2 早期語言的發展階段
1.4.3 概念的集成階段
1.4.4 再一次突破
1.4.5 大量的探索
1.4.6 Ada 語言
1.4.7 第四代語言
1.4.8 網路時代的語言
1.4.9 新一代程式設計語言
1.4.10 面向未來的漢語程式設計語言
1.4.11 總結
習題1
第2章 數據類型
2.1 引言
2.2 內部類型
2.3 用戶定義類型
2.3.1 笛卡兒積
2.3.2 有限映像
2.3.3 序列
2.3.4 遞歸
2.3.5 判定或
2.3.6 冪集
2.4 Pascal語言數據類型結構
2.4.1 非結構類型
2.4.2 聚合構造
2.4.3 指針
2.5 Ada語言數據類型結構
2.5.1 標量類型
2.5.2 組合類型
2.6 C語言數據類型結構
2.6.1 非結構類型
2.6.2 聚合構造
2.6.3 指針
2.6.4 空類型
2.7 Java 語言的數據類型
2.7.1 內部類型
2.7.2 用戶定義類型
2.8 抽象數據類型
2.8.1 SIMULA 67 語言的類機制
2.8.2 CLU語言的抽象數據類型
2.8.3 Ada語言的抽象數據類型
2.8.4 Modula 2語言的抽象數據類型
2.8.5 C++語言的抽象數據類型
2.8.6 Java抽象數據類型
2.9 類型檢查
2.10 類型轉換
2.11 類型等價
2.12 實現模型
2.12.1 內部類型和用戶定義的非結構類型實現模型
2.12.2 結構類型實現模型
習題2
第3章 控制結構
3.1 引言
3.2 語句級控制結構
3.2.1 順序結構
3.2.2 選擇結構
3.2.3 循環結構
3.2.4 語句級控制結構分析
3.2.5 用戶定義控制結構
3.3 單元級控制結構
3.3.1 顯式調用從屬單元
3.3.2 隱式調用單元——異常處理
3.3.3 SIMULA 67語言協同程式
3.3.4 並發單元
習題3
第4章 程式語言的設計
4.1 語言的定義
4.1.1 語法
4.1.2 語義
4.2 文法
4.2.1 文法的定義
4.2.2 文法的分類
4.2.3 文法產生的語言
4.2.4 語法樹
4.3 語言的設計
4.3.1 表達式的設計
4.3.2 語句的設計
4.3.3 程式單元的設計
4.3.4 程式的設計
4.4 語言設計實例
4.5 一些設計準則
習題4
第5章 非過程式程式設計語言
5.1 引言
5.2 函式式程式設計語言
5.2.1 函式
5.2.2 數學函式與程式設計語言函式
5.2.3 一種簡單的純函式式語言
5.2.4 LISP語言概述
5.2.5 APL語言概述
5.2.6 作用式語言和命令式語言的比較
5.3 邏輯程式設計語言
5.3.1 邏輯程式設計
5.3.2 Prolog語言概述
5.3.3 邏輯程式設計展望
5.4 面向對象程式設計語言
5.4.1 面向對象的基本概念
5.4.2 Smalltalk語言概述
5.4.3 對面向對象語言的評價
5.5 小結
習題5
第6章 形式語義學簡介
6.1 引言
6.2 形式語義學分類
6.3 公理語義學簡介
6.4 指稱語義學簡介
習題6
下篇 程式設計語言的實現(編譯)
第7章 編譯概述
7.1 引言
7.2 翻譯和編譯
7.3 解釋
7.4 編譯步驟
習題7
第8章 詞法分析
8.1 詞法分析概述
8.2 單詞符號的類別
8.3 詞法分析器的輸出形式
8.4 詞法分析器的設計
8.5 符號表
8.5.1 符號表的組織
8.5.2 常用的符號表結構
習題8
第9章 自上而下的語法分析
9.1 引言
9.2 回溯分析法
9.2.1 回溯的原因
9.2.2 提取公共左因子
9.2.3 消除左遞歸
9.3 遞歸下降分析法
9.3.1 遞歸下降分析器的構造
9.3.2 擴充的BNF
9.4 預測分析法
9.4.1 預測分析過程
9.4.2 預測分析表的構造
9.4.3 LL(1)文法
9.4.4 非LL(1)文法
習題9
第10章 自下而上的語法分析
10.1 引言
10.1.1 分析樹
10.1.2 規範歸約、短語和句柄
10.2 算符優先分析法
10.2.1 算符優先文法
10.2.2 算符優先分析算法
10.2.3 算符優先關係表的構造
10.3 LR分析法
10.3.1 LR分析過程
10.3.2 活前綴
10.3.3 LR(0)項目集規範族
10.3.4 LR(0)分析表的構造
10.3.5 SLR(1)分析表的構造
習題10
第11章 語義分析和中間代碼生成
11.1 語義分析概論
11.1.1 語義分析的任務
11.1.2 語法制導翻譯
11.2 中間代碼
11.3 語義變數和語義函式
11.4 說明語句的翻譯
11.5 賦值語句的翻譯
11.5.1 只含簡單變數的賦值語句的翻譯
11.5.2 含數組元素的賦值語句的翻譯
11.6 控制語句的翻譯
11.6.1 布爾表達式的翻譯
11.6.2 無條件轉移語句的翻譯
11.6.3 條件語句的翻譯
11.6.4 while語句的翻譯
11.6.5 for語句的翻譯
11.6.6 過程調用的翻譯
習題11
第12章 代碼最佳化和目標代碼生成
12.1 局部最佳化
12.1.1 最佳化的定義
12.1.2 基本塊的劃分
12.1.3 程式流圖
12.1.4 基本塊內的最佳化
12.2 全局最佳化
12.2.1 循環的定義
12.2.2 必經結點集
12.2.3 循環的查找
12.2.4 循環的最佳化
12.3 並行最佳化
12.3.1 數據的依賴關係分析
12.3.2 向量化代碼生成
12.3.3 反相關與輸出相關的消除
12.3.4 標量擴張
12.3.5 循環條塊化
12.4 目標代碼生成
12.4.1 一個計算機模型
12.4.2 簡單的代碼生成方法
12.4.3 循環中的暫存器分配
習題12
第13章 運行時存儲空間的組織
13.1 程式的存儲空間
13.1.1 代碼空間
13.1.2 數據空間
13.1.3 活動記錄
13.1.4 變數的存儲分配
13.1.5 存儲分配模式
13.2 靜態分配
13.3 棧式分配
13.3.1 只含半靜態變數的棧式分配
13.3.2 半動態變數的棧式分配
13.3.3 非局部環境
13.3.4 非局部環境的引用
13.4 參數傳遞
13.4.1 數據參數傳遞
13.4.2 子程式參數傳遞
習題13
附錄A 形式語言與自動機簡介
思考題

相關詞條

熱門詞條

聯絡我們