第一章引论
编译原理:理论与实际结合的最好典范
1.1什么是编译程序
翻译程序:把某一种语言程序(称为源语言程序)等价地转换成另一种语言程序(称为目标语言程序)的程序
编译程序:把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序
解释程序:它以该语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身
1.2编译过程概述
词法分析,语法分析,语义分析与中间代码生成,优化,目标代码生成
词法分析阶段:依循语言的词法规则(或称构词规则),描述词法规则的有效工具是正规式和有限自动机。
语法分析阶段:依循语言的语法规则,语法规则通常用上下文无关文法描述。
语义分析与中间代码生成,依循语言的语义规则,使用属性文法描述。(四元式,三元式,间接三元式,逆波兰记号,树形表示)
优化:主要方面有公共子表达式的提取,循环优化,删除无用代码等。依循的原则是程序的等价变换规则。
目标代码生成:目标代码的形式可以是绝对指令代码或可重定位的指令代码或汇编指令代码
把中间代码变换成特定机器上的目标代码
依赖于硬件系统结构和机器指令的含义
1.3编译程序的结构
编译程序总框(五个阶段)
表格与表格管理:名字|信息
出错处理:语法错误,语义错误
遍(pass) 编译前端和后端
1.5编译程序的生成
移植方法,自展技术