注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計其他編程語言/工具編譯程序設計藝術理論與實踐

編譯程序設計藝術理論與實踐

編譯程序設計藝術理論與實踐

定 價:¥55.00

作 者: (美)皮特曼(Pittman,T.),皮特斯(Peters,J.) 著
出版社: 機械工業(yè)出版社
叢編項: 計算機科學叢書
標 簽: 程序設計

購買這本書可以去


ISBN: 9787111288107 出版時間: 2010-01-01 包裝: 平裝
開本: 16開 頁數: 341 字數:  

內容簡介

  《編譯程序設計藝術理論與實踐》詳細介紹了編譯程序設計中的詞法分析(掃描程序)、語法分析(分析程序)、語義分析(約束程序)、中間代碼優(yōu)化以及代碼生成等內容。作為頗受好評的編譯原理優(yōu)秀入門教材,《編譯程序設計藝術理論與實踐》的最大特色是在全書貫穿了一種基于文法的指導思路:在語法分析階段,該書遵循了一般教材采用的上下文無關文法;在語義分析階段,采用以上下文無關文法為基礎的屬性文法;而在代碼優(yōu)化和代碼生成階段,則采用了變換屬性文法。書中最后還給出變換屬性文法的一種自編譯實現。此外,《編譯程序設計藝術理論與實踐》還探討了面向不同計算機體系結構的代碼生成技術以及非過程式語言的編譯問題。《編譯程序設計藝術理論與實踐》適合作為高等院校計算機科學與技術、軟件工程以及相關專業(yè)編譯原理課程的教學參考書,同時也可供計算機語言及其處理技術愛好者參考。

作者簡介

暫缺《編譯程序設計藝術理論與實踐》作者簡介

圖書目錄

