150 likes | 266 Vues
This lecture covers fundamental concepts in context-free languages (CFL) and context-free grammars (CFG) as part of COSC 3340 at the University of Houston, taught by Dr. Verma. It elaborates on the hierarchy of languages, distinguishing context-free languages from regular languages. The lecture includes grammar constructs for simple English sentences and arithmetic expressions, along with derivations and parse trees. It also discusses the notions of leftmost and rightmost derivations, as well as the ambiguity inherent in certain context-free grammars, providing a comprehensive overview of key theoretical elements.
E N D
COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma Lecture 9 UofH - COSC 3340 - Dr. Verma
Context Free Languages • Strictly bigger class than regular languages {anbn | n >= 0} context-free languages regular languages {wwR |w in {a,b}*} {arithmetic expressions} UofH - COSC 3340 - Dr. Verma
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 UofH - COSC 3340 - Dr. Verma
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> UofH - COSC 3340 - Dr. Verma
A grammar for arithmetic expressions • EE + E | E * E | (E) | x | y • Start symbol - E. • Terminals? • Ans: {x, y, *, +, (, ), ''} • Nonterminals? • Ans: {E} • A derivation: EE + EE + E * Ex + E * Ex + x * Ex + x * y UofH - COSC 3340 - Dr. Verma
Another grammar for arithmetic expr’s EE + T | T TT * F | F F(E) | x | y A derivation for x + x * y ? EE + TT + TF + Tx + T x + T * Fx + F * Fx + x * Fx + x * y Why two different grammars for arithmetic expressions? UofH - COSC 3340 - Dr. Verma
Context Free Grammar Definition • A CFG G = (V, T, P, S) where VT = , • V -- A finite set of symbols called nonterminals • T -- A finite set of symbols called terminals • P is a finite subset of V X (VT)* called productions or rules • We write A w whenever (A, w) P. • SV -- start symbol UofH - COSC 3340 - Dr. Verma
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 = 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 UofH - COSC 3340 - Dr. Verma
Example: SaSb | Derivation: SaSbaaSbbaabb. L(G) = ? • Ans: {anbn | n 0 } UofH - COSC 3340 - Dr. Verma
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 UofH - COSC 3340 - Dr. Verma
Parse trees [contd.] In general, if we apply rule Aw0w1...wn, then we add nodes for wi as children of node labeled A A w0 w1 w2 wn UofH - COSC 3340 - Dr. Verma
EE + EE + E * Ex + E * Ex + x * Ex + x * y E E + E x E * E x y UofH - COSC 3340 - Dr. Verma
EE + TT + TF + Tx + Tx + T * Fx + F * Fx + x * Fx + x * y E E + T F T T * F y F x x UofH - COSC 3340 - Dr. Verma
Leftmost and Rightmost Derivations • Derivation is leftmost if the nonterminal replaced in every step is the leftmost nonterminal. • Consider EE + EE + x. • Is it leftmost derivation? • Derivation is rightmost if the nonterminal replaced in every step is the rightmost nonterminal. • Consider EE + Ex + E. • Is it rightmost derivation? UofH - COSC 3340 - Dr. Verma
Ambiguity • A CFG is ambiguous if there is a string with at least two leftmost derivations • Example: EE + E | E * E | (E) | x | y is ambiguous • A CFL is inherently ambiguous if every CFG that generates it is ambiguous. • Example: {anbncm | n, m0} {ambncn| n, m0} UofH - COSC 3340 - Dr. Verma