Download presentation
Presentation is loading. Please wait.
Published byMadison Murphy Modified over 9 years ago
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}
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.