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 9 Lecture 9 UofH - COSC Dr. Verma

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

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

4 Context-free grammars (CFGs)
Informally, a CFG is a finite set of rules. Each rule is of the form: <nonterminal symbol>  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: {<noun>, <verb>, ...} A special nonterminal is called start symbol. Example: <Sentence> Lecture 9 UofH - COSC 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 Lecture 9 UofH - COSC 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? Lecture 9 UofH - COSC 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 Lecture 9 UofH - COSC Dr. Verma

8 Derivations and L(G) One step derivation: 0 or more steps derivation:
u  v if u = xAy, v = xwy and A  w in P 0 or more steps derivation: u * v if u = u0  u1  ....  un = 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 Lecture 9 UofH - COSC Dr. Verma

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

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

11 Parse trees [contd.] In general, if we apply rule
A  w0w1...wn, then we add nodes for wi as children of node labeled A A w0 w1 w2 wn    Lecture 9 UofH - COSC Dr. Verma

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

13 E E + T T + T F + T x + T x + T * F x + F * F x + x * F x + x * y
Lecture 9 UofH - COSC 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? Lecture 9 UofH - COSC 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. {anbncm | n, m  0}  {ambncn | n, m  0} Lecture 9 UofH - COSC Dr. Verma


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

Similar presentations


Ads by Google