Properties of Context-Free Languages

1 / 34

Properties of Context-Free Languages - PowerPoint PPT Presentation

CS 3240 – Chapter 8. Properties of Context-Free Languages. Query. Is a n b n c n context-free?. Non-Context-Free Languages. a n b n c n is not context-free Neither is ww although ww R is! We will develop a pumping lemma for context-free languages (oh joy! :-)

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

PowerPoint Slideshow about ' Properties of Context-Free Languages' - brent

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
CS 3240 – Chapter 8

Properties of Context-Free Languages

Query
• Is anbncn context-free?

CS 3240 - Properties of Context-Free Languages

Non-Context-Free Languages
• anbncn is not context-free
• Neither is ww
• although wwR is!
• We will develop a pumping lemma for context-free languages
• (oh joy! :-)
• as before, can only be used to show that a language is not CF

CS 3240 - Properties of Context-Free Languages

Properties of Infinite CF Languages
• How can you tell by looking at a CFG whether its language is infinite or not?

CS 3240 - Properties of Context-Free Languages

An Infinite CFL
• S → aaB
• A → bBb | λ
• B → Aa
• Consider the derivation:S ⇒ aaB ⇒aaAa ⇒ aabBba ⇒ aabAaba⇒ aabbBbaba ⇒ aabbAababa …

CS 3240 - Properties of Context-Free Languages

Infinite CFLs
• Grammars for infinite CFL must reuse a variable in some derivation
• S ⇒* uAz ⇒* uvAyz
• That is, A ⇒* vAy
• u,v,y,z,are derivable strings of characters and variables
• We can repeat the same choices for A again:
• S ⇒* uAz ⇒* uvAyz ⇒* uvvAyyz
• And again and again… (finally stopping with x)
• S ⇒*uvnAynz ⇒* uvnxynz
• So for any sufficiently long string, s, we have
• s = uvnxynz

CS 3240 - Properties of Context-Free Languages

What Will Force a Variable Repeat?
• Hint: think of derivation trees, and the relationship between the depth and the number of leaves in a tree

CS 3240 - Properties of Context-Free Languages

Reminder: Binary Trees
• If a complete binary has depth d, how many leaves does it have?

CS 3240 - Properties of Context-Free Languages

And My Point?
• Consider a path from the root of a tree (S) to a leaf.
• It is all variables, except for the leaf
• The longer the string, the deeper the path
• Eventually a variable must be repeated!

CS 3240 - Properties of Context-Free Languages

The Pumping Lemma for CFLs
• Based on a repeated variable (a type of loop)
• For sufficiently-long strings (≥ p = 2v), some variable will be a descendant of itself in the parse
• Every string of sufficient length from an infinite CFL can be written as uvxyz, and pumped as uvixyiz, i ≥ 0:
• |v| + |y| > 0
• |vxy| <= p
anbnan is not context-free
• Intuitively: We’ve already used up the stack to coordinate the anbn prefix
• Must consider all cases for a proof
• CFLPL-8.PDF
ww is not Context Free
• Use the pumping lemma with apbpapbp
Closure Properties of CFLsSection 8.2
• (N)CFLs are closed under:
• Union
• Concatenation
• Kleene Star
• “Regular Intersection” (CF ∩ R = CF)
• (N)CFLs are not closed under:
• intersection
• complement

CS 3240 - Properties of Context-Free Languages

Union of CFLs
• Let S1 be the start symbol for L1, and S2 for L2
• Just have a new start symbol point to the OR of the old ones:
• S => S1 | S2S1 => …S2 => …
Concatenation of CFLs
• S => S1S2S1 => …S2 => …
Kleene Star of CFLs
• Rename the old start variable to S1
• S => S1S | λS1 => …
Intersection of CFLs
• Let L1 = anbncm
• The concatenation of anbnand cm
• Let L2 = anbmcm
• The concatenation of an and bmcm
• These are both context-free
• L1∩ L2 = anbncn
• We already showed this is not context free
“Regular” Intersection
• Let R be a regular language and L a context-free language
• The R∩Lis context-free
• Why?

CS 3240 - Properties of Context-Free Languages

Regular Intersection Exampleanbn ∩ EVEN-EVEN

