8.2语法制导翻译概论p171 ■语法制导翻译 ■计算语义规则依赖图 ■S-属性文法和自下而上翻译 L-属性文法在自上而下分析中的实现 ■L-属性文法在自下而上分析中的实现 2025/4/2 章节目录1
2025/4/2 11 8.2 语法制导翻译概论 p171 语法制导翻译 计算语义规则依赖图 S-属性文法和自下而上翻译 L-属性文法在自上而下分析中的实现 L-属性文法在自下而上分析中的实现 章节目录
基于属性文法的处理方法p171 ■对单词符号串进行语法分析,构造语法分析 钢各聳缇接受春卓程溶送树 输入串 语法树 依赖图 语义规则 计算次序 2025/4/2 可☑12
2025/4/2 12 基于属性文法的处理方法 p171 对单词符号串进行语法分析,构造语法分析 树,然后根据需要遍历语法树,并在语法树 的各结点处按语义规则进行计算。 输入串 语法树 依赖图 语义规则 计算次序
语法制导翻译法 ■由源程序的语法结构所驱动的处理办法 ■为文法中每个产生式配上一组语义规则,并 且在语法分析的同时执行这些语义规则,完 成相应的语义处理 ■问题:何时执行语义规则? ◆每当用一个产生式推导或归约时,就执行对应 的语义规则 2025142 节目绿☑13
2025/4/2 13 语法制导翻译法 由源程序的语法结构所驱动的处理办法 为文法中每个产生式配上一组语义规则,并 且在语法分析的同时执行这些语义规则,完 成相应的语义处理 问题:何时执行语义规则? 每当用一个产生式推导或归约时,就执行对应 的语义规则 节目录
属性的计算一 依赖图p172 ■一张有向图 ◆描述语法树各结点属性之间的相互依赖关系 ◆如果属性b的计算依赖于属性c,则从属性c到属 性b有一条有向边c→b ■根据依赖关系决定计算顺序 ◆依赖图的任意一个拓扑排序 Topological Sort ◆如果结点c→b,在序列中c必须在b之前 2025/4/2 可☑14
2025/4/2 14 属性的计算——依赖图 p172 一张有向图 描述语法树各结点属性之间的相互依赖关系 如果属性b的计算依赖于属性c,则从属性c到属 性b有一条有向边 c→b 根据依赖关系决定计算顺序 依赖图的任意一个拓扑排序 Topological Sort 如果结点c→b,在序列中 c 必须在 b 之前
例3*5+4n的语 显示19 法树与属性计算 E.val=19 依赖关系 拓扑排序 E1.val=15 十 T.val=4 自下而上 ⑤↑ ⑦↑ T.val=15 F.val=4 ⑥t TL val=3 F.val=5 i.lexval=4 ②It ③It F.val=3 i.lexval=5 ①f 依赖图 i.lexval=3 2025g 15
2025/4/2 15 ① 例 3*5+4n的语 法树与属性计算 L .val=3 E n E1 + T T T1 * F F i i F .val=3 .val=5 i .val=15 .val=15 .val=4 .val=4 .val=19 显示19 .lexval=3 .lexval=5 .lexval=4 依赖关系 拓扑排序 自下而上 依赖图 ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