编译原理编译原理第七章语义分析和中间代码生成第七章语义分析和中间代码生成编译原理编译原理第2页第2页语义分析和中间代码产生语义分析和中间代码产生紧接在词法分析和语法分析之后,编译程序要做的工作就是进行静态语义检查和翻译
静态语义检查(1)类型检查
如果操作符作用于不相容的操作数,编译程序必须报告出错信息
(2)控制流检查
控制流语句必须使控制转移到合法的地方
(3)一致性检查
在很多场合要求对象只能被定义一次
(4)相关名字检查
其它如名字的作用域分析等
紧接在词法分析和语法分析之后,编译程序要做的工作就是进行静态语义检查和翻译
静态语义检查(1)类型检查
如果操作符作用于不相容的操作数,编译程序必须报告出错信息
(2)控制流检查
控制流语句必须使控制转移到合法的地方
(3)一致性检查
在很多场合要求对象只能被定义一次
(4)相关名字检查
其它如名字的作用域分析等
编译原理编译原理第3页第3页语义分析和中间代码产生语义分析和中间代码产生使用中间语言的好处(1)便于进行与机器无关的代码优化工作;(2)使编译程序改变目标机更容易;(3)使编译程序的结构在逻辑上更为简单明确
以中间语言为界面,编译前端和后端的接口更清晰
使用中间语言的好处(1)便于进行与机器无关的代码优化工作;(2)使编译程序改变目标机更容易;(3)使编译程序的结构在逻辑上更为简单明确
以中间语言为界面,编译前端和后端的接口更清晰
编译原理编译原理第4页第4页语义分析和中间代码产生语义分析和中间代码产生编译原理编译原理第5页第5页语义分析和中间代码产生语义分析和中间代码产生本章内容目录本章内容目录中间语言后缀式图表示法三地址代码说明语句过程中的说明谙旬保留作用域信息记录中的域名中间语言后缀式图表示法三地址代码说明语句过程中的说明谙旬保留作用域信息记录中的域名赋值语句的翻译简单算术表达式及赋值语句数组元素的引用布尔