- By
**brent** - Follow User

- 165 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about ' Properties of Context-Free Languages' - brent

**An Image/Link below is provided (as is) to download presentation**

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

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

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

- Unanswerable questions
- Answerable questions

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

Download Presentation

Connecting to Server..