Content deleted Content added
Reverted 1 edit by Solidmiki21 (talk): 'object language' is the correct term here, metalanguage is not Tags: Twinkle Undo Disambiguation links added |
Citation bot (talk | contribs) Alter: isbn, title, template type. Add: chapter-url, chapter. Removed or converted URL. Upgrade ISBN10 to 13. | Use this bot. Report bugs. | Suggested by Abductive | #UCB_webform 3071/3824 |
||
Line 6:
In [[computer science]], a '''compiler-compiler''' or '''compiler generator''' is a programming tool that creates a [[parsing|parser]], [[interpreter (computer software)|interpreter]], or [[compiler]] from some form of formal description of a [[programming language]] and machine.
The most common type of compiler-compiler is more precisely called a '''parser generator'''<ref>{{Cite book |url=https://www.worldcat.org/oclc/70775643 |title=Compilers : principles, techniques, & tools |date=2007 |others=Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Alfred V. Aho |isbn=978-0-321-48681-
The input of a parser generator is a [[formal grammar|grammar]] file, typically written in [[Backus–Naur form]] (BNF) or [[extended Backus–Naur form]] (EBNF) that defines the [[Syntax (programming languages)|syntax]] of a target programming language.
Line 78:
In 1964, System Development Corporation began a major effort in the development of metacompilers. This effort includes powerful metacompilers, Bookl, and Book2 written in [[Lisp (programming language)|Lisp]] which have extensive tree-searching and backup ability. An outgrowth of one of the [[AN/FSQ-32|Q-32]] systems at SDC is Meta 5.<ref name=Oppenheim/> The Meta 5 system incorporates backup of the input stream and enough other facilities to parse any context-sensitive language. This system was successfully released to a wide number of users and had many string-manipulation applications other than compiling. It has many elaborate push-down stacks, attribute setting and testing facilities, and output mechanisms. That Meta 5 successfully translates [[JOVIAL]] programs to [[PL/I]] programs demonstrates its power and flexibility.
Robert McClure at [[Texas Instruments]] invented a compiler-compiler called [[TMG (language)|TMG]] (presented in 1965). TMG was used to create early compilers for programming languages like [[B (programming language)|B]], [[PL/I]] and [[ALTRAN]]. Together with metacompiler of Val Schorre, it was an early inspiration for the last chapter of [[Donald Knuth]]'s ''[[The Art of Computer Programming]]''.<ref>{{cite
The LOT system was developed during 1966 at Stanford Research Institute and was modeled very closely after Meta II.<ref name="Kirkleyl"/> It had new special-purpose constructs allowing it to generate a compiler which could in turn, compile a subset of PL/I. This system had extensive statistic-gathering facilities and was used to study the characteristics of top-down analysis.
|