bottoms up
play

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


  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

  2. Bottoms Up!

  3. One View of a Bottom-Up Parse E E → T E → E + T T T → int T → ( E ) E E E E T T T T int + ( int + int + int )

  4. A Second View of a Bottom-Up Parse E → T ⇒ int + (int + int + int) E → E + T ⇒ T + (int + int + int) T → int ⇒ E + (int + int + int) T → ( E ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) ⇒ E + ( E + T + int) ⇒ E + ( E + int) ⇒ E + ( E + T ) ⇒ E + ( E ) ⇒ E + T ⇒ E

  5. A Second View of a Bottom-Up Parse E → T ⇒ int + (int + int + int) E → E + T ⇒ T + (int + int + int) T → int ⇒ E + (int + int + int) T → ( E ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) ⇒ E + ( E + T + int) ⇒ E + ( E + int) ⇒ E + ( E + T ) ⇒ E + ( E ) ⇒ E + T ⇒ E

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

  7. A Third View of a Bottom-Up Parse ⇒ int + (int + int + int) ⇒ T + (int + int + int) ⇒ E + (int + int + int) Each step in this bottom-up Each step in this bottom-up ⇒ E + ( T + int + int) parse is called a reduction . parse is called a reduction . ⇒ E + ( E + int + int) We reduce a substring of We reduce a substring of ⇒ E + ( E + T + int) the sentential form back to the sentential form back to ⇒ E + ( E + int) a nonterminal. a nonterminal. ⇒ E + ( E + T ) ⇒ E + ( E ) ⇒ E + T ⇒ E

  8. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) T E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T int + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) T int ⇒ E + ( E ) ⇒ E + T int ⇒ E int + ( int + int + int )

  9. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) T E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T int + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) T int ⇒ E + ( E ) ⇒ E + T int ⇒ E int + ( int + int + int )

  10. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) T E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T int + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) T int ⇒ E + ( E ) ⇒ E + T int ⇒ E int + ( int + int + int )

  11. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) T E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) T int ⇒ E + ( E ) ⇒ E + T int ⇒ E int + ( int + int + int )

  12. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) T E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) T int ⇒ E + ( E ) ⇒ E + T int ⇒ E int + ( int + int + int )

  13. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) T int ⇒ E + ( E ) ⇒ E + T int ⇒ E int + ( int + int + int )

  14. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) T int ⇒ E + ( E ) ⇒ E + T int ⇒ E int + ( int + int + int )

  15. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) T int ⇒ E + ( E ) ⇒ E + T ⇒ E int + ( int + int + int )

  16. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) T int ⇒ E + ( E ) ⇒ E + T ⇒ E int + ( int + int + int )

  17. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) int ⇒ E + ( E ) ⇒ E + T ⇒ E int + ( int + int + int )

  18. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) int ⇒ E + ( E ) ⇒ E + T ⇒ E int + ( int + int + int )

  19. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) ⇒ E + ( E ) ⇒ E + T ⇒ E int + ( int + int + int )

  20. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) E T ⇒ E + ( E + int) + int ⇒ E + ( E + T ) ⇒ E + ( E ) ⇒ E + T ⇒ E int + ( int + int + int )

  21. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) ⇒ E + ( E + int) int ⇒ E + ( E + T ) ⇒ E + ( E ) ⇒ E + T ⇒ E int + ( int + int + int )

  22. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) ⇒ E + ( E + int) int ⇒ E + ( E + T ) ⇒ E + ( E ) ⇒ E + T ⇒ E int + ( int + int + int )

  23. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) ⇒ E + ( E + int) ⇒ E + ( E + T ) ⇒ E + ( E ) ⇒ E + T ⇒ E int + ( int + int + int )

  24. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) E T + ⇒ E + ( E + T + int) ⇒ E + ( E + int) ⇒ E + ( E + T ) ⇒ E + ( E ) ⇒ E + T ⇒ E int + ( int + int + int )

  25. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) ⇒ E + ( E + T + int) ⇒ E + ( E + int) ⇒ E + ( E + T ) ⇒ E + ( E ) ⇒ E + T ⇒ E int + ( int + int + int )

  26. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ T + (int + int + int) ⇒ E + (int + int + int) E ( ) ⇒ E + ( T + int + int) ⇒ E + ( E + int + int) ⇒ E + ( E + T + int) ⇒ E + ( E + int) ⇒ E + ( E + T ) ⇒ E + ( E ) ⇒ E + T ⇒ E int + ( int + int + int )

  27. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ 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 int + ( int + int + int )

  28. A Third View of a Bottom-Up Parse E ⇒ int + (int + int + int) E T + ⇒ 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 int + ( int + int + int )

  29. A Third View of a Bottom-Up Parse 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 int + ( int + int + int )

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend