以一个数学运算为例: 它的AST可以表达为:
plus(num[1];times(2;plus(num[3];num[4])))
记为AST节点的类型,为ast的操作符,则在上面的例子中,只有一种节点类型:Exp
,以及以下操作符:
num[n]
,对于每个。plus
,times
,这是两个二元操作符。
每个操作符都接收一定数量的操作数,称操作符操作数的数量为arity。times,plus的arity为2,num[n]
的arity为0。
操作符接收n个特定类型的操作数后具有类型s,记为。
是所有的集合:。
是所有arity为的操作数的集合,如上面的例子中,。
是所有的集合:。
是所有类型为变量的集合。
Reference
- pfpl. ch1.1