Category:Compiler Generators

From eplmediawiki
Jump to: navigation, search

A Compiler Generator (CG) is a program that takes, as input, a Language Specification (a Regular Expression (ER), a Grammar (G), etc.) and produces, as output, another program that is a Processor (a Compiler, an Interpreter, or whatever) for the language specified.

Notice that the correct name for this special program should be Language-Processor Generator. However the actual name is indeed Compiler Generator; alternatively, it is also known as Compilers Compiler.

The usefulness of such a program is unquestionable. From a short and concise formal specification of a language, a complex and efficient program is quickly generated with the guarantee that the generated program will recognize all the valid sentences that belong to that language and will transform/translate them in a systematic way.

From a large list of well known Compiler Generators---Yacc, Btyacc, Mlyacc, Happy, Coco/R, Tools, CTB, JavaCC, CUP, LISA, Eli, PCCTS, AnTLR, Silver, Sable, SGen, LRC, ASF+SDF---we chose a subset of them to install and test.

The pages in this category correspond, precisely, to the selected Compiler Generators and provide some pratical information about each one.

To enable the comparasion of each tool usage, all of the CG chosen were experimented with the same language, Lavanda, that is a didatic Domain Specific Language designed for teaching purposes. Lavanda is specified by the following grammar: LavandaGrammar.

A small set of input texts, to test the compiler generated by each tool, is available here.

An article comparing three compiler generators (Lex/Yacc, LISA and ANTLR-3) ca be found here.

_________________________________________________________

Click here to download this selection of articles as a PDF book.

_________________________________________________________

Pages in category "Compiler Generators"

The following 9 pages are in this category, out of 9 total.

Personal tools
Namespaces

Variants
Actions
Navigation
extras
Toolbox