編譯原理與技術

出版時間:2010-8  出版社:高等教育出版社  作者:張昱,陳意云 著  頁數:283  

前言

  編譯原理和技術對高等學校計算機專業(yè)的學生和軟件工程技術人員來說是重要的基礎知識之一。本書是作者所編寫的2009年度普通高等教育精品教材《編譯原理》(第2版)(高等教育出版社2008年出版)的一個精簡版本,面向少學時編譯原理課程的教學需求。作者認為,對于普通高等學校的學生來說,學習編譯技術的主要目的是掌握基本的編譯技術,用以提高學習編程語言及在軟件開發(fā)中應用編程語言的能力,包括:  (1)提高學習、理解和使用編程語言的能力。 ?。?)提高程序排錯的能力,即快速理解、定位和解決在程序開發(fā)與程序運行中遇到的問題的能力。 ?。?)提高編寫高質量代碼的能力?! 』谠撚^點,對原書的精簡主要體現在下面幾個方面:  (1)忽略對各種LR分析表構造算法的把握,強調對各種語法分析方法的理解。  (2)刪除類型系統(tǒng)形式描述方法的介紹,保留體現類型系統(tǒng)在編程語言中重要地位的章節(jié)?! 。?)壓縮語法制導翻譯的理論介紹,加強積累翻譯方案設計技巧的例題和習題?! 。?)淡化代碼優(yōu)化的數據流分析和控制流分析技術,用實例體現各種優(yōu)化能達到的效果?! 。?)取消函數式語言編譯和無用單元收集算法等內容,增加理論聯系實際的習題。 ?。?)附錄中補充了用c語言寫的PL,/0語言編譯器(編譯成中間代碼)和中間語言解釋器,并給出基于PL/O語言的課程實踐選題?! 〈送?,在學時數有限時,可以略去帶星號的章節(jié)內容?! ”緯哂腥缦绿攸c: ?。?)強調對編譯原理和技術的宏觀理解和全局把握,而不把讀者的注意力引導到理論和算法上。

內容概要

  《編譯原理與技術》介紹基本的編譯原理與編譯技術,是2009年度普通高等教育精品教材《編譯原理》(第2版)的精簡版?!毒幾g原理與技術》主要內容包括詞法分析、語法分析、類型檢查、運行時存儲空間的組織和管理、中間代碼生成、代碼生成和代碼優(yōu)化、編譯系統(tǒng)和運行系統(tǒng)、面向對象語言的編譯等?!毒幾g原理與技術》取材廣泛、新穎,圖文并茂;強調對編譯技術的理解,淡化對相關理論的學習;強調對各種方法的把握,淡化對各個算法的掌握。  《編譯原理與技術》可作為高等學校計算機科學及相關專業(yè)的少學時編譯原理課程教材,也可供計算機軟件工程技術人員參考使用。

書籍目錄

