Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.1 Lecture 4 Context-free grammars Jan Maluszynski, IDA, 2007

Similar presentations


Presentation on theme: "CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.1 Lecture 4 Context-free grammars Jan Maluszynski, IDA, 2007"— Presentation transcript:

1 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.1 Lecture 4 Context-free grammars Jan Maluszynski, IDA, 2007 http://www.ida.liu.se/~janma janma @ ida.liu.se

2 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.2 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

3 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.3 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!

4 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.4 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

5 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.5 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 S A language is a context-free language iff it is the language of a CFG

6 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.6 Ambiguity E  E+E E  E#E E  (E) E  a

7 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.7 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

8 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.8 Cocke-Younger- Kasami parsing G CNF grammar w string w = s 1 s 2 …..s n 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 => s i s i+1 …..s i+j } Thus w is in L(G) iff S is in T[1,|w|]

9 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.9 CYK table Construct T[i,1] for i = 1,…, |w| X is in T[i,1] iff X  s i 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

10 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.10 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]

11 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.11 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

12 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.12 (Nondeterministic) Pushdown Automaton (Q, , , , q 0,F) Q states  Input alphabet  Stack alphabet  : (Q  (  {  })  (  {  }))  P (Q  (  {  }) q 0  Q initial state F  Q final states

13 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.13 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 X pq derive all strings that bring PDA from p to q starting and ending with empty stack (details see pp121-124).

14 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.14 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).

15 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.15 Pumping lemma for CFL a + a # a a+…a+ a # a…# a

16 CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.16 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 uv i xy i z  L |vy|>0 |vxy|  p Used for proving that a language is not a CFL


Download ppt "CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT 20074.1 Lecture 4 Context-free grammars Jan Maluszynski, IDA, 2007"

Similar presentations


Ads by Google