首页 > 后端开发 > C++ > C 的语法是真正的上下文无关、上下文敏感还是更强大的东西?

C 的语法是真正的上下文无关、上下文敏感还是更强大的东西?

Linda Hamilton
发布: 2024-12-13 01:04:10
原创
742 人浏览过

Is C  's Syntax Truly Context-Free, Context-Sensitive, or Something More Powerful?

理解上下文无关和上下文相关语言

在形式语言理论领域,语法定义了构建语言的语法规则。在讨论 C 等编程语言时,理解其语法的本质至关重要。

上下文无关语法与上下文相关语法

  • 上下文-自由语法: 允许左侧非终结符由单个非终结符组成的规则。这些语法的上下文有限。
  • 上下文相关语法: 允许左侧终结符和非终结符的任意组合。他们在解析时考虑周围的上下文。

C 语法的歧义性

一些说法表明,由于某些结构的歧义,C 是上下文相关的。然而,查看上下文相关语法的定义可能无法完全解释 C 的行为。

C 解析器和图灵完备性

C 解析的复杂性是显而易见的在臭名昭著的示例程序中,语法正确性取决于数字是否为素数。这表明解析 C 需要图灵机或无限制语法(Type-0 语法)。

C 是上下文无关的还是上下文敏感的?

两者都不是上下文无关或上下文相关的语法都可以完全捕获 C 的复杂性。 C 属于一个更强大的类别,称为 Type-0 语法,它允许产生式两边都有任意符号序列。

C 语言定义的含义

复杂的C 语法的本质使得提供完整的形式语法变得具有挑战性。相反,该标准提供了部分形式语法,并补充了用于消歧和语义的技术英语规则。

结论

C 解析超出了上下文无关的限制和上下文相关的语法。它需要图灵完备的计算模型,反映了语言固有的复杂性。因此,C 的语法无法被正式语法精确捕获,并且该标准选择了正式和非正式规则的组合来定义其语法。

以上是C 的语法是真正的上下文无关、上下文敏感还是更强大的东西?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板