編譯器編譯程式
外觀
一個編譯器編譯程式(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/ (頁面存檔備份,存於網際網路檔案館)