CS 3240 - Properties of Context-Free Languages

Combine the TablesIn the Usual Way

CS 3240 - Properties of Context-Free Languages

Resulting Intersection

jail

CS 3240 - Properties of Context-Free Languages

Complement of CFLs
• Proof by contradiction, derived from the formula for intersection:L1∩ L2 = (L1\' + L2\')\'Since the intersection is not closed, but union is, then the complement cannot be.
• (Otherwise we could compute the intersection, which in general is not CF)
Complement of CFLsAnother Look
• Non-determinism is the problem
• Remember NFAs?
• To find the complement, we needed to first convert to a DFA, then flip the states
• Since some CFLs are inherently non-deterministic, they have no deterministic equivalent to “flip”
• But… what does this say about deterministic CFLs?

CS 3240 - Properties of Context-Free Languages

Closure Properties of DCFLs
• DCFLs are closed under:
• Complement!
• Concatenation
• Kleene Star
• “Regular Intersection” (CF ∩ R = CF)
• DCFLs are not closed under:
• Intersection
• Union!

CS 3240 - Properties of Context-Free Languages

DCFLs not Closed under Union!
• Consider:L1 = {aibjck | i = j}L2 = {aibjck | j = k}
• Each of these is DCF
• (Easy to show – your 7.1 homework was similar)
• The union is not!
• It requires non-determinism
• It’s still context-free, but not Deterministic CF
Another Interesting FactFYI
• DCFLs always have an associated CFG that is unambiguous
Closure Properties of CFLsSummary
• Closed under Union, Concatenation, Kleene Star
• Not closed under intersection, complement
• CFL ∩ Regular = CFL
• DCFLs are closed under complement
• But not union!
• Swap those two
Decidability
Undecidable Questions
• Do 2 arbitrary CFGs generate the same language?
• Is a CFG ambiguous?
• Is a given NCFL’s complement also CF?
• Is the intersection of 2 given CFLs CF?
• Do 2 CFLs have a common word?
Decidable Questions
• Is a non-terminal ever used in a productive derivation?
• Draw the connectivity graph ✔
• Does a CFG generate any words?
• Substitute each “terminating production” (RHS is all terminals) throughout and see what happens
• “back substitution method”
• Is a CFL finite or infinite?
• Procedure to detect useful, repeated variables
ExampleIs a string generated?

S → aA | bB | λ

A → a | aCA | bDA | bBa | aAa

B → b | aAb | aCB | bDB | bBb

C → aCC | bDC

D → aCD | bDD

First remove useless variables…

CS 3240 - Properties of Context-Free Languages

ExampleIs a string generated?

S → aA | bB | λ

A → a | bBa | aAa

B → b | aAb | bBb

Pick a non-empty, terminal rule: A → a

Back-substitute that rule:

S → aa | bB | λ

A → a | bBa | aaa

B → b | aab | bBb

Keep going until we have S → <terminal string>, or we can’t continue. We have S → aa. STOP.

CS 3240 - Properties of Context-Free Languages

ExampleIs the language infinite?

S → aA | bB | λ

A → a | bBa | aAa

B → b | aAb | bBb

All variables are useful. Let’s see if A is repeated, for instance.

First, mark all A’s on the right:

S → aA | bB | λ

A → a | bBa | aAa

B → b | aAb | bBb

Now mark all variables affected on the left:

S → aA | bB | λ

A → a | bBa | aAa

B → b | aAb | bBb

Since A was marked on the left, it is repeated.

CS 3240 - Properties of Context-Free Languages

ExampleTest for non- emptiness, infinite-ness

S ➞ aA | SB Mark on left:

A ➞ baB | λ

B ➞ bB | bA S ➞ aA | SB

A ➞ baB | λ

Mark A’s on right: B ➞ bB | bA

S ➞ aA | SB A was marked on left. DONE.

A ➞ baB | λ

B ➞ bB | bA

Now mark corresponding variables on left:

S ➞ aA | SB

A ➞ baB | λ

B ➞ bB | bA

Repeat marking on right:

S ➞ aA | SB

A ➞ baB | λ

B ➞ bB | bA

CS 3240 - Properties of Context-Free Languages