Google
 
   
Login
Username:

Password:


Lost Password?

Register now!
Search
Main Menu
top books
Polls
What do you think about php-deluxe.net?
Excellent!
Cool
Hmm..not bad
What the hell is this?
encyclopedia
recommendation
Freenet DSL
Who's Online
4 user(s) are online (4 user(s) are browsing encyclopedia)

Members: 0
Guests: 4

more...
browser tip
recommendation!
Sponsored
partner

Compiler-compiler

A compiler-compiler or parser generator is a utility for generating the source code of a parser, interpreter (computer software) or Compiler from an annotated language description in the form of a formal grammar (usually in Backus-Naur form) plus code that is associated with each of the rules of the grammar that should be executed when these rules are applied by the parser. These pieces of code are sometimes referred to as semantic action routines since they define the semantics of the syntactic structure that is analysed by the parser. Depending upon the type of parser that should be generated, these routines may construct a parse tree (or Abstract syntax tree), or generate executable code directly.

= History =

The first Compiler Compiler to use that name was written by Tony Brooker in 1960 and was used to create compilers for the Atlas Computer (Manchester) computer at the University of Manchester, including the Atlas Autocode compiler. However it was rather different from modern compiler compilers, and today would probably be described as lying somewhere between a highly customisable generic compiler and an extensible-syntax language. The name compiler compiler was far more appropriate for Brooker s system than it is for most modern compiler compilers, which are more accurately described as mere parser generators. It is almost certain that the Compiler Compiler name has entered common use due to Yacc rather than Brooker s work being remembered.

Other examples of parser generators in the yacc vein are .

= Types of compiler-compilers =

Compiler Compilers exist in many flavors, including bottom-up rewrite machine generators (see [http://jburg.sourceforge.net/ JBurg]) used to tile syntax trees according to a rewrite grammar for code generation, and attribute grammar parser generators (see [http://www.antlr.org/ Antlr] that can be used for simultaneous type checking, constant propagation, and more during the parsing stage).

= List of compiler-compilers (incomplete) =

= See also =

  • GNU bison
  • Lex/Yacc
  • = External links =

    *[http://www.computer50.org/mark1/gethomas/manchester_autocodes.html Brooker Autocodes]

    = References =