📜  语法定向翻译的应用

📅  最后修改于: 2021-06-28 07:39:52             🧑  作者: Mango

在本文中,我们将介绍语法定向翻译的应用程序,在该应用程序中,我们还将看到真实的示例以及如何使用这些应用程序解决问题。让我们一一讨论。

先决条件:语法定向翻译简介

语法定向翻译:
它用于语义分析,而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。

2 + 3 * 4的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}