编译器编译程式
外观
一个编译器编译程式(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/ (页面存档备份,存于互联网档案馆)