Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Background  



1.1  Context-free grammar  





1.2  Automata  







2 Examples  



2.1  Dyck language  







3 Properties  



3.1  Context-free parsing  





3.2  Closure properties  



3.2.1  Nonclosure under intersection, complement, and difference  







3.3  Decidability  





3.4  Languages that are not context-free  







4 Notes  





5 References  



5.1  Works cited  







6 Further reading  














Context-free language






Bosanski
Català
Čeština
Deutsch
فارسی
Français

Hrvatski
Italiano
עברית
Nederlands

Norsk bokmål
Norsk nynorsk
Polski
Português
Română
Српски / srpski
Srpskohrvatski / српскохрватски
Suomi

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Informal language theory, a context-free language (CFL), also called a Chomsky type-2 language, is a language generated by a context-free grammar (CFG).

Context-free languages have many applications in programming languages, in particular, most arithmetic expressions are generated by context-free grammars.

Background[edit]

Context-free grammar[edit]

Different context-free grammars can generate the same context-free language. Intrinsic properties of the language can be distinguished from extrinsic properties of a particular grammar by comparing multiple grammars that describe the language.

Automata[edit]

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. Further, for a given CFG, there is a direct way to produce a pushdown automaton for the grammar (and thereby the corresponding language), though going the other way (producing a grammar given an automaton) is not as direct.

Examples[edit]

An example context-free language is , the language of all non-empty even-length strings, the entire first halves of which are a's, and the entire second halves of which are b's. L is generated by the grammar . This language is not regular. It is accepted by the pushdown automaton where is defined as follows:[note 1]

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.[1]

Dyck language[edit]

The language of all properly matched parentheses is generated by the grammar .

Properties[edit]

Context-free parsing[edit]

The context-free nature of the language makes it simple to parse with a pushdown automaton.

Determining an instance of the membership problem; i.e. given a string , determine whether where is the language generated by a given grammar ; is also known as recognition. Context-free recognition for Chomsky normal form grammars was shown by Leslie G. Valiant to be reducible to boolean matrix multiplication, thus inheriting its complexity upper bound of O(n2.3728596).[2][note 2] Conversely, Lillian Lee has shown O(n3−ε) boolean matrix multiplication to be reducible to O(n3−3ε) CFG parsing, thus establishing some kind of lower bound for the latter.[3]

Practical uses of context-free languages require also to produce a derivation tree that exhibits the structure that the grammar associates with the given string. The process of producing this tree is called parsing. Known parsers have a time complexity that is cubic in the size of the string that is parsed.

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 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.

Closure properties[edit]

The class of context-free languages is closed under the following operations. That is, if L and P are context-free languages, the following languages are context-free as well:

Nonclosure under intersection, complement, and difference[edit]

The context-free languages are not closed under intersection. This can be seen by taking the languages and , which are both context-free.[note 3] Their intersection is , which can be shown to be non-context-free by the pumping lemma for context-free languages. As a consequence, context-free languages cannot be closed under complementation, as for any languages A and B, their intersection can be expressed by union and complement: . In particular, context-free language cannot be closed under difference, since complement can be expressed by difference: .[12]

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.[13]

Decidability[edit]

In formal language theory, questions about regular languages are usually decidable, but ones about context-free languages are often not. It is decidable whether such a language is finite, but not whether it contains every possible string, is regular, is unambiguous, or is equivalent to a language with a different grammar.

The following problems are undecidable for arbitrarily given context-free grammars A and B:

The following problems are decidable for arbitrary context-free languages:

According to Hopcroft, Motwani, Ullman (2003),[25] many of the fundamental closure and (un)decidability properties of context-free languages were shown in the 1961 paper of Bar-Hillel, Perles, and Shamir[26]

Languages that are not context-free[edit]

The set is a context-sensitive language, but there does not exist a context-free grammar generating this language.[27] 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[26] or a number of other methods, such as Ogden's lemmaorParikh's theorem.[28]

