Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 9UofH - COSC 3340 - Dr. Verma 1 COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma Lecture 9.

Similar presentations


Presentation on theme: "Lecture 9UofH - COSC 3340 - Dr. Verma 1 COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma Lecture 9."— Presentation transcript:

1 Lecture 9UofH - COSC 3340 - Dr. Verma 1 COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma Lecture 9

2 UofH - COSC 3340 - Dr. Verma 2 Context Free Languages Strictly bigger class than regular languages regular languages context-free languages    {arithmetic expressions} {ww R |w in {a,b}*} {a n b n | n >= 0}

3 Lecture 9UofH - COSC 3340 - Dr. Verma 3 A simple grammar for some sentences   Alice | John  eats | eat | ate  apple | orange | mango The goal is to generate sentences in English over the English alphabet. Example:   Alice  Alice eats  Alice eats apple

4 Lecture 9UofH - COSC 3340 - Dr. Verma 4 Context-free grammars (CFGs) Informally, a CFG is a finite set of rules. Each rule is of the form:  string over terminals and nonterminals. Terminals:- symbols that the desired strings should contain. – Example: {a...z, ' ',...} Nonterminals:- symbols to which rules can be applied. – Example: {,,...} A special nonterminal is called start symbol. – Example:

5 Lecture 9UofH - COSC 3340 - Dr. Verma 5 A grammar for arithmetic expressions E  E + E | E * E | (E) | x | y Start symbol - E. Terminals? – Ans: {x, y, *, +, (, ), ' '} Nonterminals? – Ans: {E} A derivation: E  E + E  E + E * E  x + E * E  x + x * E  x + x * y

6 Lecture 9UofH - COSC 3340 - Dr. Verma 6 Another grammar for arithmetic expr’s E  E + T | T T  T * F | F F  (E) | x | y A derivation for x + x * y ? E  E + T  T + T  F + T  x + T  x + T * F  x + F * F  x + x * F  x + x * y Why two different grammars for arithmetic expressions?

7 Lecture 9UofH - COSC 3340 - Dr. Verma 7 Context Free Grammar Definition A CFG G = (V, T, P, S) where V  T = , – V -- A finite set of symbols called nonterminals – T -- A finite set of symbols called terminals – P is a finite subset of V X (V  T)* called productions or rules – We write A  w whenever (A, w)  P. – S  V -- start symbol

8 Lecture 9UofH - COSC 3340 - Dr. Verma 8 Derivations and L(G) One step derivation: – u  v if u = xAy, v = xwy and A  w in P 0 or more steps derivation: – u  * v if u = u 0  u 1 ....  u n = v (n  0) L(G) = { w in T * | S  * w }. A language L is context-free if there is a CFG G with L(G) = L

9 Lecture 9UofH - COSC 3340 - Dr. Verma 9 Example: S  aSb |  Derivation: S  aSb  aaSbb  aabb. L(G) = ? Ans: {a n b n | n  0 }

10 Lecture 9UofH - COSC 3340 - Dr. Verma 10 Parse trees All derivations can be shown in the form of trees. Order of rule application is lost. S abS abS 

11 Lecture 9UofH - COSC 3340 - Dr. Verma 11 Parse trees [contd.] In general, if we apply rule A  w 0 w 1...w n, then we add nodes for w i as children of node labeled A A w0w0 w1w1 w2w2 wnwn   

12 Lecture 9UofH - COSC 3340 - Dr. Verma 12 E  E + E  E + E * E  x + E * E  x + x * E  x + x * y E EE+ E*E x x y

13 Lecture 9UofH - COSC 3340 - Dr. Verma 13 E  E + T  T + T  F + T  x + T  x + T * F  x + F * F  x + x * F  x + x * y E ET+ T * F T F F x x y

14 Lecture 9UofH - COSC 3340 - Dr. Verma 14 Leftmost and Rightmost Derivations Derivation is leftmost if the nonterminal replaced in every step is the leftmost nonterminal. Consider E  E + E  E + x. – Is it leftmost derivation? Derivation is rightmost if the nonterminal replaced in every step is the rightmost nonterminal. Consider E  E + E  x + E. – Is it rightmost derivation?

15 Lecture 9UofH - COSC 3340 - Dr. Verma 15 Ambiguity A CFG is ambiguous if there is a string with at least two leftmost derivations – Example: E  E + E | E * E | (E) | x | y is ambiguous A CFL is inherently ambiguous if every CFG that generates it is ambiguous. – Example: {a n b n c m | n, m  0}  {a m b n c n | n, m  0}


Download ppt "Lecture 9UofH - COSC 3340 - Dr. Verma 1 COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma Lecture 9."

Similar presentations


Ads by Google