1 CS Master Introduction to the Theory of Computation CS Master - - PDF document

1
SMART_READER_LITE
LIVE PREVIEW

1 CS Master Introduction to the Theory of Computation CS Master - - PDF document

CS Master Introduction to the Theory of Computation CS Master Introduction to the Theory of Computation Outline (Sipser 2.1 2.3) Lecture 4 1. Motivating example 2. CFG Definition Context-free grammars 3. Parse trees, ambiguity


slide-1
SLIDE 1

1

Jan Maluszynski - HT 2007 4.1 CS Master – Introduction to the Theory of Computation

Lecture 4 Context-free grammars Jan Maluszynski, IDA, 2007

http://www.ida.liu.se/~janma

janma @ ida.liu.se

Jan Maluszynski - HT 2007 4.2 CS Master – Introduction to the Theory of Computation

Outline (Sipser 2.1 – 2.3)

  • 1. Motivating example
  • 2. CFG Definition
  • 3. Parse trees, ambiguity
  • 4. Push-down automata
  • 5. Equivalence CFG – PDA
  • 6. Pumping lemma for CFG

Jan Maluszynski - HT 2007 4.3 CS Master – Introduction to the Theory of Computation

Motivating example A → (A) A → ε Gramatical rules used for rewriting: A ⇒ (A) ⇒ () A ⇒ (A) ⇒ ((A)) ⇒ (((A))) ⇒ ((())) L(A) : all terminal strings derivable L(A) is not regular!

Jan Maluszynski - HT 2007 4.4 CS Master – Introduction to the Theory of Computation

Context Free Grammars A CFG : (V, Σ, R, S)

  • V a finite set of nonterminals (variables)
  • Σ a finite set of terminals, disjoint with V
  • R a finite set of rules of the form

X → w where X∈V and w ∈ (V+ Σ)*

  • S∈V is a start nonterminal

Jan Maluszynski - HT 2007 4.5 CS Master – Introduction to the Theory of Computation

Context-Free Languages A CFG G: (V, Σ, R, S) L(G) denotes the language of G: the set of all terminal strings derivable in G from V A language is a context-free language iff it is the language of a CFG

Jan Maluszynski - HT 2007 4.6 CS Master – Introduction to the Theory of Computation

Ambiguity E → E+E E → E#E E → (E) E → a

slide-2
SLIDE 2

2

Jan Maluszynski - HT 2007 4.7 CS Master – Introduction to the Theory of Computation

Chomsky Normal Form G is in CNF if every rule is of the form A → BC or A → a In addition, there may be the rule S → ε Where S is the start nonterminal Every CFL is generated by a CNF grammar. An application: the CYK parsing algorithm

Jan Maluszynski - HT 2007 4.8 CS Master – Introduction to the Theory of Computation

Cocke-Younger- Kasami parsing G CNF grammar w string w = s1 s2 …..sn CYK checks if w is in L(G) by constructing a table T[i,j], 1≤i≤j≤|w| where: T[i,j] = { X | X => si si+1 …..si+j} Thus w is in L(G) iff S is in T[1,|w|]

Jan Maluszynski - HT 2007 4.9 CS Master – Introduction to the Theory of Computation

CYK table Construct T[i,1] for i = 1,…, |w| X is in T[i,1] iff X → si Having T[i,j] and T[i+j,k] construct T[i,j+k]: Y is in T[i,j+k] iff for some X in T[i,j] , Z in T[i+j,k] Y → X Z

Jan Maluszynski - HT 2007 4.10 CS Master – Introduction to the Theory of Computation

CYK (transposed) table example S → AB | BC A → BA | a B → CC | b C → AB | a b a a b a i = 1 2 3 4 5 substrings: 1 B A,C A,C B A,C length 1 2 S,A B S,C S,A length 2 3 - B B length 3 4 - S,A,C length 4 5 S,A,C length 5 e.g. B∈T[2,3] since B→CC, C∈T[2,1] C∈T[2+1,2]

Jan Maluszynski - HT 2007 4.11 CS Master – Introduction to the Theory of Computation

Pushdown Automaton FA extended with a stack Top stack symbol is an argument of a transition can be accessed and replaced by a new one

Jan Maluszynski - HT 2007 4.12 CS Master – Introduction to the Theory of Computation

(Nondeterministic) Pushdown Automaton (Q, Σ, Γ, δ, q0 ,F) Q states Σ Input alphabet Γ Stack alphabet δ: (Q × (Σ∪{ε}) × (Γ∪{ε})) → P(Q × (Γ∪{ε}) q0∈Q initial state F⊆Q final states

slide-3
SLIDE 3

3

Jan Maluszynski - HT 2007 4.13 CS Master – Introduction to the Theory of Computation

PDA vs. CFG’s Theorem: A language is context-free iff it is recognized by a pushdown automaton. (p.117) CFG → PDA : Idea: simulate derivations on the stack (see example) PDA → CFG Idea: Nonterminals Xpq derive all strings that bring PDA from p to q starting and ending with empty stack (details see pp121-124).

Jan Maluszynski - HT 2007 4.14 CS Master – Introduction to the Theory of Computation

Regular Languages are Context-free Every Regular Language is Context-free: FA is a special case of PDA Regular grammar: Each rule of the form: A → aB, A →a or A → ε A CF language L is regular iff there exists a regular CFG G such that L = L(G).

Jan Maluszynski - HT 2007 4.15 CS Master – Introduction to the Theory of Computation

Pumping lemma for CFL a + a # a a+…a+ a # a…# a

Jan Maluszynski - HT 2007 4.16 CS Master – Introduction to the Theory of Computation

Pumping Lemma for CFL For any CFL L there is p such that If s ∈ L and |s| ≥ p then s=uvxyz for some u,v,x,y,z satisfying:

  • For each i ≥0 uvixyiz ∈L
  • |vy|>0
  • |vxy| ≤ p

Used for proving that a language is not a CFL