【问题标题】:Chomsky Hierarchy and LL(*) parsersChomsky Hierarchy 和 LL(*) 解析器
【发布时间】:2009-01-14 08:57:13
【问题描述】:

我想解析一种编程语言。我阅读了很多关于形式语言、乔姆斯基层次结构和 ANTLR 的内容。但是我找不到有关如何将 ANTLR v3 语言作为 LL(*) 递归下降解析器接受的乔姆斯基层次结构的信息。

Chomsky 类型如何与 LL(*) 混合?非常感谢任何信息(在线、书籍、论文)。

编辑:ANTLR 的句法/语义谓词和回溯如何映射到此?

【问题讨论】:

    标签: parsing compiler-construction antlr theory chomsky-hierarchy


    【解决方案1】:

    乔姆斯基层次结构基本上是:

    1. 常规语言
    2. 上下文无关语法
    3. 上下文相关语法
    4. 递归可枚举(图灵完备)语法

    LL 语法(和解析器)是上下文无关语法的一个子集。之所以使用它们,是因为常规语言对于编程目的来说太弱了,并且因为一般的上下文无关解析器是 O(n^3),这对于解析程序来说太慢了。 事实上,用辅助函数增强解析器确实使它更强大。 The Wikipedia entry on LL parsers 解释了其中的一些内容。The Dragon Book 被认为是关于编译器的领先教科书,并且可能会进一步解释。

    【讨论】:

      【解决方案2】:

      LL(*) 是上下文无关语言的一个子集。然而,一个不同的问题是 antlr 可以解析什么,给定谓词和回溯,这扩展了它的能力。

      请注意,如果我们谈论 LL(*),则表示 ANTLR v3,而不是 2。

      【讨论】:

        猜你喜欢
        • 2021-01-03
        • 2012-08-23
        • 1970-01-01
        • 1970-01-01
        • 2021-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多