slides 05 03 derivations annotated

Upload: va-ru-n

Post on 04-Jun-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 Slides 05 03 Derivations Annotated

    1/22

    CompilersDerivations

  • 8/13/2019 Slides 05 03 Derivations Annotated

    2/22

  • 8/13/2019 Slides 05 03 Derivations Annotated

    3/22

    Derivation

    Grammar

    E E + E | E E | (E) | id

    String

    id

    id + id

  • 8/13/2019 Slides 05 03 Derivations Annotated

    4/22

    Derivation

    E

    E+E

    E E+E

    id E + E

    id id + E

    id id + id

    E

    E

    E E

    +

    *

    idid

  • 8/13/2019 Slides 05 03 Derivations Annotated

    5/22

    Derivation

    E

    E

  • 8/13/2019 Slides 05 03 Derivations Annotated

    6/22

    Derivation

    E

    E+E

    E

    E +

  • 8/13/2019 Slides 05 03 Derivations Annotated

    7/22

    Derivation

    E E

    E

    E+E

    E +

    E

    E

    E E

    +

    *

  • 8/13/2019 Slides 05 03 Derivations Annotated

    8/22

    Derivation

    E

    E+E

    E E+E

    id E + E

    E

    E

    E E

    +

    *

    id

  • 8/13/2019 Slides 05 03 Derivations Annotated

    9/22

    Derivation

    E

    E+E

    E E+E

    id E +

    id id +

    E

    E

    E

    E

    E E

    +

    *

    idid

  • 8/13/2019 Slides 05 03 Derivations Annotated

    10/22

    Derivation

    E

    E+E

    E E+E

    id E + E

    id id + E

    id id + id

    E

    E

    E E

    +

    *

    idid

  • 8/13/2019 Slides 05 03 Derivations Annotated

    11/22

    Derivation

    A parse tree has

    Terminals at the leaves

    Non-terminals at the interior nodes

    An in-order traversal of the leaves is the original

    The parse tree shows the association of operatio

    input string does not

  • 8/13/2019 Slides 05 03 Derivations Annotated

    12/22

    The example is a left-most

    derivation

    At each step, replace the left-

    most non-terminal

    There is an equivalent

    notion of a right-most

    derivation

    E

    E+E

    E+id

    E E + iE id +

    id id +

    Derivation

  • 8/13/2019 Slides 05 03 Derivations Annotated

    13/22

    Derivation

    E

    E

    D i i

  • 8/13/2019 Slides 05 03 Derivations Annotated

    14/22

    Derivation

    E

    E+E

    E

    E +

    D i ti

  • 8/13/2019 Slides 05 03 Derivations Annotated

    15/22

    Derivation

    id

    E

    E+E

    E+

    E

    E +

    D i ti

  • 8/13/2019 Slides 05 03 Derivations Annotated

    16/22

    Derivation

    E

    E+E

    E+id

    E E + id

    E

    E

    E E

    +

    *

    D i ti

  • 8/13/2019 Slides 05 03 Derivations Annotated

    17/22

    Derivation

    E

    E+E

    E+id

    E E

    E

    + id

    id + id

    E

    E

    E E

    +

    *

    id

    Deri ation

  • 8/13/2019 Slides 05 03 Derivations Annotated

    18/22

    Derivation

    E

    E+E

    E+id

    E E + id

    E id + id

    id id + id

    E

    E

    E E

    +

    *

    idid

    Derivation

  • 8/13/2019 Slides 05 03 Derivations Annotated

    19/22

    Derivation

    Note that right-most and left-most derivations

    same parse tree

    Derivation

  • 8/13/2019 Slides 05 03 Derivations Annotated

    20/22

    Derivation

    SaXa

    abYa

    acXca

    acca

    Which of the following is a valid

    derivation of the given grammar? S

    X

    Y

    SaXa

    abYa

    abcXca

    abcbYca

    abcbdca

    S

    aXa

    abYa

    abcXcda

    abccda

    S

    aa

    Derivation

  • 8/13/2019 Slides 05 03 Derivations Annotated

    21/22

    DerivationWhich of the following is a valid

    parse tree for the given grammar? S

    X

    Y

    S

    a

    b Y

    aX

    c cX

    S

    a

    b Y

    aX

    c cX d

    S

    a

    b Y

    aX

    c cX d

    S

    a

    b Y

    aX

    Derivation

  • 8/13/2019 Slides 05 03 Derivations Annotated

    22/22

    Derivation

    We are not just interested in whether s L(G

    We need a parse tree for s

    A derivation defines a parse tree

    But one parse tree may have many derivat

    Left-most and right-most derivations are impin parser implementation