理解上下文无关和上下文相关语言
在形式语言理论领域,语法定义了构建语言的语法规则。在讨论 C 等编程语言时,理解其语法的本质至关重要。
上下文无关语法与上下文相关语法
C 语法的歧义性
一些说法表明,由于某些结构的歧义,C 是上下文相关的。然而,查看上下文相关语法的定义可能无法完全解释 C 的行为。
C 解析器和图灵完备性
C 解析的复杂性是显而易见的在臭名昭著的示例程序中,语法正确性取决于数字是否为素数。这表明解析 C 需要图灵机或无限制语法(Type-0 语法)。
C 是上下文无关的还是上下文敏感的?
两者都不是上下文无关或上下文相关的语法都可以完全捕获 C 的复杂性。 C 属于一个更强大的类别,称为 Type-0 语法,它允许产生式两边都有任意符号序列。
C 语言定义的含义
复杂的C 语法的本质使得提供完整的形式语法变得具有挑战性。相反,该标准提供了部分形式语法,并补充了用于消歧和语义的技术英语规则。
结论
C 解析超出了上下文无关的限制和上下文相关的语法。它需要图灵完备的计算模型,反映了语言固有的复杂性。因此,C 的语法无法被正式语法精确捕获,并且该标准选择了正式和非正式规则的组合来定义其语法。
以上是C 的语法是真正的上下文无关、上下文敏感还是更强大的东西?的详细内容。更多信息请关注PHP中文网其他相关文章!