教学课件:《编译原理基础》(第二版)刘坚.pptVIP

  • 139
  • 0
  • 约20.15万字
  • 约 1588页
  • 2021-07-14 发布于江苏
  • 举报

教学课件:《编译原理基础》(第二版)刘坚.ppt

  得到注释分析树如图4.46(a)所示,其中.t是.type的缩写。此时符号表中max的类型填写的是int?×?int→int。 然后构造函数调用语句max(5,8)的分析树如图4.45(b)所示。按分析树上剪句柄的次序以同样的方法计算各非终结符的属性.type,并进行类型检查: 图4.45 函数声明与调用语句的分析树 (a) 声明时的分析树;(b) 调用时的分析树 图4.46 函数声明与调用语句的注释分析树 (a) 声明时的注释分析树;(b) 调用时的注释分析树 4.11.4 类型表达式的等价   在上节的简单类型检查中,通过判定所给的两个类型的类型表达式是否相等来进行类型检查。对于单态的类型,我们引入一个更专业的术语类型等价来描述类型检查。类型的等价与类型的表示有关,表示不同,等价的概念也不同。本节讨论三个问题:有哪些类型等价,程序设计语言规定什么样的等价,以及等价的判别。   1. 结构等价与等价的判别   若两个仅由类型构造符作用于基本类型组成的类型表达式完全相同,则称两个类型表达式结构等价。换句话说,类型表达式结构等价当且仅当二者完全相等。若类型表达式中没有名字,则结构等价就是类型等价。例如int与int结构等价,array(1..10, real)与array(1..10, real)结构等价。结构等价反映在类型表达式的语法树上,就是两棵语法树完全相同。

文档评论(0)

1亿VIP精品文档

相关文档