首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >句法导向翻译与语义分析

句法导向翻译与语义分析
EN

Stack Overflow用户
提问于 2014-04-03 08:19:48
回答 1查看 788关注 0票数 4

我很难理解句法导向翻译(SDT)和语义分析之间的确切区别。

通过阅读“龙书”,我知道SDT就像CFG的延伸。将规则或操作添加到CFG中,这些规则或操作可以在解析期间进行评估,并将创建抽象语法树。(或者将被转换为AST的具体语法树)

然而,我不明白语义分析的目的是什么。因为在我看来,使用SDT,您将进行语义分析。如果SDT实现了规则/操作,那么SDT不是也在进行某种类型检查吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-04 23:47:05

语法导向翻译(SDT)意味着所有的翻译过程都是由语言的解析器驱动的。很多时候,这是在没有构建代码的显式树的情况下完成的。解析器检测指令并几乎直接生成目标输出。

另一方面,语义分析是一个独立的概念。这是编译器的主要阶段之一。它负责检测诸如未定义的变量/函数、超出作用域的访问等。

SDT与SA可能相关。如果编译器使用SDT,它必须调整SA阶段,以便在解析器级别进行这些验证。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22831757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档