目前的購物車是空的!
此商品參與的優惠活動
商品庫存不足留言
編輯推薦本書為普通高等教育「十一五」*規劃教材、*精品課程教材、*一流本科課程配套教材。
內容簡介《編譯原理(第四版)》主要介紹設計和構造編譯程序的基本原理和方法 內容包括適應高級程序設計語言翻譯的形式語言理論和自動機理論、常用的詞法分析方法、各種經典的語法分析技術、語法制導翻譯方法、存儲組織與管理方法、造查表方法、代碼優化和代碼生成方法、編譯自動化和并行編譯程序,以及詞法分析器生成工具LEX和語法分析器生成工具YACC等。本書特別注重理論與實踐的溝通,基本概念清晰,循序漸進,深入淺出。各章附有難度不一的習題。本書可作為高等院校計算機專業的教材,也可供相關教師、研究生和科技工作者學習和參考。
作者簡介1975年畢業留校籌建武漢大學計算機科學系,1978年晉陞為武漢大學計算機科學系講師,在計算機軟體教研室從事教學和科研工作; 1987年4月任武漢大學計科系副主任;1989年晉陞為計算機科學系副教授; 1993年破格晉陞為計算機科學系教授; 1997年1月任武漢大學計算機學院副院長; 1997年9月任武漢大學計算機學院院長, 1997-2001年兼任軟體工程國家重點實驗室主任; 1999年4月-2001年1月兼任武漢大學校長助理; 1999年評為博士生導師; 2001年1月—2013年3月任(四校合併后)武漢大學計算機學院院長。
目錄第1章引論(1)1 1程序設計語言與翻譯程序(1)1 1 1程序設計語言(1)1 1 2翻譯程序(1)1 2編譯程序的工作過程(2)1 3編譯程序的結構(4)1 4編譯程序的組織方式(5)1 5編譯程序的自展、移植與自動化(6)1 5 1高級語言的自編譯性(6)1 5 2編譯程序的自展技術(6)1 5 3編譯程序的移植(7)1 5 4編譯程序的自動化(7)1 6翻譯程序編寫系統(8)1 7并行編譯程序(9)1 8小結(10)習題一(10)第2章形式語言理論(12)2 1字母表和符號串(12)2 2文法及其分類(13)2 2 1文法(13)2 2 2文法分類(14)2 2 3文法舉例(15)2 3語言和語法樹(16)2 3 1推導和規範推導(16)2 3 2句型、句子和語言(17)2 3 3語法樹(18)2 3 4產生式樹(19)2 4關於文法和語言的幾點說明(20)2 5分析方法簡介(21)2 5 1自上而下分析方法(22)2 5 2確定的自上而下分析方法(23)2 5 3自下而上分析方法(24)2 6小結(25)習題二(26)第3章有窮自動機(28)3 1有窮自動機的形式定義(28)3 1 1狀態轉換表(28)3 1 2狀態轉換圖(29)3 1 3自動機的等價性(29)3 1 4非確定有窮自動機(30)3 2NFA到DFA的轉換(31)3 2 1空移環路的尋找和消除(31)3 2 2消除空移(32)3 2 3確定化——子集法(32)3 2 4確定化——造表法(33)3 2 5εNFA的確定化(35)3 2 6消除不可達狀態(36)3 2 7DFA的化簡(37)3 2 8從化簡后的DFA到程序表示(37)3 3正規表達式與FA(38)3 3 1正規表達式的定義(38)3 3 2正規表達式與FA的對應性(40)3 3 3正規表達式到NFA的轉換(40)3 3 4NFA到正規表達式的轉換(41)3 4DFA在計算機中的表示(42)3 4 1矩陣表示法(42)3 4 2表結構(43)3 5小結(43)習題三(44)第4章詞法分析(46)4 1詞法分析程序與單詞符號(46)4 1 1詞法分析程序(46)4 1 2單詞符號(46)4 2掃描程序的設計(47)4 2 1預處理(47)4 2 2狀態轉換圖(48)4 2 3根據狀態圖設計詞法分析程序(49)4 3標識符的處理(50)4 3 1類型的機內表示(50)4 3 2標識符的語義表示(51)4 3 3符號表(標識符表)(51)4 3 4標識符處理的基本思想(51)4 4設計詞法分析程序的直接方法(52)4 4 1由正規文法設計詞法分析程序(52)4 4 2由正規表達式設計詞法分析程序(53)4 4 3由狀態圖到詞法分析程序的流程圖(54)4 4 4詞法分析程序的自動構造(54)4 5小結(54)習題四(55)第5章自上而下語法分析(56)5 1消除左遞歸方法(56)5 1 1文法的左遞歸性(56)5 1 2用擴展的BNF表示法消除左遞歸(56)5 1 3直接改寫法(57)5 1 4消除左遞歸演算法(58)5 2LL(k)文法(59)5 2 1LL(1)文法的判斷條件(59)5 2 2集合FIRST、FOLLOW與SELECT的構造(59)5 3確定的LL(1)分析程序的構造(61)5 3 1構造分析表M的演算法(61)5 3 2LL(1)分析程序的總控演算法(62)5 4遞歸下降分析程序及其設計(64)5 4 1框圖設計(64)5 4 2程序設計(65)5 5帶回溯的自上而下分析法(66)5 5 1文法在內存中的存放形式(66)5 5 2其他信息的存放(67)5 5 3帶回溯的自上而下分析演算法(67)5 6小結(71)習題五(71)第6章自下而上分析和優先分析方法(74)6 1自下而上分析(74)6 2短語和句柄(74)6 3移進歸約方法(76)6 4有關文法的一些關係(77)6 4 1關係(77)6 4 2布爾矩陣和關係(78)6 4 3Warshall演算法(79)6 4 4關係FIRST與LAST(80)6 5簡單優先分析方法(82)6 5 1優先關係(82)6 5 2簡單優先關係的形式化構造方法(83)6 5 3簡單優先文法及其分析演算法(87)6 5 4簡單優先分析方法的局限性(89)6 6算符優先分析方法(90)6 6 1算符優先文法(90)6 6 2OPG優先關係的構造(90)6 6 3素短語及句型的分析(92)6 6 4算符優先分析演算法(92)6 7優先函數及其構造(94)6 7 1優先函數(94)6 7 2Bell方法(95)6 7 3Floyd方法(96)6 7 4Bell和Floyd兩種方法的比較(97)6 7 5運用優先函數進行分析(97)6 8兩種優先分析方法的比較(98)6 9小結(98)習題六(99)第7章自下而上的LR(k)分析方法(101)7 1LR(k)文法和LR(k)分析程序(101)7 2LR(0)分析表的構造(104)7 2 1規範句型的活前綴(105)7 2 2LR(0)項目(105)7 2 3文法G的拓廣文法(105)7 2 4CLOSURE(I)函數(105)7 2 5goto(I,X)函數(106)7 2 6LR(0)項目集規範族(107)7 2 7有效項目(108)7 2 8舉例(110)7 2 9LR(0)文法(112)7 2 10構造LR(0)分析表的演算法(112)7 3SLR分析表的構造(113)7 4規範LR(1)分析表的構造(116)7 5LALR分析表的構造(121)7 6無二義性規則的使用(124)7 7小結(126)習題七(130)第8章語法制導翻譯法(131)8 1一般原理和樹變換(131)8 1 1一般原理(131)8 1 2樹變換(133)8 2簡單SDTS和自上而下翻譯器(135)8 3簡單後綴SDTS和自下而上翻譯器(137)8 3 1後綴翻譯(138)8 3 2IFTHENELSE控制語句(138)8 3 3函數調用(139)8 4抽象語法樹的構造(140)8 4 1自下而上構造AST(141)8 4 2AST的拓廣(142)8 5屬性文法(143)8 5 1L屬性文法(143)8 5 2S屬性文法(143)8 6中間代碼形式(144)8 6 1逆波蘭表示法(144)8 6 2逆波蘭表示法的推廣(144)8 6 3四元式(146)8 6 4三元式(147)8 7屬性翻譯文法的應用(147)8 7 1綜合屬性與自下而上定值(147)8 7 2繼承屬性和自上而下定值(148)8 7 3布爾表達式到四元式的翻譯(149)8 7 4條件語句的翻譯(150)8 7 5迭代語句的翻譯(151)8 8小結(153)習題八(154)第9章運行時的存儲組織與管理(156)9 1存儲分配基礎知識(156)9 1 1運行時刻的存儲區域(156)9 1 2過程活動與過程的活動記錄(156)9 1 3靜態層次、靜態外層和動態外層(157)9 1 4名字的作用域和生存期(158)9 1 5名字的靜態屬性和動態屬性(159)9 1 6常見數據類型的存儲分配(159)9 2典型的存儲分配方案(160)9 2 1靜態存儲分配方案(160)9 2 2動態存儲分配方案(161)9 2 3存儲分配時需考慮的問題(161)9 3參數傳遞方式及其實現(162)9 3 1傳地址(162)9 3 2傳值(163)9 3 3傳結果(163)9 3 4傳名(163)9 4棧式存儲分配(164)9 4 1概述(164)9 4 2簡單棧式存儲分配(166)9 4 3嵌套結構語言的棧式存儲分配(167)9 4 4過程調用時的存儲管理(171)9 4 5PL/0棧式存儲分配(171)9 5堆式存儲分配方法(177)9 6小結(177)習題九(178)第10章符號表的組織和查找(180)10 1符號表的一般組織形式(180)10 2符號表中的數據(181)10 3符號表的構造與查找(181)10 3 1線性查找(182)10 3 2折半法(182)10 3 3雜湊技術(183)10 4分程序結構的符號表(185)10 5小結(187)習題十(188)第11章優化(189)11 1控制流圖(190)11 2常見的冗餘(193)11 2 1公共子表達式(194)11 2 2複製傳播(195)11 2 3活躍變數分析及死代碼刪除(196)11 3循環優化(197)11 3 1代碼外提(197)11 3 2歸納變數與強度削弱(200)11 3 3循環展開(202)11 3 4指令調度(204)習題十一(205)第12章代碼生成(208)12 1假想的計算機模型(208)12 2從四元式生成代碼(209)12 3從三元式生成代碼(210)12 4從樹形表示生成代碼(213)12 5從逆波蘭表示生成代碼(215)12 6寄存器的分配(215)12 7小結(216)習題十二(216)第13章詞法分析程序生成工具LEX(217)13 1LEX簡介(217)13 2LEX源文件的格式(219)13 2 1模式(219)13 2 2定義部分(221)13 2 3規則部分(222)13 2 4用戶代碼部分(223)13 3LEX的工作原理(223)13 4yylex()函數的匹配原則(224)13 5識別模式后處理(224)13 6條件模式(227)13 7FLEX的命令選項(228)13 8舉例(228)習題十三(229)