1、属性文法的定义,属性的分类
属性文法:在上下文无关文法的基础上,允许每个文法符号X根据处理的需要,定义与X相关联的属性(如:类型,值,存储位置,计算等)
一个属性文法在形式上定义为一个三元组AG={G,V,E}。
G表示一个上下文无关文法
V表示属性的有穷集
E表示属性的断言或谓词的有穷集
属性分为两类:综合属性和继承属性
2、中间语言的形式:逆波兰式、三元式和树形表示,四元式和三地址式
逆波兰式(后缀式):消除括号,将运算对象写在前面,运算符写在后面,易于计算处理,利用工作栈计算表达式。树的后序遍历。
三元式:(i) (op, arg1, arg2):ar1 op arg2:
特别的@表示取反,如:(i)(@,B,—)的作用是使B取反,—表示无操作数,结果存在(1)
间接三元式:相比三元式,增加了间接码表,标记使用过的三元式
树形表示:三元式的另一种表示,特点:方便表示、处理和存储组织
四元式:(i)(op, arg1, arg2, result):result为临时变量,记得最终把result赋值给结果。
三地址代码:(i) X = a op b