Notes[edit]

  1. ^ meaning of 's arguments and results:
  • ^ In Valiant's paper, O(n2.81) was the then-best known upper bound. See Matrix multiplication#Computational complexity for bound improvements since then.
  • ^ A context-free grammar for the language A is given by the following production rules, taking S as the start symbol: SSc | aTb | ε; TaTb | ε. The grammar for B is analogous.
  • References[edit]

    1. ^ Hopcroft & Ullman 1979, p. 100, Theorem 4.7.
  • ^ Valiant, Leslie G. (April 1975). "General context-free recognition in less than cubic time" (PDF). Journal of Computer and System Sciences. 10 (2): 308–315. doi:10.1016/s0022-0000(75)80046-8.
  • ^ Lee, Lillian (January 2002). "Fast Context-Free Grammar Parsing Requires Fast Boolean Matrix Multiplication" (PDF). J ACM. 49 (1): 1–15. arXiv:cs/0112018. doi:10.1145/505241.505242. S2CID 1243491. Archived (PDF) from the original on 2003-04-27.
  • ^ 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.
  • ^ a b c Hopcroft & Ullman 1979, p. 131, Corollary of Theorem 6.1.
  • ^ Hopcroft & Ullman 1979, p. 142, Exercise 6.4d.
  • ^ Hopcroft & Ullman 1979, p. 131-132, Corollary of Theorem 6.2.
  • ^ Hopcroft & Ullman 1979, p. 132, Theorem 6.3.
  • ^ Hopcroft & Ullman 1979, p. 142-144, Exercise 6.4c.
  • ^ Hopcroft & Ullman 1979, p. 142, Exercise 6.4b.
  • ^ Hopcroft & Ullman 1979, p. 142, Exercise 6.4a.
  • ^ Stephen Scheinberg (1960). "Note on the Boolean Properties of Context Free Languages" (PDF). Information and Control. 3 (4): 372–375. doi:10.1016/s0019-9958(60)90965-7. Archived (PDF) from the original on 2018-11-26.
  • ^ Beigel, Richard; Gasarch, William. "A Proof that if L = L1 ∩ L2 where L1 is CFL and L2 is Regular then L is Context Free Which Does Not use PDA's" (PDF). University of Maryland Department of Computer Science. Archived (PDF) from the original on 2014-12-12. Retrieved June 6, 2020.
  • ^ Hopcroft & Ullman 1979, p. 203, Theorem 8.12(1).
  • ^ Hopcroft & Ullman 1979, p. 202, Theorem 8.10.
  • ^ Salomaa (1973), p. 59, Theorem 6.7
  • ^ Hopcroft & Ullman 1979, p. 135, Theorem 6.5.
  • ^ Hopcroft & Ullman 1979, p. 203, Theorem 8.12(2).
  • ^ Hopcroft & Ullman 1979, p. 203, Theorem 8.12(4).
  • ^ Hopcroft & Ullman 1979, p. 203, Theorem 8.11.
  • ^ Hopcroft & Ullman 1979, p. 205, Theorem 8.15.
  • ^ Hopcroft & Ullman 1979, p. 206, Theorem 8.16.
  • ^ Hopcroft & Ullman 1979, p. 137, Theorem 6.6(a).
  • ^ Hopcroft & Ullman 1979, p. 137, Theorem 6.6(b).
  • ^ John E. Hopcroft; Rajeev Motwani; Jeffrey D. Ullman (2003). Introduction to Automata Theory, Languages, and Computation. Addison Wesley. Here: Sect.7.6, p.304, and Sect.9.7, p.411
  • ^ a b Yehoshua Bar-Hillel; Micha Asher Perles; Eli Shamir (1961). "On Formal Properties of Simple Phrase-Structure Grammars". Zeitschrift für Phonetik, Sprachwissenschaft und Kommunikationsforschung. 14 (2): 143–172.
  • ^ Hopcroft & Ullman 1979.
  • ^ "How to prove that a language is not context-free?".
  • Works cited[edit]

  • Salomaa, Arto (1973). Formal Languages. ACM Monograph Series.
  • Further reading[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=Context-free_language&oldid=1219807375"

    Categories: 
    Formal languages
    Syntax
    Hidden categories: 
    Articles with short description
    Short description is different from Wikidata
    All articles with unsourced statements
    Articles with unsourced statements from December 2015
    Articles with NKC identifiers
     



    This page was last edited on 19 April 2024, at 23:25 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki