1 / 15

Introduction to Context-Free Languages and Grammars in Computation Theory

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.

lacy
Télécharger la présentation

Introduction to Context-Free Languages and Grammars in Computation Theory

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma Lecture 9 UofH - COSC 3340 - 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} UofH - COSC 3340 - 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 UofH - COSC 3340 - 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> UofH - 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 UofH - 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? UofH - 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 UofH - 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 = 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

  9. Example: SaSb |  Derivation: SaSbaaSbbaabb. L(G) = ? • Ans: {anbn | n  0 } UofH - COSC 3340 - 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  UofH - COSC 3340 - 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    UofH - COSC 3340 - Dr. Verma

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

More Related