出版者的話
譯者序
前言
第1章 編譯程序理論概述
1.1 簡介
1.2 語言與翻譯程序
1.3 文法的作用
1.4 若干例子
1.5 編譯程序的結構
1.5.1 詞法分析
1.5.2 字符串表
1.5.3 語法分析
1.5.4 約束
1.5.5 符號表
1.5.6 代碼生成
1.5.7 優(yōu)化
符號
縮略詞
關鍵術語
練習
復習小測驗
編譯程序實驗項目
進一步閱讀
第2章 文法:喬姆斯基層次
2.1 簡介
2.2 文法
2.2.1 字母表與串
2.2.2 非終結符與產生式
2.2.3 若干文法例子
2.3 喬姆斯基層次
2.4 文法及其機器
2.4.1 圖靈機
2.4.2 線性有界自動機
2.4.3 下推自動機
2.4.4 刪除空產生式
2.4.5 比較上下文無關文法和上下文敏感文法
2.4.6 有窮狀態(tài)自動機
2.5 空串與空語言
2.6 規(guī)范推導
2.7 二義性
2.8 文法思維的藝術
2.8.1 有窮狀態(tài)自動機的局限性
2.8.2 上下文無關文法的計數
2.8.3 對上下文敏感
小結
符號
縮略詞
關鍵術語
練習
復習小測驗
編譯程序實驗項目
進一步閱讀
第3章 掃描程序和正則語言
3.1 詞法分析簡介
3.2 正則表達式
3.2.1 正則表達式代數
3.2.2 正則表達式的形式化特性
3.3 文法與正則表達式的轉換
3.4 有窮狀態(tài)自動機
3.5 不確定的有窮狀態(tài)自動機
3.6 將文法轉換為自動機
3.7 自動機的轉換
3.7.1 刪除空環(huán)路
3.7.2 刪除空變遷
3.7.3 自動機的確定化
3.7.4 自動機的約簡
3.8 將自動機轉換為文法
3.9 左線性文法
3.10 在計算機上實現有窮狀態(tài)自動機
3.11 掃描程序的特殊實現問題
3.11.1 輸入字母表的大小
3.11.2 掃描程序自動機中的停機狀態(tài)
3.11.3 過濾空格與注釋
3.11.4 單詞的輸出
3.12 字符串表的實現
3.12.1 基于線性查找的實現
3.12.2 基于散列表的實現
3.12.3 基于查找樹的實現
3.12.4 不同實現的性能比較
3.13 保留字
3.14 使用掃描程序生成工具
小結
符號
縮略詞
關鍵術語
練習
復習小測驗
編譯程序實驗項目
進一步閱讀
第4章 分析程序和上下文無關語言
4.1 簡介
4.2 下推自動機
4.2.1 停機條件的等價性
4.2.2 根據上下文無關文法構造下推自動機
4.3 LL(k)條件
4.3.1 First和和Follow集
4.3.2 選擇集
4.4 左遞歸
4.5 公共左因子
4.6 為上下文無關文法擴展正則表達式運算符
4.7 使用分析程序生成工具
4.7.1 使用TAG編譯程序
4.7.2 使用YACC
4.8 遞歸下降分析程序
4.9 遞歸下降分析程序作為下推自動機
小結
縮略詞
關鍵術語
練習
復習小測驗
編譯程序實驗項目
進一步閱讀
第5章 語義分析與屬性文法
5.1 簡介
5.2 屬性文法
5.2.1 繼承屬性和綜合屬性
5.2.2 屬性值流
5.3 非終結符作為屬性求值函數
5.4 符號表作為屬性
5.5 Micro-Modula的屬性文法
5.6 在TAG編譯程序中使用屬性
5.7 作用域與標識符類別
5.7.1 標識符作用域的文法
5.7.2 標識符作用域例子分析
5.7.3 符號表的其他問題
5.8 在遞歸下降中實現屬性
5.9 實現符號表
小結
符號
關鍵術語
練習
復習小測驗
編譯程序實驗項目
進一步閱讀
第6章 語法制導代碼生成
6.1 簡介
6.2 計算機硬件體系結構
6.3 棧機器的表達式求值
6.4 IttyBitty棧機器
6.5 帶屬性的代碼生成
6.5.1 運算符優(yōu)先級與結合性質
6.5.2 程序結構的語義
6.5.3 向前分支問題
6.6 過程和函數的代碼生成
6.7 塊結構的棧幀管理
6.7.1 幀與幀指針
6.7.2 靜態(tài)鏈與動態(tài)鏈
6.7.3 幀指針的Display向量
6.8 其他數據類型
6.9 結構化數據類型
6.9.1 指針類型
6.9.2 記錄結構
6.9.3 數組的語義
6.10 其他數據結構
6.11 Itty Bitty棧機器的輸入和輸出
6.12 語法制導語義的局限
6.13 手工編寫編譯程序的代碼生成
6.14 語法制導語義的應用
6.14.1 TinyBASIC解釋程序
6.14.2 Micro-Modula美化打印工具
小結
關鍵術語
練習
復習小測驗
編譯程序實驗項目
進一步閱讀
第7章 自底向上分析程序的自動化
設計
7.1 簡介
7.2 LR(k)分析程序
7.2.1 構造LR(k)狀態(tài)機
7.2.2 一個LR(2)分析程序
7.2.3 歸約與移進操作
7.3 沖突
7.4 例子:文法G2的沖突解析
7.5 在棧中保存狀態(tài)
7.6 其他LR(k)分析程序:SLR
7.7 LALR(k)分析程序
7.8 自底向上分析程序的實現
7.9 出錯恢復
7.10 LR分析程序中的屬性求值
小結
關鍵術語
練習
復習小測驗
編譯程序實驗項目
進一步閱讀
第8章 變換屬性文法
8.1 簡介
8.2 程序的樹表示
8.3 樹變換文法
8.3.1 非生成的文法
8.3.2 一個TAG例子
8.3.3 求值次序
8.3.4 信息流與存儲
8.3.5 帶樹值的屬性
8.3.6 不確定的分析
8.4.組合串文法與樹文法
8.5 TAG中的類型檢查
8.6 基于變換的代碼優(yōu)化
8.6.1 數據流分析
8.6.2 數據流分析中使用屬性文法
8.7 中間代碼樹表示的替代方案
8.7.1 四元式的數據流
8.7.2 循環(huán)的數據流分析
8.8 實用優(yōu)化變換綜述
8.8.1 模擬執(zhí)行優(yōu)化的類別
8.8.2 常量折疊分析
8.8.3 使用值編號檢測公共子表達式
8.8.4 左移動提升
8.8.5 右移動提升
8.8.6 無用代碼以及其他從右到左的數據流分析
8.8.7 數學等式與代碼選擇
8.8.8 循環(huán)結構分析
8.9 實現抽象語法樹
8.10 實現TAG驅動的樹變換
小結
符號
縮略詞
關鍵術語
練習
復習小測驗
編譯程序實驗項目
進一步閱讀
第9章 代碼生成與優(yōu)化
9.1 簡介
9.2 循環(huán)優(yōu)化
9.2.1 循環(huán)的范圍分析
9.2.2 歸納變量
9.2.3 循環(huán)展開
9.3 寄存器與內存分配
9.3.1 寄存器分配算法
9.3.2 表達式中的寄存器分配
9.3.3 更好的寄存器分配數據流分析
9.3.4 循環(huán)的寄存器分配
9.3.5 尋址模式
9.3.6 分支尋址選擇
9.3.7 分支鏈
9.4 代碼生成的復雜性
9.4.1 指令選擇
9.4.2 強度削弱
9.5 專用指令
9.5.1 RISC和流水線處理器調度
9.5.2 向量處理器
9.6 代碼優(yōu)化的變形
9.6.1 代碼優(yōu)化的分類
9.6.2 窺孔優(yōu)化
小結
縮略詞
關鍵術語
練習
復習小測驗
編譯程序實驗項目
進一步閱讀
第10章 非過程式語言
10.1 簡介
10.2 應用式語言的編譯
10.2.1 Lisp語言的一些概念
10.2.2 尾遞歸
10.2.3 實現一個應用式語言的編譯程序
10.3 變換屬性文法的編譯程序
10.3.1 TAG編譯程序的組成部分
10.3.2 文法中的迭代運算符
10.3.3 向用戶報告語法錯誤
10.3.4 自動構造掃描程序
10.3.5 TAG編譯程序的語法分析
10.3.6 樹變換
10.3.7 語法錯誤停機
小結
關鍵術語
練習
復習小測驗
進一步閱讀
附錄A Itty Bitty Modula語法圖
附錄B TAG編譯程序的TAG
附錄C IttyBitty棧機器的指令集
附錄D 四種計算機的代碼生成表

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.stefanvlieger.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號