词法分析程序
1.完成词法分析任务的程序称为词法分析程序或词法分析器或扫描器。
2.从左至右地对源程序进行扫描,按照语言的词法规则识别空格和保留字和标识符,并产生相应单词的属性字。
语法分析程序
是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等.语法分析程序判断源程序在结构上是否正确.源程序的结构由上下文无关文法描述.
语义分析程序
语义分析是编译过程的一个逻辑阶段. 语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查, 进行类型审查.语义分析将审查类型并报告错误:不能在表达式中使用一个数组变量,赋值语句的右端和左端的类型不匹配.
中间代码生成程序
在进行了语法和语义的分析工作之后,编译程序将源程序变成了一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。
代码优化程序
这个阶段是对前阶段的中间代码进行变换或改造,目的是使生成的目标代码更为高效,即节省时间和空间。
目标代码生成程序
也就是把优化后的中间代码变换成指令代码或汇编代码。
符号表管理程序
1.收集符号属性
2.上下文语义的合法性检查的依据
3.作为目标代码生成阶段地址分配的依据
词法分析:也就是从左到右一个一个的读入源程序,识别一个单词或符号,并进行归类。
语法分析: 在词法分析的基础上,将单词序列分解成各类语法短语,如“程序”,“语句”,“表达式”等。
语义分析:审查源程序是否有语义的错误,当不符合语言规范的时候,程序就会报错。
中间代码生成:在进行了语法和语义的分析工作之后,编译程序将源程序变成了一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。
代码优化:这个阶段是对前阶段的中间代码进行变换或改造,目的是使生成的目标代码更为高效,即节省时间和空间。
目标代码生成:也就是把优化后的中间代码变换成指令代码或汇编代码。
学如逆水行舟,不进则退