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

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

Patricia Arquette
Patricia Arquette原创
2024-12-05 14:28:10998浏览

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

揭示 C 的语法:上下文复杂性

关于 C 是上下文无关还是上下文敏感的争论源于以下观点:某些表达中的“歧义”。然而,二义性是特定语法的特征,而不是语言本身。

C 语法超出了上下文无关语法和上下文相关语法的限制。 C 需要图灵完备的解析器,这意味着“Type-0”语法,乔姆斯基层次结构中最强大的类型。

在 Type-0 语法中,任何符号序列都可以出现在产生式规则,允许图灵完备的表达式。完全捕获 C 语法的上下文相关语法的不存在增强了其上下文敏感性。

此外,C 模板实例化本身是图灵完备的,可以在解析过程中进行计算。这使得 C 不适合上下文无关和上下文相关的分类。

虽然 C 的上下文无关或上下文相关的语法在理论上是可能的,但其难以理解的复杂性使其不切实际。 C 标准中对技术英语和算法描述的依赖反映了对这种句法不确定性的认识。

C 标准在附录 A 中提供了指导,而不是正式语法。但是,它明确指出此“摘要” C 语法”是一个近似值,而不是详尽的定义。消歧规则、访问控制和类型规则对于过滤掉语法上有效但语义上无效的结构至关重要。

本质上,C 语法超越了上下文无关和上下文敏感的边界,体现了图灵完备的复杂性,需要更丰富的语法系统。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn