A compiler-compiler is a utility for generating the source code of a parser, interpreter or compiler from an annotated language description (usually in BNF). Most so called compiler-compilers are really just parser generators.

The first compiler-compiler to be called a Compiler Compiler was written by Tony Booker in 1960 and used to create compilers for the Ferranti Atlas computer at the University of Manchester. However it was rather different from modern compiler compilers, and today would probably be described as a highly customisable generic compiler rather than as a compiler generator. Other examples of compiler compilers are GNU bison, Eli, FSL, META 5, MUG2, Parsley, Pre-cc, Yacc, SableCC and JavaCC.


This article (or an earlier version of it) contains material from FOLDOC, used with permission.