我正在学习“编译器理论”,它说大多数语言使用“确定性无上下文语法”。我想知道有没有语言使用“上下文敏感语法”?
更新:
我问了一个人,他说c ++和ruby有一些上下文敏感的语法。
例如,在c ++中,此代码:
abc();
如果有一个名为abc
的方法,则abc()
表示“调用此方法”。如果有一个类class abc{ }
,那么它意味着“创建一个类abc的实例”。
而在ruby中,由于它具有元编程,因此它具有更多上下文敏感的语法。
他是对的吗?
答案 0 :(得分:2)
上下文敏感语法具有与其在上下文中使用的各种非终结符相关的符号。在计算机世界中,它们非常罕见,因为它使解析器的编写变得非常复杂 - 如果字符串属于特定的上下文敏感语法,则决定PSPACE是否完整。