语法制导翻译的实现

2025 年 3 月 17 日 | 阅读 1 分钟

语法制导翻译是通过构造解析树并以从左到右的深度优先顺序执行操作来实现的。

SDT 通过解析输入并生成解析树来实现。

示例

生产语义规则
S → E ${ printE.VAL }
E → E + E{E.VAL := E.VAL + E.VAL }
E → E * E{E.VAL := E.VAL * E.VAL }
E → (E){E.VAL := E.VAL }
E → I{E.VAL := I.VAL }
I → I digit{I.VAL := 10 * I.VAL + LEXVAL }
I → digit{ I.VAL:= LEXVAL}

SDT 的解析树

Implementation of Syntax directed translation

图:解析树


下一主题中间代码