📜  语法定向翻译的应用

📅  最后修改于: 2021-09-28 10:58:01             🧑  作者: Mango

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

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

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

SDT 2+3*4

语义动作如下。

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}