15
Building AST's for RPAL Programs Prepared by Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Programming Language Concepts Lecture 14

Building AST's for RPAL Programs

  • Upload
    ena

  • View
    45

  • Download
    1

Embed Size (px)

DESCRIPTION

Building AST's for RPAL Programs. Programming Language Concepts Lecture 14. Prepared by Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida. Let's Build a Few Abstract Syntax Trees. Example 1: Factorial, version 3. Example 2: Palindrome. Example 3: Add numbers from list. - PowerPoint PPT Presentation

Citation preview

Page 1: Building AST's for RPAL Programs

Building AST's for RPAL Programs

Prepared by

Manuel E. Bermúdez, Ph.D.Associate ProfessorUniversity of Florida

Programming Language ConceptsLecture 14

Page 2: Building AST's for RPAL Programs

Let's Build a Few Abstract Syntax Trees

• Example 1: Factorial, version 3.

• Example 2: Palindrome.

• Example 3: Add numbers from list.

• Example 5: Build tuple of pairs of characters.

Page 3: Building AST's for RPAL Programs
Page 4: Building AST's for RPAL Programs
Page 5: Building AST's for RPAL Programs
Page 6: Building AST's for RPAL Programs
Page 7: Building AST's for RPAL Programs

Class Project

• Build a recursive descent parser for RPAL (gulp!)

• If done properly, it's easy.• Need lexical analyzer, to be called

repeatedly (important!) by the parser. Avoid scanning the entire input in advance of the parser.

Page 8: Building AST's for RPAL Programs

Class Project (cont’d)

• Code up one procedure per nonterminal in RPAL's grammar.

• Pseudo code for some portions of RPAL’s grammar

Page 9: Building AST's for RPAL Programs
Page 10: Building AST's for RPAL Programs
Page 11: Building AST's for RPAL Programs
Page 12: Building AST's for RPAL Programs

Class Project (cont’d)

• Implement support module for trees, and stack of trees.• Suggestion: use first-child, next-

sibling binary tree representation of n-ary trees (it works!).

• Preorder traversal of this tree is the same as for n-ary tree.

• Popping n trees from the stack, and building a parent node on top of them, is easy.

Page 13: Building AST's for RPAL Programs
Page 14: Building AST's for RPAL Programs
Page 15: Building AST's for RPAL Programs

Building AST's for RPAL Programs

Prepared by

Manuel E. Bermúdez, Ph.D.Associate ProfessorUniversity of Florida

Programming Language ConceptsLecture 14