- 5
- 0
- 约7.78千字
- 约 46页
- 2017-04-08 发布于湖北
- 举报
S.P
O.P
表
格
管
理
程
序
错
误
处
理
程
序
第8章 语法制导翻译和中间代码生成
2
8.1 属性文法
8.2 语法制导翻译
8.3 常用中间代码
8.4 简单赋值语句的翻译
第8章 语法制导翻译和中间代码生成
教学要求:
理解语法制导翻译的基本思想
会写出语句的逆波兰表示、三元式、四元式和树形结构
3
4
编译中的语义处理是指两个功能:
第一,审查每个语法结构的静态语义,即验证语法结构合法的程序是否真正有意义,也称为静态语义检查或静态审查。动态语义检查需要生成相应的目标代码,在运行时进行。
第二,如果静态语义正确,语义处理的工作是要执行真正的翻译,即生成程序的一种中间表示形式(中间代码),或者直接生成实际的目标代码。
语义处理
5
静态语义检查
(1)类型检查。根据类型相容性要求,验证程序中执行的每个操作是否遵守语言的类型系统的过程,编译程序必须报告不符合类型系统的信息。
(2)控制流检查。控制流语句必须使控制转移到合法的地方。如C语言中不允许goto转入case语句流;break语句需要寻找包含它的最小switch、while或for语句方可找到转向点,否则出错。
(3)上下文相关性检查。比如,变量名字必须先声明后引用。
(4)一致性检查。如在相同作用域中标识符只能说明一次、case语句的标号不能相同等。
6
原创力文档

文档评论(0)