出版時間:2009-1 出版社:清華大學出版社 作者:李文生 頁數(shù):397 字數(shù):533000
Tag標簽:無
內容概要
本書系統(tǒng)地介紹了編譯程序的設計原理和基本實現(xiàn)技術,主要內容包括詞法分析、語法分析、語義分析、中間代碼生成、代碼生成和代碼優(yōu)化等,還重點介紹了用于實現(xiàn)語義分析和中間代碼生成的語法制導翻譯技術,以及程序運行時存儲空間的組織與管理。
在介紹基本理論和方法的同時,注重實際應用,介紹了LEX和YACC的使用方法及原理,剖析了PL/0語言的編譯程序,討論了GCC編譯程序的基本結構。配合理論教學,給出了一些實踐題目,旨在培養(yǎng)學生分析和解決問題的能力。
本書內容充實、圖文并茂、各章節(jié)內容循序漸進,并注意理論與實踐的結合。
本書可作為高等學校計算機科學與技術專業(yè)的本科生教材或參考書,也可供其他專業(yè)的學生或從事計算機工作的工程技術人員閱讀參考。
書籍目錄
第1章 編譯概述
第2章 形式語言與自動機基礎
第3章 詞法分析
第4章 語法分析
第5章 語法制導翻譯技術
第6章 語義分析
第7章 運行環(huán)境
第8章 中間代碼生成
第9章 代碼生成
第10章 代碼優(yōu)化
第11章 編譯程序的實現(xiàn)
附錄 PL/0編譯程序源程序
參考文獻
章節(jié)摘錄
版權頁: 插圖: 2.錯誤恢復策略 語法分析程序在分析輸入符號串(記號序列)的過程中,一旦發(fā)現(xiàn)錯誤,就應做適當?shù)幕謴?。通常,編譯程序試圖恢復自己到某一狀態(tài),以便可以繼續(xù)分析后續(xù)的輸入串,使錯誤不斷地被檢查出來。但是如果恢復不當,也可能引起令人討厭的、以假亂真的偽錯誤大量涌現(xiàn),這些錯誤不是源程序中的,而是由于恢復時改變了分析程序的狀態(tài)所引起的。同樣,語法錯誤的恢復也可能引入語義偽錯誤(由語義分析程序或代碼生成程序檢查出來),如錯誤恢復時,分析程序可能跳過某個變量如rate的聲明,以后遇到rate引用時,雖然語法沒有錯,但由于符號表中無rate的條目,因此會產(chǎn)生“變量rate未定義”的錯誤信息。 有時,錯誤所在的位置遠遠先于發(fā)現(xiàn)它的位置,并且這種錯誤的準確性質也難以推斷,在一些困難的場合,出錯處理程序可能需要猜想程序員的本意。 分析程序可以采用的錯誤恢復策略有很多種,有幾種方法已被廣泛使用,但還沒有哪一種策略是被普遍接受的,現(xiàn)介紹以下幾種方法。 1)緊急恢復 這是最簡單的恢復方式,適用于大多數(shù)分析程序。其做法是:一旦發(fā)現(xiàn)錯誤,分析程序每次拋棄一個輸入記號,直到向前掃描指針所指向的當前輸入記號屬于某個指定的同步記號集合為止。同步記號一般是定界符,如語句結束符分號、塊結束標識END等,它們在源程序中的作用是清楚的。 這種方法簡單,不會陷入死循環(huán)。但它常常會跳過一段輸入記號而不檢查其中是否含有錯誤,在一個語句中很少出現(xiàn)多個錯誤的情況下,還是可以勝任的,但是編譯程序的設計者必須選擇適當?shù)耐接浱枴?/pre>編輯推薦
《編譯原理與技術》內容充實、圖文并茂、各章節(jié)內容循序漸進,并注意理論與實踐的結合?!毒幾g原理與技術》可作為高等學校計算機科學與技術專業(yè)的本科生教材或參考書,也可供其他專業(yè)的學生或從事計算機工作的工程技術人員閱讀參考。圖書封面
圖書標簽Tags
無評論、評分、閱讀與下載