编译 第五章 语义分析与中间代码生成.ppt

编译 第五章 语义分析与中间代码生成

第五章 语义分析和中间代码生成 语义分析的任务 静态语义检查、语义处理(翻译) 语义检查 例:类型、运算、维数、越界 语义处理 例:变量的存储分配 例:表达式的求值 例:语句的翻译(中间代码的生成) 5.1 属性文法 语义分析的描述 描述语法规则的同时,编写相应的语义动作和计算顺序 语义的形式化描述 操作语义学、公理语义学、指称语义学 属性文法 接近形式化的语义描述方法 属性文法的定义 三元组:A=(G,V,F) G 是上下文无关文法 V 属性的有穷集 F 关于属性的断言和谓词 关系 语义信息作为终结符和非终结符的属性 语义分析定义为产生式的断言和谓词 用法(1/2) 针对语义,为文法符号设置属性 终结符使用单词的属性: 种别值、自身值(常数值、标识符字符串)、表项指针等 非终结符的属性: 代码序列、符号表的指针或内容等 为每个产生式设置语义规则 为每个产生式配备的一组属性的计算规则 描述各属性的关系、各属性计算方法 用法(2/2) 属性加工 属性加工过程即是语义处理的过程 属性文法形式 语法制导定义:语法结构中语义的抽象说明,翻译的高级说明。 例5-1: 计算器的设计 编制算术表达式的文法 引入属性表示语义信息 将值 val 作为表达式 E、项 T 和因子 F 的属性 用语义规则描述表达式的求值 属性文法(语法制导定义) L → E pri

文档评论(0)

1亿VIP精品文档

相关文档