1 / 13

Module 28

Module 28. Context Free Grammars Definition of a grammar G Deriving strings and defining L(G) Context-Free Language definition. Context-Free Grammars. Definition. Definition. A context-free grammar G = (V, S , S, P) V: finite set of variables (nonterminals)

emmett
Download Presentation

Module 28

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. Module 28 • Context Free Grammars • Definition of a grammar G • Deriving strings and defining L(G) • Context-Free Language definition

  2. Context-Free Grammars Definition

  3. Definition • A context-free grammar G = (V, S, S, P) • V: finite set of variables (nonterminals) • S: finite set of characters (terminals) • S: start variable • element of V • role is similar to that of q0 for an FSA or NFA • P: finite set of grammar rules or production rules • Syntax of a production • variable --> string of variables and terminals

  4. English Context-Free Grammar • ECFG = (V, S, S, P) • V = {<sentence>, <noun phrase>, <verb phrase>, ... } • people sometimes use < > to delimit variables • In this course, we generally will use capital letters to denote variables • S = {a, b, c, ..., z, ;, ,, ., ...} • S = <sentence> • P = { <sentence> --> <noun phrase> <verb phrase> <pct>, <noun phrase> --> <article> <adj> <noun>, ...}

  5. {aibi | i>0} CFG • ABG = (V, S, S, P) • V = {S} • S = {a, b} • S = S • P = {S --> aSb, S --> ab} or S --> aSb | ab • second format saves some space

  6. Context-Free Grammars Deriving strings, defining L(G), and defining context-free languages

  7. Defining -->, ==> notation • First: --> notation • This is used to define the productions of a grammar • S --> aSb | ab • Second: ==>G notation • This is used to denote theapplication of a production rule from a grammar G • S ==>ABG aSb ==>ABG aaSbb ==>ABG aaabbb • We say that string S derives string aSb (in one step) • We say that string aSb derives string aaSbb (in one step) • We say that string aaSbb derives string aaabbb (in one step) • We often omit the grammar subscript when the intended grammar is unambiguous

  8. Defining ==> continued • Third: ==>kG notation • This is used to denote kapplications of production rules from a grammar G • S ==>2ABG aaSbb • We say that string S derives string aaSbb in two steps • aSb ==>2ABG aaabbb • We say that string aSb derives string aaabbb in two steps • We often omit the grammar subscript when the intended grammar is unambiguous

  9. Defining ==> continued • Fourth: ==>*G notation • This is used to denote 0 or moreapplications of production rules from a grammar G • S ==>*ABG S • We say that string S derives string S in 0 or more steps • S ==>*ABG aaSbb • We say that string S derives string aaSbb in 0 or more steps • aSb ==>*ABG aaSbb • We say that string aSb derives string aaSbb in 0 or more steps • aSb ==>*ABG aaabbb • We say that string aSb derives string aaabbb in 0 or more steps • We often omit the grammar subscript when the intended grammar is unambiguous

  10. Defining derivations * • Derivation of a string x • The complete step by step derivation of a string x from the start variable S • Key fact: each step in a derivation makes only one application of a production rule from G • Example: Derivation of string aaabbb using ABG • S ==>ABG aSb ==>ABG aaSbb ==>ABG aaabbb • Example 2: AG= (V, S, S, P) where P = S -->SS | a • Deriving string aaa • S ==> SS ==> Sa ==> SSa ==> aSa ==> aaa

  11. Defining L(G) * • Generating strings • If S ==>G* x, then grammar G generates string x • Note G generates strings which contain terminals and nonterminals • aSb contains nonterminals and terminals • S contains only nonterminals • aaabbb contains only terminals • L(G) • The set of strings over S generated by grammar G • Note we only consider terminal strings generated by G • {aibi | i > 0} = L(ABG) • {ai | i > 0} = L(AG)

  12. Context-Free Languages * • Context-Free Languages • A language L is a context-free language (CFL) iff there exists a CFG G such that L(G) = L • Results so far • {ai | i > 0} is a CFL • One CFG G such that L(G) = this language is AG • Note this language is also regular • {aibi | i > 0} is a CFL • One CFG G such that L(G) = this language is ABG • Note this language is NOT regular

  13. Example * • Let BAL = the set of strings over {(,)} in which the parentheses are balanced • Prove that BAL is a CFL • To prove this, you need to come up with a CFG BALG such that L(BALG) = BAL • BALG = (V, S, S, P) • V = {S} • S = {(, )} • S = S • P = ? • Give derivations of ((( ))) and ( )(( )) with your grammar

More Related