在本文中,我们将介绍语法定向翻译的应用程序,在该应用程序中,我们还将看到真实的示例以及如何使用这些应用程序解决问题。让我们一一讨论。
先决条件:语法定向翻译简介
语法定向翻译:
它用于语义分析,而SDT基本上用于构造具有语法和语义动作的解析树。在语法中,需要先确定谁具有最高的优先级,而在语义动作中,将决定由语法完成哪种类型的动作。
例子 :
SDT = Grammar+Semantic Action
Grammar = E -> E1+E2
Semantic action= if (E1.type != E2.type) then print "type mismatching"
语法定向翻译的应用:
- SDT用于执行算术表达式。
- 从infix转换为postfix表达式。
- 在从中缀到前缀表达的转换中。
- 它也用于二进制到十进制的转换。
- 在数减少中。
- 在创建语法树时。
- 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}