Context-free language explained
In formal 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
Context-free grammar
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
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
An example 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
. This language is not regular. It is accepted by the pushdown automaton
where
is defined as follows:
[1] \begin{align}
\delta(q0,a,z)&=(q0,az)\\
\delta(q0,a,a)&=(q0,aa)\\
\delta(q0,b,a)&=(q1,\varepsilon)\\
\delta(q1,b,a)&=(q1,\varepsilon)\\
\delta(q1,\varepsilon,z)&=(qf,\varepsilon)
\end{align}
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.
Dyck language
The language of all properly matched parentheses is generated by the grammar
S\toSS~|~(S)~|~\varepsilon
.
Properties
Context-free parsing
See main article: Parsing.
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] 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.
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.
See also parsing expression grammar as an alternative approach to grammar and parser.
Closure properties
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:
of
L and
P
of
L and
P
of
L
of
L under a homomorphism
of
L under an inverse homomorphism
- the circular shift of L (the language
)
- the prefix closure of L (the set of all prefixes of strings from L)
- the quotient L/R of L by a regular language R
Nonclosure under intersection, complement, and difference
The context-free languages are not closed under intersection. This can be seen by taking the languages
and
, which are both context-free.
[3] Their intersection is
A\capB=\{anbncn\midn\geq0\}
, 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:
A\capB=\overline{\overline{A}\cup\overline{B}}
. In particular, context-free language cannot be closed under difference, since complement can be expressed by difference:
\overline{L}=\Sigma*\setminusL
.
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.
Decidability
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:
?
? However, the intersection of a context-free language and a
regular language is context-free, hence the variant of the problem where
B is a regular grammar is decidable (see "Emptiness" below).
? Again, the variant of the problem where
B is a regular grammar is decidable, while that where
A is regular is generally not.
?
a regular language?
- Ambiguity: is every grammar for
ambiguous?
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.
According to Hopcroft, Motwani, Ullman (2006), 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.
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. 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.
[4] References
Works cited
- Yehoshua. Bar-Hillel . Yehoshua Bar-Hillel. Micha Asher . Perles . Eli . Shamir . On Formal Properties of Simple Phrase-Structure Grammars. Zeitschrift fΓΌr Phonetik, Sprachwissenschaft und Kommunikationsforschung. 1961. 14. 2. 143β172.
- Web site: Beigel. Richard. Gasarch. William. William Gasarch. 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. https://web.archive.org/web/20141212060332/http://www.cs.umd.edu/~gasarch/BLOGPAPERS/cfg.pdf . 2014-12-12 . live. 2020-06-06. University of Maryland Department of Computer Science.
- Knuth . D. E. . Donald Knuth . On the translation of languages from left to right . 10.1016/S0019-9958(65)90426-2 . Information and Control . 8 . 6 . 607β639 . July 1965 .
- Lillian . Lee . Lillian Lee (computer scientist) . Fast Context-Free Grammar Parsing Requires Fast Boolean Matrix Multiplication . J ACM . January 2002 . 49 . 1 . 1β15 . https://web.archive.org/web/20030427152836/http://www.cs.cornell.edu/home/llee/papers/bmmcfl-jacm.pdf . 2003-04-27 . live . 10.1145/505241.505242 . cs/0112018. 1243491 .
- Book: Salomaa, Arto . Arto Salomaa . Formal Languages . ACM Monograph Series . Academic Press . New York . 1973 . 978-0126157505.
- Note on the Boolean Properties of Context Free Languages . https://web.archive.org/web/20181126005901/https://core.ac.uk/download/pdf/82210847.pdf . 2018-11-26 . live . Stephen . Scheinberg . Information and Control . 3 . 372-375 . 1960 . 4 . 10.1016/s0019-9958(60)90965-7. free .
- Leslie G. . Valiant . Leslie Valiant. General context-free recognition in less than cubic time . Journal of Computer and System Sciences . April 1975 . 10 . 2 . 308β315 . 10.1016/s0022-0000(75)80046-8 . free .
Further reading
- Book: Jean-Michel . Autebert . Jean . Berstel . Luc . Boasson . Handbook of Formal Languages . https://web.archive.org/web/20110516030515/http://www-igm.univ-mlv.fr/%7Eberstel/Articles/1997CFLPDA.pdf . 2011-05-16 . live . Context-Free Languages and Push-Down Automata . G. Rozenberg . A. Salomaa . 1 . Springer-Verlag . 1997 . 111β174.
- Book: Ginsburg, Seymour . Seymour Ginsburg . The Mathematical Theory of Context-Free Languages . 1966 . McGraw-Hill . New York, NY, USA.
Notes and References
- meaning of
's arguments and results:
\delta(state1,read,pop)=(state2,push)
- 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: S β Sc | aTb | Ξ΅; T β aTb | Ξ΅. The grammar for B is analogous.
- Web site: How to prove that a language is not context-free?. Stack Exchange.