
1、词法分析
词法分析李基慧的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。
2、语法分析
编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每锋简条语句是否有正确的逻辑结构,程序是最终的一个语法单位。
3、中间代码生成
中间代码是源程序的一种内部表示,或称哪答中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。中间代码即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间。
4、代码优化
代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。
5、目标代码生成
目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。
扩展资料:
特点
数据结构分析和综合时所用的主要数据结构,包括符号表、常数表和中间语言程序。符号表由源程序中所用的标识符连同它们的属性组成。
其中属性包括种类(如变量、数组、结构、函数、过程等)、类型(如整型、实型、字符串、复型、标号等),以及目标程序所需的其他信息。常数表由源程序中用的常数组成,其中包括常数的机内表示,以及分配给它们的目标程序地址。
分析部分源程序的分析是经过词法分析、语法分析和语义分析三个步骤实现的。词法分析由词法分析程序(又称为扫描程序)完成。
其任务是识别单词(即标识符、常数、保留字,以及各种运算符、标点符号等)、造符号表和常数表,以及将源程序换码为编译程序易于分析和加工的内部形式。
参考资料来源:百度百科-编译程序
一个典型的编译程序通常包含8个组成部分,它们是词法分析程序、语法分厅禅喊析程序、语义分析程序袭举、中间代码生成程序、中间代码优化程序、目标代码生成程序、表格管理程序和错扮野误处理程序。http://wenku.baidu.com/link?url=0v8lInjgI_bwRat7uR65ijEnNq0lW2Kfm9_W3l6zMViLSrWpPDQeFyW5L2Vbc0SleAz7a_xhVlwB9e3qwwVF5EVslxs1IP5mJ5-bTutTLbS
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)