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