- 16
- 0
- 约1.16万字
- 约 42页
- 2018-11-05 发布于广西
- 举报
* 1 过程的作用域(续3) 嵌套过程中名字作用域信息的保存,可以用具有嵌套结构的符号表来实现,每个过程可以被认为是一个子符号表,或者是符号表中的一个节点。 嵌套的节点之间可以用双向的链表连接,正向的链指示过程的嵌套关系,而逆向的链可以用来实现按作用域对名字的访问。 2 符号表中的作用域信息 * 2 符号表中的作用域信息 例4.15 忽略参数的快排序程序的符号表: 双向链表: 正向 -嵌套定义关系 逆向 -作用域与可见性关系 问题: 参数如何处理? (a,x) (i,v) (i) (i,j) * 3 语法制导翻译生成符号表(a) 简化的过程定义文法(忽略了参数): P → D (1) D → D ; D (2) | id : T (3) | proc id ; D; S (4) 问题:如何在处理产生式(1)和(4)的语言结构时正确地填写符号表信息(双向链表)? 修改文法,使得在定义D之前生成符号表(LR分析): P → M D (1) D → D ; D (2) | id : T (3) | proc id ; N D; S (4) M →ε (5) N →ε (6) * (b) 全程量、属性与语义函数 全程量:有序对栈(tblptr, offset) 其中,tblptr保存指
原创力文档

文档评论(0)