本書介紹編譯系統(tǒng)的一般構造原理、基本設計方法、主要實現(xiàn)技術和一些自動構造工具,主要由語言基礎知識、詞法分析、語法分析、中間代碼生成、代碼優(yōu)化、目標代碼生成、符號表的構造和運行時存儲空間的組織等8部分組成。本書首先從剖析一個簡單的編譯程序(PL/0)入手,對編譯程序設計的基本理論,如有窮自動機、上下文無關文法等給予必要的介紹;對于廣泛使用的語法分析方法和語義分析技術,如遞歸子程序法、算符優(yōu)先分析、LR分析及語法制導翻譯等進行了詳細的講解;對編譯程序的結構及其各部分功能、實現(xiàn)方法以及整體的設計考慮等給予了描述;此外還介紹了編譯程序的構造工具。同時引入“PL/0語言的編譯程序”結構及文本,還引入LEX、YACC使用方法與實例。各章末附有習題。“編譯原理”是一門對實踐性要求較高的課程,為此,我們擬定了教學實驗要求,列在附錄D中。實驗所參考的PL/0編譯程序文本列在附錄A中。附錄B和C是對編譯程序構造工具LEX和YACC的介紹。配合本書的教學自行研制了“編譯原理計算機輔助教學軟件”,附錄E對該軟件的功能和使用進行了說明。本書是高等院校計算機科學與技術專業(yè)的教材,也可作為教師、研究生或軟件工程技術人員的參考書。