编译原理12-编译过程_阶段.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:39 大小:216KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

编译原理12-编译过程_阶段.ppt

编译原理12-编译过程_阶段.ppt

预览

免费试读已结束,剩余 29 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1.2编译过程概述例:position:=initial+rate*10词法分析Lexicalanalysis,Scanning单词,单词符号,符号,Tokenposition:=initial+rate*10字符流->单词流词法分析程序的其他功能词法分析中的错误关于词法分析2)语法分析Syntaxanalysis,Parsing语法短语,语法单位position:=initial+rate*10;id1:=id2+id3*10id1:=id2+id3*10词法分析和语法分析的界限关于语法分析3)语义分析Semanticanalysis语法正确但语义错误-类型不匹配例3:intarr[2],c;c=arr1*10;变量没有声明举例:符合语法规则但不符合语义规则Varrate:real;position:=initial+rate*10关于语义分析4)中间代码生成阶段IntermediateCodeGeneration四元式position:=initial+rate*10;id1:=id2+id3*10id1:=id2+id3*inttoreal(10)id1:=id2+id3*inttoreal(10)也可以将四元式直接写成赋值的语句的形式例:a=b*c+b*d的四元式序列为:(1)t1=b*c(2)t2=b*d(3)t3=t1+t2(4)a=t3例:if(a<=b)a=a–c;c=b*c;翻译成四元式:t1=a>bift1gotoLt2=a–ca=t2L:t3=b*cc=t35)代码优化CodeOptimization(1)(2)(3)(4)6)目标代码生成(1)(2)(3)(4)(5)7)表格管理8)出错处理例:PL/0语言(PASCAL语言的子集)position:=initial+rate*102.语法分析器3.语义分析器4.中间代码生成器5.代码优化器6.目标代码生成器