Context-free language
Template:One source In formal language theory, a context-free language (CFL) is a language generated by some context-free grammar (CFG). Different CF grammars can generate the same CF language, or conversely, a given CF language can be generated by different CF grammars. It is important to distinguish properties of the language (intrinsic properties) from properties of a particular grammar (extrinsic properties).
The set of all context-free languages is identical to the set of languages accepted by pushdown automata, which makes these languages amenable to parsing. Indeed, given a CFG, there is a direct way to produce a pushdown automaton for the grammar (and corresponding language), though going the other way (producing a grammar given an automaton) is not as direct.
Context-free languages have many applications in programming languages; for example, the language of all properly matched parentheses is generated by the grammar . Also, most arithmetic expressions are generated by context-free grammars.
Examples
An archetypical context-free language is , the language of all non-empty even-length strings, the entire first halves of which are 's, and the entire second halves of which are 's. is generated by the grammar , and is accepted by the pushdown automaton where is defined as follows:
Unambiguous CFLs are a proper subset of all CFLs: there are inherently ambiguous CFLs. An example of an inherently ambiguous CFL is the union of with . This set is context-free, since the union of two context-free languages is always context-free. But there is no way to unambiguously parse strings in the (non-context-free) subset which is the intersection of these two languages.Template:Sfn
Languages that are not context-free
The set is a context-sensitive language, but there does not exist a context-free grammar generating this language.Template:Sfn So there exist context-sensitive languages which are not context-free. To prove that a given language is not context-free, one may employ the pumping lemma for context-free languages or a number of other methods, such as Ogden's lemma or Parikh's theorem.[1]
Closure properties
Context-free languages are closed under the following operations. That is, if L and P are context-free languages, the following languages are context-free as well:
- the union of L and P
- the reversal of L
- the concatenation of L and P
- the Kleene star of L
- the image of L under a homomorphism
- the image of L under an inverse homomorphism
- the cyclic shift of L (the language )
Context-free languages are not closed under complement, intersection, or difference. However, if L is a context-free language and D is a regular language then both their intersection and their difference are context-free languages.
Nonclosure under intersection and complement
The context-free languages are not closed under intersection. This can be seen by taking the languages and , which are both context-free.[2] Their intersection is , which can be shown to be non-context-free by the pumping lemma for context-free languages.
Context-free languages are also not closed under complementation, as for any languages A and B: .
Decidability properties
The following problems are undecidable for arbitrary context-free grammars A and B:
- Equivalence: Given two context-free grammars A and B, is ?
- Intersection Emptiness: Given two context-free grammars A and B, is ? However, the intersection of a context-free language and a regular language is context-free,[3] and the variant of the problem where B is a regular grammar is decidable.
- Containment: Given a context-free grammar A, is ? Again, the variant of the problem where B is a regular grammar is decidable.
- Universality: Given a context-free grammar A, is ?
The following problems are decidable for arbitrary context-free languages:
- Emptiness: Given a context-free grammar A, is ?
- Finiteness: Given a context-free grammar A, is finite?
- Membership: Given a context-free grammar G, and a word , does ? Efficient polynomial-time algorithms for the membership problem are the CYK algorithm and Earley's Algorithm.
Parsing
Determining an instance of the membership problem; i.e. given a string , determine whether where is the language generated by some grammar ; is also known as parsing.
Formally, the set of all context-free languages is identical to the set of languages accepted by pushdown automata (PDA). Parser algorithms for context-free languages include the CYK algorithm and the Earley's Algorithm.
A special subclass of context-free languages are the deterministic context-free languages which are defined as the set of languages accepted by a deterministic pushdown automaton and can be parsed by a LR(k) parser.[4]
See also parsing expression grammar as an alternative approach to grammar and parser.
See also
Notes
43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.
References
- 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534 - 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534 - 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534 - 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534 Chapter 2: Context-Free Languages, pp. 91–122. - Jean-Michel Autebert, Jean Berstel, Luc Boasson, Context-Free Languages and Push-Down Automata, in: G. Rozenberg, A. Salomaa (eds.), Handbook of Formal Languages, Vol. 1, Springer-Verlag, 1997, 111-174.
Other Sports Official Alfonzo from Chase, has hobbies and interests for instance fast, property developers in new industrial launch singapore and aquariums. In recent times has visited Monasteries of Haghpat and Sanahin.
- ↑ How to prove that a language is not context-free?
- ↑ A context-free grammar for the language A is given by the following production rules, taking S as the start symbol: S → Sc | aTb | ε; T → aTb | ε. The grammar for B is analogous.
- ↑ Template:Harvtxt, p. 59, Theorem 6.7
- ↑ Template:Cite doi