编译器编译程序

一个编译器编译程序(compiler-compiler)或者编译器产生程序(compiler generator)是一个帮助用户根据某种语言或机器的规则来产生语法分析器解释器或者编译器的工具。目前最早也是最常见的编译器编译程序是语法分析器产生程序(parser generator)这个形式,其输入是一个编程语言形式文法 (一般是用BNF表示),然后产生出一些语法分析器代码,作为这个语言编译器的一部分。

理想的编译器编译程序,只要给予一个编程语言的完整描述以及目标的指令集架构,然后就能自动从中产生出合适的编译器。实际上, 最先进的技术还没有到达这么复杂的地步,而大多数现有的编译器产生程序都不能处理语义学或者目标架构的信息部分。

一些编译器编译程序

  • ANTLR
  • GNU bison
  • Coco/R英语Coco/R
  • JavaCC
  • ELI, 一个综合的的编译器创建工具程序。[1]
  • Lemon Parser Generator英语Lemon Parser Generator
  • parboiled英语Parboiled (Java), 一个创建的语法分析器Java库。
  • 解析表达文法
  • PQCC英语PQCC,一个远超过语法分析器产生程序的编译器产生程序。
  • Yacc
  • Spirit Parser Framework英语Spirit Parser Framework用于创建语法分析器的C++程序库。

外部链接

  1. ^ Robert W. Gray et al., "Eli: A complete, flexible compiler construction system." Communications of the ACM 35:2:121-130, 1992; see also http://eli.colorado.edu/页面存档备份,存于互联网档案馆