Formal languages 为什么最左派的去创新是有用的?

Formal languages 为什么最左派的去创新是有用的?,formal-languages,Formal Languages,我说的是上下文无关语言(CFG) 为什么最左派的去革新如此有用 有什么比“定期撤销”更好的呢?(这在教科书中不太常见。)在有人告诉你这不是一个编程问题之前,答案确实具有编程意义 最左边的派生很重要,因为它是由自顶向下的解析器有效构造的派生(例如,LL递归下降或具有前瞻性的确定性下推自动机) 它之所以有用的另一个原因是,对于任何生成的解析树,最左边的派生总是唯一的。因此,对于一个明确的语法,最左边的派生词对于任何可由该语法派生的句子也是唯一的 唯一性通常是证明事物的非常有用的工具。在这种情况下,它

我说的是上下文无关语言(CFG)

为什么最左派的去革新如此有用

有什么比“定期撤销”更好的呢?(这在教科书中不太常见。)

在有人告诉你这不是一个编程问题之前,答案确实具有编程意义

最左边的派生很重要,因为它是由自顶向下的解析器有效构造的派生(例如,LL递归下降或具有前瞻性的确定性下推自动机)

它之所以有用的另一个原因是,对于任何生成的解析树,最左边的派生总是唯一的。因此,对于一个明确的语法,最左边的派生词对于任何可由该语法派生的句子也是唯一的


唯一性通常是证明事物的非常有用的工具。在这种情况下,它可以帮助您对语法进行推理,以及如何操作语法(即,删除歧义、左因子、删除左递归和其他对生成自顶向下解析器有用的转换)并说服自己这些操作是正确的。

任何cfg都可以转换为我只能进行最左边的去引用的cfg吗?@Anton No。你的问题意味着你不知道什么是派生。返回并查看定义。每一种语法,除了称为规则语法的普通语法集,都允许对任意句子进行许多、许多派生。这仅仅是因为一般的派生让您可以选择任何非终端来展开下一步。最左边的要求您选择(您猜到了)最左边的非终结符。正如我上面所说的,这是最左边派生的值。它们让你对一种推导而不是所有可能的推导进行推理,这对于大多数语法和句子来说都是一个巨大的数字。