来自cse

FP:嵌入式分析器生成器

乔纳斯·杜雷格德帕特里克·詹森(在查尔默斯FP公司组)

Haskell研讨会演讲

摘要

我们提出了一种在Haskell中嵌入无上下文文法的新方法,并从中自动生成解析器和漂亮的打印机。我们在一个名为BNFC-米塔(来自BNF转换器,它是建立在BNF转换器之上的)。该库使用元编程而不是传统的代码生成来构建编译器前端。解析器由直接在Haskell模块中定义的标记BNF语法构建。我们的解决方案结合了解析器生成器的功能(静态语法检查,一种高度专业化的语法DSL),并添加了组合库独有的几个功能,例如在Haskell中重用、参数化和生成语法的能力。

为了允许以具体语法编写语法,BNFC-米塔提供了一个准引用,可以在编译时解析语法(嵌入在Haskell文件中),并使用元编程将其替换为抽象语法。我们还生成准引号,以便我们用BNFC-meta定义的语言可以以相同的方式嵌入。只要对语法进行最小的更改,我们就支持在生成的准引用中添加反引号,这允许定义语言的用户几乎无缝地混合具体和抽象语法。与以前实现反引用的方法不同,BNFC-meta使用的方法简单、高效,避免了污染抽象语法类型。

Biptex公司

@进行中{BNFC-meta-Haskell2011,author={Dureg{\aa}rd,Jonas和Jansson,Patrik},title={嵌入式分析器生成器},booktitle={关于{Haskell}的第四届{ACM}研讨会论文集},序列={Haskell'11},isbn={978-1-4503-0860-1},location={日本东京},页数={107--117},numpages=11,url={http://doi.acm.org/10.1145/2034675.2034689},doi={10.1145/2034675.2034689},acmid=2034689,发布者={ACM},address={美国纽约州纽约市},keywords={领域特定语言,元编程},年份=2011}

出版物状态

链接

黑客软件包BNFC-米塔,快乐我亚历克斯·梅塔.

检索自https://wiki.portal.chalmers.se/cse/pmwiki.php/FP/EmbeddedParserGenerators网站
页面上次修改时间:2014年3月10日,08:49 pm