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