在本文中,我们将介绍语法定向翻译的应用,我们还将看到真实示例以及如何使用这些应用解决问题。让我们一一讨论。
先决条件:语法定向翻译简介
语法定向翻译:
它用于语义分析,SDT 基本上用于构建具有语法和语义动作的解析树。在 Grammar 中,需要决定谁具有最高优先级将首先完成,而在语义动作中,将决定由语法完成什么类型的动作。
例子 :
SDT = Grammar+Semantic Action
Grammar = E -> E1+E2
Semantic action= if (E1.type != E2.type) then print "type mismatching"
语法定向翻译的应用:
- SDT 用于执行算术表达式。
- 在从中缀到后缀表达式的转换中。
- 在从中缀到前缀表达式的转换中。
- 它也用于二进制到十进制的转换。
- 在计数减少。
- 在创建语法树时。
- SDT 用于生成中间代码。
- 在将信息存储到符号表中。
- SDT 也常用于类型检查。
例子 :
在这里,我们将介绍 SDT 的应用示例,以便更好地了解 SDT 应用程序的用途。让我们考虑一个算术表达式的例子,然后你会看到 SDT 是如何构造的。
让我们考虑给出算术表达式。
Input : 2+3*4
output: 14
上面例子的 SDT。
语义动作如下。
E -> E+T { E.val = E.val + T.val then print (E.val)}
|T { E.val = T.val}
T -> T*F { T.val = T.val * F.val}
|F { T.val = F.val}
F -> Id {F.val = id}