1 / 10

Context Free Grammars

Context Free Grammars. CFGs Add recursion to regular expressions Nested constructions Notation expression  identifier | number | - expression | ( expression ) | expression operator expression operator  + | - | * | / Terminal symbols

nyssa-casey
Download Presentation

Context Free Grammars

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. Context Free Grammars • CFGs • Add recursion to regular expressions • Nested constructions • Notation expression identifier | number| -expression | (expression) | expressionoperatorexpression operator  + | -| *| / • Terminal symbols • Non-terminal symbols • Production rule (i.e. substitution rule) terminal symbol  terminal and non-terminal symbols

  2. Backus-Naur Form • Backus-Naur Form (BNF) • Equivalent to CFGs in power • CFG expression identifier | number| -expression | (expression) | expressionoperatorexpression operator  + | - | * | / • BNF expression identifier | number | - expression | ( expression ) | expression operator expression operator + | - | * | /

  3. Extended Backus-Naur Form • Extended Backus-Naur Form (EBNF) • Adds some convenient symbols • Union | • Kleene star * • Meta-level parentheses ( ) • It has the same expressive power

  4. Extended Backus-Naur Form • Extended Backus-Naur Form (EBNF) • It has the same expressive power BNF digit 0 digit 1 … digit 9 unsigned_integer digit unsigned_integer digit unsigned_integer EBNF digit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 unsigned_integer digit digit*

  5. Derivations • A derivation shows how to generate a syntactically valid string • Given a CFG • Example: • CFG expression identifier | number| -expression | (expression) | expressionoperatorexpression operator  + | - | * | / • Derivation of slope * x + intercept

  6. Derivation Example • Derivation of slope * x + intercept expression expressionoperatorexpression  expressionoperatorintercept  expression+intercept  expressionoperatorexpression+intercept  expressionoperatorx +intercept  expression*x +intercept  slope*x +intercept expression* slope*x +intercept • Identifiers were not derived for simplicity

  7. Parse Trees • A parse is graphical representation of a derivation • Example

  8. Ambiguous Grammars • Alternative parse tree • same expression • same grammar • This grammar is ambiguous

  9. Designing unambiguous grammars • Specify more grammatical structure • In our example, left associativity and operator precedence • 10 – 4 – 3 means (10 – 4) – 3 • 3 + 4 * 5 means 3 + (4 * 5)

  10. Example • Parse tree for 3 + 4 * 5 • Exercise: parse tree for - 10 / 5 * 8 – 4 - 5

More Related