【发布时间】:2011-02-20 05:11:34
【问题描述】:
我是 Haskell 和 Parsec 的新手。看完Chapter 16 Using Parsec of Real World Haskell,我的脑海里出现了一个问题:Parsec 为什么和什么时候比其他解析器生成器比如 Yacc/Bison/Antlr 更好?
我的理解是 Parsec 创建了一个很好的编写解析器的 DSL,而 Haskell 使它变得非常简单和富有表现力。但是解析是一种标准/流行的技术,值得拥有自己的语言,可以输出到多种目标语言。那么我们什么时候应该使用 Parsec 而不是从 Bison/Antlr 生成 Haskell 代码?
这个问题可能会超越技术,进入行业实践领域。从头开始编写解析器时,与 Bison/Antlr 或类似的东西相比,使用 Haskell/Parsec 有什么好处?
顺便说一句:我的问题与this one 非常相似,但没有得到令人满意的回答。
【问题讨论】:
-
“但是解析是一种标准/流行的技术,值得拥有自己的语言,它可以输出多种目标语言。”我很想知道为什么——我对这个主题了解得不够多,无法真正同意或不同意,但它肯定不会让我觉得这是一个不言而喻的陈述。