Bottoms Up! One View of a Bottom-Up Parse E E T E E + T T T int - - PowerPoint PPT Presentation

bottoms up
SMART_READER_LITE
LIVE PREVIEW

Bottoms Up! One View of a Bottom-Up Parse E E T E E + T T T int - - PowerPoint PPT Presentation

Different Types of Parsing Top Down Parsing Beginning with the start symbol, try to guess the productions to apply to end up at the user's program. Bottom-Up Parsing Beginning with the user's program, try to apply productions in


slide-1
SLIDE 1

Different Types of Parsing

  • Top Down Parsing
  • Beginning with the start symbol, try to guess the

productions to apply to end up at the user's program.

  • Bottom-Up Parsing
  • Beginning with the user's program, try to apply

productions in reverse to convert the program back into the start symbol.

Wednesday, April 10, 13

slide-2
SLIDE 2

Bottoms Up!

slide-3
SLIDE 3

One View of a Bottom-Up Parse

E → T E → E + T T → int T → (E)

int + ( int + int + int )

T E T E T E T E T E

slide-4
SLIDE 4

A Second View of a Bottom-Up Parse

E → T E → E + T T → int T → (E)

⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-5
SLIDE 5

A Second View of a Bottom-Up Parse

E → T E → E + T T → int T → (E)

⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-6
SLIDE 6

A left-to-right, bottom-up parse is a rightmost derivation traced in reverse.

slide-7
SLIDE 7

A Third View of a Bottom-Up Parse

⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

Each step in this bottom-up parse is called a reduction. We reduce a substring of the sentential form back to a nonterminal. Each step in this bottom-up parse is called a reduction. We reduce a substring of the sentential form back to a nonterminal.

slide-8
SLIDE 8

A Third View of a Bottom-Up Parse

int

E

+

E T

( )

E

+

E T

int +

E T

int

T

int

T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-9
SLIDE 9

A Third View of a Bottom-Up Parse

int

E

+

E T

( )

E

+

E T

int +

E T

int

T

int

T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-10
SLIDE 10

A Third View of a Bottom-Up Parse

int

E

+

E T

( )

E

+

E T

int +

E T

int

T

int

T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-11
SLIDE 11

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int +

E T

int

T

int

T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-12
SLIDE 12

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int +

E T

int

T

int

T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-13
SLIDE 13

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int +

E T

int

T

int int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-14
SLIDE 14

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int +

E T

int

T

int int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-15
SLIDE 15

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int +

E T

int

T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-16
SLIDE 16

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int +

E T

int

T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-17
SLIDE 17

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int +

E T

int int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-18
SLIDE 18

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int +

E T

int int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-19
SLIDE 19

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int +

E T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-20
SLIDE 20

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int +

E T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-21
SLIDE 21

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-22
SLIDE 22

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-23
SLIDE 23

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-24
SLIDE 24

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

+

E T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-25
SLIDE 25

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-26
SLIDE 26

A Third View of a Bottom-Up Parse

E

+

E T

( )

E

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-27
SLIDE 27

A Third View of a Bottom-Up Parse

E

+

E T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-28
SLIDE 28

A Third View of a Bottom-Up Parse

E

+

E T

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E

slide-29
SLIDE 29

A Third View of a Bottom-Up Parse

E

int + ( int + int + int ) ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) ⇒ E + (T + int + int) ⇒ E + (E + int + int) ⇒ E + (E + T + int) ⇒ E + (E + int) ⇒ E + (E + T) ⇒ E + (E) ⇒ E + T ⇒ E