1 / 23

Lecture # 8

Lecture # 8. Chapter # 4: Syntax Analysis. Practice Context Free Grammars. a) CFG generating alternating sequence of 0’s and 1’s b) CFG in which no consecutive b’s can occur but consecutive a’s can occur c) CFG for the following language: L(G)= {a n b 2n | n>=0}.

jola
Télécharger la présentation

Lecture # 8

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. Lecture # 8 Chapter # 4: Syntax Analysis

  2. Practice Context Free Grammars a) CFG generating alternating sequence of 0’s and 1’s b) CFG in which no consecutive b’s can occur but consecutive a’s can occur c) CFG for the following language: L(G)= {an b2n | n>=0}

  3. Practice Answers a) S 0A | 1B c) S aSbb | є A 1B | 0 B 0A | 1 • S aS | bT |a |b T aS | a

  4. Example • Design a CFG for the language L(G)= {0n 1m | n <> m} There are two cases: • For n>m • For n<m • Write two separate set of rules and combine them

  5. Example • For n>m S1 AB B0A1 | Combining both: A0A | 0 S  S1 | S2 For n<m S2 XY X0X1 | Y1Y | 1 Є Є

  6. Practice CFG • Design a CFG for the language L(G)= {0i 1j 2k| i=j or j=k} There are two cases: • For i=j • For j=k • Write two separate set of rules and combine them

  7. Solution of Practice • For i=j S1 AB A0A1 | ε Combining both: B2B | εS  S1 | S2 For j=k S2 XY X0X | ε Y1Y2 | ε

  8. Derivations • The one-step derivation is defined by A    where A   is a production in the grammar • In addition, we define •  is leftmost lm if  does not contain a nonterminal •  is rightmost rm if  does not contain a nonterminal • Transitive closure * (zero or more steps) • Positive closure + (one or more steps) • The language generated by G is defined byL(G) = {w  T* | S +w}

  9. Derivation (Example) Grammar G = ({E}, {+,*,(,),-,id}, P, E) withproductions P = E  E+E E  E*EE  (E)E  -EE  id Example derivations: E  -E  -id E rmE + E rmE+id rm id + id E *E E *id + id E +id * id + id

  10. Example • For the given grammar derive the string 9-5+2 using Left most derivation Then derive the same string using Right most derivation

  11. Example Grammar Context-free grammar for simple expressions: G = <{list,digit}, {+,-,0,1,2,3,4,5,6,7,8,9}, P, list> with productions P = list list+digit list list-digit list digit digit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

  12. Derivation for the Example Grammar listlist+digit list-digit+digit digit-digit+digit 9 -digit+digit 9 - 5 +digit 9 - 5 + 2 This is an example leftmost derivation, because we replacedthe leftmost nonterminal (underlined) in each step.Likewise, a rightmost derivation replaces the rightmostnonterminal in each step

  13. Chomsky Hierarchy: Language Classification • A grammar G is said to be • Regular if it is right linear where each production is of the formA  w B or A  wor left linear where each production is of the formA  B w or A  w • Context free if each production is of the formA  where A  N and   (NT)* • Context sensitive if each production is of the form  A     where A  N, ,,  (NT)*, || > 0 • Unrestricted

  14. Chomsky Hierarchy L(regular)  L(context free)  L(context sensitive)  L(unrestricted) Where L(T) = { L(G) | G is of type T }That is: the set of all languagesgenerated by grammars G of type T Examples: Every finite language is regular! (construct a FSA for strings in L(G)) L1= { anbn | n 1 } is context free L2= { anbncn | n 1 } is context sensitive

  15. Parse Trees • The root of the tree is labeled by the start symbol • Each leaf of the tree is labeled by a terminal (=token) or  • Each interior node is labeled by a nonterminal • If AX1 X2 … Xn is a production, then node A has immediate childrenX1, X2, …, Xn where Xi is a (non)terminal or  ( denotes the empty string)

  16. Parse Tree for the Example Grammar Parse tree of the string 9-5+2 using grammar G list list digit list digit digit The sequence ofleafs is called theyield of the parse tree 9 - 5 + 2

  17. Example of Parse Tree • Suppose we have the following grammar E → E + E E → E * E E → ( E ) E → - E E → id Perform Left most derivation, right most derivation and construct a parse tree for the string id+id*id

  18. Two possible Parse Trees using Leftmost derivation

  19. Parse Tree via Right most derivation

  20. Ambiguity • Grammar is ambiguous if more than one parse tree is possible for some string as shown in the previous example. If there are more than one left most derivations or more than one right most derivations. • Ambiguity is not acceptable • Unfortunately, it’s undecidable to check whether a given CFG is ambiguous • Some CFLs are inherently ambiguous (do not have an unambiguous CFG)

  21. Ambiguity (cont’d) Consider the following context-free grammar: G = <{string}, {+,-,0,1,2,3,4,5,6,7,8,9}, P, string> with production P = string string+string | string-string | 0 | 1 | … | 9 This grammar is ambiguous, because more than one parse treerepresents the string 9-5+2

  22. Two Parse Trees for the same string string string string string string string string string string string 9 - 5 + 2 9 - 5 + 2

  23. Practice • Show that the following grammar is ambiguous: (Find out strings and two parse trees) 1) S AB | aaB 2) S a | abSb |aAb A a | Aa A bS | aAAb Bb 3) S aSb | SS | ε

More Related