类型
Last updated
Last updated
不同语言对类型有着不同的定义。非严谨的概括是:类型约等于数据+操作。
数据是一个类型所包含的所有取值集合,操作是一个类型支持的所有操作集合。类型检查是计算各个表达式的类型,检查各个运算是否是相关类型所支持的合法操作。
语句:
变量声明:
属性文法没有副作用,但是增加了描述的复杂度。比如语法分析时,如果没有副作用,标识符表就必须作为属性传递。可以把标识符表作为全局变量,然后通过函数来添加新的标识符。如果我们允许属性文法有受控的副作用,这样就不会对属性求值产生约束,既可以按照任何拓扑顺序求值,不会影响最终结果。比如我们可以在变量声明SDD中有受控副作用:
类型的含义:
类型包括两个部分:T->BC,基本类型是B,分量是C
分量形如[2][3],表示二维数组
数组构造算符array(n,t)
总结:
通过带副作用的SDD分析变量类型
通过L属性的SDD分析数组类型