第1章 引論1.1 編譯器概述1.1.1 詞法分析1.1.2 語法分析1.1.3 語義分析1.1.4 中間代碼生成1.1.5 代碼優(yōu)化1.1.6 代碼生成1.1.7 符號表管理1.1.8 階段的分組1.1.9 解釋器1.2 編譯器技術的應用1.2.1 高級語言的實現1.2.2 針對計算機體系結構的優(yōu)化1.2.3 新計算機體系結構的設計1.2.4 程序翻譯1.2.5 提高軟件開發(fā)效率的工具習題第2章 詞法分析2.1 詞法記號及屬性2.1.1 詞法記號、模式、詞法單元2.1.2 詞法記號的屬性2.1.3 詞法錯誤2.2 詞法記號的描述與識別2.2.1 串和語言2.2.2 正規(guī)式2.2.3 正規(guī)定義2.2.4 狀態(tài)轉換圖2.3 有限自動機2.3.1 不確定的有限自動機2.3.2 確定的有限自動機2.3.3 NFA到DFA的變換2.3.4 DFA的化簡2.4 從正規(guī)式到有限自動機2.5 詞法分析器的生成器習題第3章 語法分析3.1 上下文無關文法3.1.1 上下文無關文法的定義3.1.2 推導3.1.3 分析樹3.1.4 二義性3.2 語言和文法3.2.1 正規(guī)式和上下文無關文法的比較3.2.2 分離詞法分析器的理由3.2.3 驗證文法產生的語言3.2.4 適當的表達式文法3.2.5 消除二義性3.2.6 消除左遞歸3.2.7 提左因子3.3 自上而下分析3.3.1 自上而下分析的一般方法3.3.2 LL(1)文法3.3.3 遞歸下降的預測分析3.3.4 非遞歸的預測分析3.3.5 構造預測分析表3.3.6 預測分析的錯誤恢復3.4 自下而上分析3.4.1 歸約3.4.2 句柄3.4.3 用棧實現移進一歸約分析3.4.4 移進一歸約分析的沖突3.5 LR分析器3.5.1 構造SLR分析表3.5.2 LR分析算法3.5.3 其他LR分析表構造概述3.5.4 非二義且非LR的上下文無關文法3.6 語法分析器的生成器3.6.1 分析器的生成器Yace3.6.2 用Yacc處理二義文法3.6.3 Yace的錯誤恢復習題第4章 類型檢查4.1 語法制導的翻譯4.1.1 翻譯方案4.1.2 語法樹4.1.3 構造語法樹的翻譯方案4.1.4 翻譯方案中屬性的自下而上計算4.1.5 設計翻譯方案的一些技巧4.2 類型在編程語言中的作用4.2.1 執(zhí)行錯誤和安全語言4.2.2 類型化語言和類型系統(tǒng)4.2.3 類型化語言的優(yōu)點4.3 一個簡單類型檢查器的規(guī)范4.3.1 一個簡單的語言4.3.2 類型表達式4.3.3 類型檢查4.3.4 類型轉換4.4 類型表達式的等價4.4.1 類型表達式的結構等價4.4.2 類型表達式的名字等價4.4.3 記錄類型4.4.4 類型表示中的環(huán)習題第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.2 ,5懸空引用5.3 非局部名字的訪問5.3.1 無過程嵌套的靜態(tài)作用域5.3.2 有過程嵌套的靜態(tài)作用域5.4 參數傳遞5.4.1 值調用5.4.2 引用調用5.4.3 換名調用5.5 堆管理5.5.1 內存管理器5.5.2 計算機內存分層5.5.3 程序局部性5.5.4 手工回收請求習題第6章 中間代碼生成6.1 中間語言6.1.1 后綴表示6.1.2 圖形表示6.1.3 三地址代碼6.1.4 靜態(tài)單賦值形式6.2 聲明語句6.2.1 過程中的聲明6.2.2 作用域信息的保存6.2.3 記錄的域名6.3 賦值語句6.3.1 符號表中的名字6.3.2 數組元素的地址計算6.3.3 數組元素地址計算的翻譯方案6.3.4 類型轉換6.4 布爾表達式和控制流語句6.4.1 布爾表達式6.4.2 控制流語句的中間代碼結構6.4.3 布爾表達式的回填6.4.4 控制流語句的翻譯6.4.5 開關語句的翻譯6.4.6 過程調用的翻譯習題第7章 代碼生成和代碼優(yōu)化7.1 代碼生成器設計中的問題7.1.1 目標程序7.1.2 指令選擇7.1.3 寄存器分配7.1.4.計算次序選擇7.2 目標語言7.2.1 目標機器的指令集7.2.2 指令代價7.3 基本塊和流圖7.3.1 基本塊7.3.2 基本塊的優(yōu)化7.3.3 流圖7.3.4 下次引用信息7.4 一個簡單的代碼生成器7.4.1 寄存器描述和地址描述7.4..2 代碼生成算法7.4.3 寄存器選擇函數7.4.4 為變址和指針語句產生代碼7.4.5 條件語句7.5 代碼優(yōu)化概述7.5.1 ‘優(yōu)化的主要源頭7.5.2 一個實例7.5.3 公共子表達式刪除7.5.4 復寫傳播7.5.5 死代碼刪除7.5.6 代碼外提7.5.7 強度削弱和歸納變量刪除習題第8章 編譯系統(tǒng)和運行系統(tǒng)8.1 C語言的編譯系統(tǒng)8.1.1 預處理器8.1.2 匯編器8.1.3 連接器8.1.4.目標文件的格式8.1.5 符號解析8.1.6 靜態(tài)庫8.1.7 可執(zhí)行目標文件及裝入8.1.8 動態(tài)連接8.1.9 處理目標文件的一些工具8.2 Java語言的運行系統(tǒng)8.2.1 Java虛擬機語言簡介8.2.2 Java虛擬機8.2.3 即時編譯器習題第9章 面向對象語言的編譯9.1 面向對象語言的概念9.1.1 對象和對象類9.1.2 繼承9.1.3 信息封裝9.2 方法的編譯9.3 繼承的編譯方案9.3.1 單一繼承的編譯方案9.3.2 多重繼承的編譯方案習題附錄附錄1 PL/0語言及其實現附錄2 基于PL/0語言的課程實踐選題參考文獻

章節(jié)摘錄

  圖2.6所示的NFA在狀態(tài)0,面對輸入。時有兩種轉換,它可以到達狀態(tài)0或1。類似地,圖2.7所示的NFA在狀態(tài)0,不接受任何輸入(即面對8)也有兩種轉換。有些場合,還會出現既可以根據e也可以根據一個實際輸入符號進行轉換的情況,這同樣也會引起二義性。這種轉換函數多值的情況,使得很難用計算機程序模擬NFA?!敖邮堋钡亩x僅僅是說必須存在從開始狀態(tài)到某個接受狀態(tài)的一條路徑,該路徑的標記正好拼成輸入串。這樣,在找到一條接受路徑或確定沒有這樣的路徑前,可能不得不同時考慮所有路徑。  下面給出一個算法,它從NFA構造識別同樣語言的DFA,這個算法通常稱為子集構造法。一個和它密切相關的算法是第3章構造LR分析器的基礎?! ∈紫雀攀鲎蛹瘶嬙旆ǖ乃枷?。在NFA的轉換表里,每個條目是一個狀態(tài)集;在DFA的轉換表中,每個條目只有一個狀態(tài)。

編輯推薦

  《編譯原理與技術》是2009年度普通高等教育精品教材《編譯原理》(第2版)的精簡版。針對少學時編譯原理課程教學而編寫?!  毒幾g原理與技術》介紹了基本的編譯原理和編譯技術,內容包括詞法分析、語法分析、語義分析、運行時存儲空間的組織和管理、中間代碼生成、代碼生成和代碼優(yōu)化,還有面向對象語言的編譯、編譯系統(tǒng)和運行系統(tǒng)等,使讀者掌握基本的編譯原理與技術,以提高學習編程語言的能力,以及在軟件開發(fā)中應用編程語言的能力?!  毒幾g原理與技術》取材廣泛新穎,圖文并茂;強調對編譯技術的理解,淡化對相關理論的學習;強調對各種方法的把握,淡化對各個算法的掌握,鼓勵讀者運用所學的知識去分析和解決實際問題。

圖書封面

評論、評分、閱讀與下載


    編譯原理與技術 PDF格式下載


用戶評論 (總計0條)

 
 

 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網 手機版

京ICP備13047387號-7