Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Deterministic context-free grammar

From Wikipedia, the free encyclopedia

Informal grammar theory, thedeterministic context-free grammars (DCFGs) are aproper subset of thecontext-free grammars. They are the subset of context-free grammars that can be derived fromdeterministic pushdown automata, and they generate thedeterministic context-free languages. DCFGs are alwaysunambiguous, and are an important subclass of unambiguous CFGs; there are non-deterministic unambiguous CFGs, however.

DCFGs are of great practical interest, as they can be parsed inlinear time and in fact a parser can be automatically generated from the grammar by aparser generator. They are thus widely used throughout computer science. Various restricted forms of DCFGs can be parsed by simpler, less resource-intensive parsers, and thus are often used. These grammar classes are referred to by the type of parser that parses them, and important examples areLALR,SLR, andLL.

History

[edit]

In the 1960s, theoretical research in computer science onregular expressions andfinite automata led to the discovery thatcontext-free grammars are equivalent to nondeterministicpushdown automata.[1][2][3] These grammars were thought to capture the syntax of computer programming languages. The first high-level computer programming languages were under development at the time (seeHistory of programming languages) and writingcompilers was difficult. But usingcontext-free grammars to help automate the parsing part of the compiler simplified the task. Deterministic context-free grammars were particularly useful because they could be parsed sequentially by adeterministic pushdown automaton, which was a requirement due to computer memory constraints.[4] In 1965,Donald Knuth invented theLR(k) parser and proved that there exists an LR(k) grammar for every deterministic context-free language.[5] This parser still required a lot of memory. In 1969Frank DeRemer invented theLALR andSimple LR parsers, both based on the LR parser and having greatly reduced memory requirements at the cost of less language recognition power. The LALR parser was the stronger alternative.[6] These two parsers have since been widely used in compilers of many computer languages. Recent research has identified methods by which canonical LR parsers may be implemented with dramatically reduced table requirements over Knuth's table-building algorithm.[7]

See also

[edit]

References

[edit]
  1. ^Chomsky, Noam (1962). "Context Free Grammars and Pushdown Storage".Quarterly Progress Report, MIT Research Laboratory in Electronics.65:187–194.
  2. ^Evey, R.J. (1963). "Application of Pushdown-Store Machines".1963 AFIPS Proceedings of the Fall Joint Computer Conference:215–227.
  3. ^Schützenberger, Marcel Paul (1963)."On Context-Free Languages and Push-Down Automata".Information and Control.6 (3):246–264.doi:10.1016/s0019-9958(63)90306-1.
  4. ^A. Salomaa; D. Wood; S. Yu, eds. (2001).A Half-Century of Automata Theory. World Scientific Publishing. pp. 38–39.
  5. ^Knuth, D. E. (July 1965)."On the translation of languages from left to right".Information and Control.8 (6):607–639.doi:10.1016/S0019-9958(65)90426-2.
  6. ^Franklin L. DeRemer (1969)."Practical Translators for LR(k) languages"(PDF). MIT, PhD Dissertation. Archived fromthe original(PDF) on 2012-04-05.
  7. ^X. Chen,Measuring and extending LR(1) parsing, University of Hawaii PhD dissertation, 2009.
Each category of languages, except those marked by a*, is aproper subset of the category directly above it.Any language in each category is generated by a grammar and by an automaton in the category in the same line.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Deterministic_context-free_grammar&oldid=1235087966"
Category:

[8]ページ先頭

©2009-2025 Movatter.jp