第一章
是基本概念,读完这一章是为了有个基本了解,这一章是很容易顺利读完的
第二章
这一章介绍了书中很多重要的东西。这一章虽然也有些难理解的地方,但是跟后面比还是容易很多,很多东西都很基本,对编译系统有个基本的理解。
第三章 词法分析
相比较语法分析,词法分析相对比较简单,就是一个自动机系统,学完这一章最基本应该把NFA、DFA概念理解,并能够将NFA转换为DFA,能将正则表达式转换为NFA,并可以使用lex生成简单的词法分析器。
第四章 语法分析
到目前为止最难的一章,据说很多自学的人都是读到这一章放弃的。学完这一章应该有了语法分析的概念,并理解语法分析的局限性,比如变量先声明后使用时没法通过语法定义的,但是相对词法分析,语法可以表示的东西已经多了很多。
lex和yacc是学习编译原理很重要的部分,可以自动生成分析代码,但是默认编译对装换表做了优化,用几个一维表代替正常的二维表
实际应用中的编译器通常会选择二义性文法和根据运算符的优先级来生成的文法,因为这样的文法相对比较简单
第五章 语法制导的翻译
这一章在语法分析中加入翻译代码,主要讲了2个概念:
SDD:语法制导定义,由一个上下文无关文法和属性及规则组成
SDT:语法制导翻译,是在其产生式体内嵌入了程序片段的一个上下文无关文法
第六章 中间代码生成
这一章讲了三地址中间代码的表示方法和程序中大部分内容的三地址表示方法