Presentation is loading. Please wait.

Presentation is loading. Please wait.

COSC 3340: Introduction to Theory of Computation

Similar presentations


Presentation on theme: "COSC 3340: Introduction to Theory of Computation"— Presentation transcript:

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

2 Chomsky Normal Form (CNF)
Rules of CFG G are in one of two forms: (i) A  a (ii) A  BC, B  S and C  S + Only one rule of the form S   is allowed if  in L(G). Easier to reason with in proofs Leads to more efficient algorithms Credited to Prof. Noam Chomsky at MIT Reading Assignment: Converting a CFG to CNF. Lecture 10 UofH - COSC Dr. Verma

3 Exercises Are the following CFG's in CNF? (i) S  aSb | 
(ii) S  aS | Sb |  (iii) S  AS | SB |  A  a B  b (iv) S  AS | SB A  a |  Lecture 10 UofH - COSC Dr. Verma

4 Closure properties of CFL's
CFL's are closed under: (i) Union (ii) Concatenation (iii) Kleene Star What about intersection and complement? Lecture 10 UofH - COSC Dr. Verma

5 The setting L1 = L(G1) where G1 = (V1, T, P1, S1) L2 = L(G2) where
Assume wlog that V1  V2 =  Lecture 10 UofH - COSC Dr. Verma

6 Closure under Union -- Example
L1 = { anbn | n  0 } L2 = { bnan | n  0 } G1 ? Ans: S1  aS1b |  G2 ? Ans: S2  bS2a |  How to make grammar for L1  L2 ? Ans: Idea: Add new start symbol S and rules S  S1 | S2 Lecture 10 UofH - COSC Dr. Verma

7 Closure under Union General construction
Let G = (V, T, P, S) where V = V1  V2  { S }, S  V1  V2 P = P1  P2  { S  S1 | S2 } Lecture 10 UofH - COSC Dr. Verma

8 Closure under concatenation Example
L1 = { anbn | n  0 } L2 = { bnan | n  0 } Is L1L2 = { anb{2n}an | n >= 0 } ? Ans: No! It is { anb{n+m}am | n, m  0 } How to make grammar for L1L2 ? Idea: Add new start symbol and rule S  S1S2 Lecture 10 UofH - COSC Dr. Verma

9 Closure under concatenation General construction
Let G = (V, T, P, S) where V = V1  V2  { S }, S  V1  V2 P = P1  P2  { S  S1S2 } Lecture 10 UofH - COSC Dr. Verma

10 Closure under kleene star Examples
L1 = {anbn | n  0} What is (L1)*? Ans: { a{n1}b{n1} ... a{nk}b{nk} | k  0 and ni  0 for all i } L2 = { a{n2} | n  1 } What is (L2)*? Ans: a*. Why? How to make grammar for (L1)*? Idea: Add new start symbol S and rules S  SS1 | . Lecture 10 UofH - COSC Dr. Verma

11 Closure under kleene star General construction
Let G = (V, T, P, S) where V = V1  { S }, S  V1 P = P1  { S  SS1 | } Lecture 10 UofH - COSC Dr. Verma

12 Tips for Designing CFG's
Use closure properties -- divide and conquer Analyze strings – Is order important? Number? Do we need recursion? Flat versus hierarchical? Are any possibilities (strings) missing? Is the grammar generating too many strings? Lecture 10 UofH - COSC Dr. Verma


Download ppt "COSC 3340: Introduction to Theory of Computation"

Similar presentations


Ads by Google