A compiler of compiler is a Computer program able to produce the totality or certain parts of Compilateur (left lexical Analyze, left syntactic Analyze, left semantic Analyze, left synthesis, part of management of the errors…) to form a coherent whole, the source code of the desired compiler.
Description
Like a traditional compiler, it accepts a source language, for example a
grammar coupled to a whole of actions. It creates a target language, generally the parts analyzes lexical and syntactic. The parts analyzes semantic and synthesis are generally too close to the target language to be produced automatically and their realization is left with the load of the user. Certain compilers of compiler make it possible to also create the part of management of the errors.
Some examples
- Lex and yacc, or Flex and Bison, respectively make it possible to produce lexical analyzers and parsers in Langage C. Coupled, they form a compiler of compiler with analyzes ascending LALR.
- ANTLR makes it possible to generate the code of a compiler with downward analysis L (K).
- LDL is a compiler of compiler LALR (1) which includes a self-correcting device of error.
- SableCC C.
- JavaCC is another generator of compiler java.
- Coco/R is a simple generator of C#/Java/C++ compiler and others.
- CodeWorker interprets a grammar BNF and makes it possible to generate code, including by injecting this one in existing code.
- Parse:: Yapp, written in Language Perl, produced analyzer LALR in Perl.
- Parse:: RecDescent, written in Perl, produces a compiler going down in Perl.
- Parsec.
- Happy.
- SYNTAX is a system allowing the production of lexical analyzers and effective parsers and with correction of errors for all not-contextual grammars, like for certain classes of contextual grammars.
- Rebol is language general practitioner including a parser BNF. This one is used in an intensive way - under the name of " dialectes" - in many tools provided out of standard (graphical interface, Web service…) or by contributors.