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

语法与语义分析
EN

Stack Overflow用户
提问于 2010-08-13 17:21:56
回答 1查看 827关注 0票数 3

我想知道语法规范和语义分析之间的界限在哪里。哪个更好:使用详细的语法描述还是将细节留到语义阶段?例如:设想一种像C#这样的具有枚举类型的OO语言,它可以从原始类型“派生”

代码语言:javascript
复制
enum X : int { a = 1 }

现在,枚举的基本类型的正确性(在这种情况下:原始类型还是非原始类型)应该是语法检查或语义分析的主题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-13 20:37:27

这是一个非常宽泛的问题。还有许多其他的考虑因素,以至于很难简单地说一种策略在所有情况下都比另一种策略更好。这取决于您的目的和对语言其余部分的定义。如果语言的其他部分在语法上本质上是模糊的(并且必须使用语义信息来消除歧义),那么显然有必要将任务作为语义分析的一个步骤来执行。

这就是说,我是一个尽早捕获所有错误的粉丝。如果您的语言和目标允许您解析输入的完全明确的语义表示,而不需要任何语义分析来拒绝无效程序,那么我相信这将是目前为止最好的方法。

基本上,您肯定是在尽可能早地拒绝错误程序的能力与语法和解析器的复杂性以及语法描述和语义分析阶段之间的重复工作之间取得平衡。我不相信用一种方式做事情比用另一种方式做事情更好的说法是可能的。

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

https://stackoverflow.com/questions/3475501

复制
相关文章

相似问题

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