Slide 1

Slide 1 text

jgs Compilers Lecture 13: Deriving trees Dr. Javier Gonzalez-Sanchez [email protected]

Slide 2

Slide 2 text

jgs Previously …

Slide 3

Slide 3 text

Dr. Javier Gonzalez-Sanchez | Compilers | 3 jgs Layering Rule 1 Rule 2 Rule 3 Rule 4 Rule 5 . . . . . Leaf (Terminals, i.e., Tokens) Root Start symbol Layers

Slide 4

Slide 4 text

Dr. Javier Gonzalez-Sanchez | Compilers | 4 jgs Precedence Precedence of operators + - * / -

Slide 5

Slide 5 text

Dr. Javier Gonzalez-Sanchez | Compilers | 5 jgs Syntax Diagrams E A B C

Slide 6

Slide 6 text

Dr. Javier Gonzalez-Sanchez | Compilers | 6 jgs Precedence Precedence of operators + - * / - ( )

Slide 7

Slide 7 text

Dr. Javier Gonzalez-Sanchez | Compilers | 7 jgs Syntax Diagrams E A B C

Slide 8

Slide 8 text

jgs Operators

Slide 9

Slide 9 text

Dr. Javier Gonzalez-Sanchez | Compilers | 9 jgs Exercise 4 Provide a Grammar with Precedence of operators and Associativity for this: 10 + 20 > 15 & -10 != 1 | 20 / ( 10 + 1) < 5

Slide 10

Slide 10 text

Dr. Javier Gonzalez-Sanchez | Compilers | 10 jgs Precedence Precedence of operators | & ! < > == != <= >= + - * / - ( )

Slide 11

Slide 11 text

Dr. Javier Gonzalez-Sanchez | Compilers | 11 jgs Exercise 3 | Handwritten notes ...

Slide 12

Slide 12 text

Dr. Javier Gonzalez-Sanchez | Compilers | 12 jgs Exercise 4 R EXPRESSION X Y

Slide 13

Slide 13 text

Dr. Javier Gonzalez-Sanchez | Compilers | 13 jgs Exercise 4 E A B C

Slide 14

Slide 14 text

Dr. Javier Gonzalez-Sanchez | Compilers | 14 jgs Homework | Derivation Tree x = ((3 + 5) * 2 > 10) && (8 / (4 + 1) == 1 || 7 - 3 < 2)

Slide 15

Slide 15 text

jgs Language

Slide 16

Slide 16 text

Dr. Javier Gonzalez-Sanchez | Compilers | 16 jgs Parser PROGRAM

Slide 17

Slide 17 text

Dr. Javier Gonzalez-Sanchez | Compilers | 17 jgs Parser PROGRAM We have BODY. What about method definition? What about global variables? What about classes?

Slide 18

Slide 18 text

Dr. Javier Gonzalez-Sanchez | Compilers | 18 jgs Assignment 2 | Code BODY

Slide 19

Slide 19 text

Dr. Javier Gonzalez-Sanchez | Compilers | 19 jgs Assignment 2 | Code ASSIGNMENT

Slide 20

Slide 20 text

Dr. Javier Gonzalez-Sanchez | Compilers | 20 jgs Assignment 2 | Code VARIABLE

Slide 21

Slide 21 text

Dr. Javier Gonzalez-Sanchez | Compilers | 21 jgs Assignment 2 | Code VARIABLE What about int x = 2 + 2; ?

Slide 22

Slide 22 text

Dr. Javier Gonzalez-Sanchez | Compilers | 22 jgs Assignment 2 | Code WHILE

Slide 23

Slide 23 text

Dr. Javier Gonzalez-Sanchez | Compilers | 23 jgs Assignment 2 | Code WHILE What do/while ?

Slide 24

Slide 24 text

Dr. Javier Gonzalez-Sanchez | Compilers | 24 jgs Assignment 2 | Code IF

Slide 25

Slide 25 text

Dr. Javier Gonzalez-Sanchez | Compilers | 25 jgs Assignment 2 | Code IF What switch/case?

Slide 26

Slide 26 text

Dr. Javier Gonzalez-Sanchez | Compilers | 26 jgs Assignment 2 | Code RETURN What about return 2 + 2?

Slide 27

Slide 27 text

Dr. Javier Gonzalez-Sanchez | Compilers | 27 jgs Assignment 2 | Code PRINT

Slide 28

Slide 28 text

Dr. Javier Gonzalez-Sanchez | Compilers | 28 jgs Assignment 2 | Code PRINT What about calling a method (any method)?

Slide 29

Slide 29 text

Dr. Javier Gonzalez-Sanchez | Compilers | 29 jgs Parser EXPRESSION

Slide 30

Slide 30 text

Dr. Javier Gonzalez-Sanchez | Compilers | 30 jgs Parser X

Slide 31

Slide 31 text

Dr. Javier Gonzalez-Sanchez | Compilers | 31 jgs Parser Y

Slide 32

Slide 32 text

Dr. Javier Gonzalez-Sanchez | Compilers | 32 jgs Parser R

Slide 33

Slide 33 text

Dr. Javier Gonzalez-Sanchez | Compilers | 33 jgs Parser R What about >= or <= ?

Slide 34

Slide 34 text

Dr. Javier Gonzalez-Sanchez | Compilers | 34 jgs Parser E

Slide 35

Slide 35 text

Dr. Javier Gonzalez-Sanchez | Compilers | 35 jgs Parser A

Slide 36

Slide 36 text

Dr. Javier Gonzalez-Sanchez | Compilers | 36 jgs Parser B

Slide 37

Slide 37 text

Dr. Javier Gonzalez-Sanchez | Compilers | 37 jgs Assignment 2 | Code C

Slide 38

Slide 38 text

Dr. Javier Gonzalez-Sanchez | Compilers | 38 jgs Assignment 2 | Code C What about 5 + calculate_xyz() ?

Slide 39

Slide 39 text

Dr. Javier Gonzalez-Sanchez | Compilers | 45 jgs Questions

Slide 40

Slide 40 text

jgs Compilers Javier Gonzalez-Sanchez, Ph.D. [email protected] Spring 2025 Copyright. These slides can only be used as study material for the Compilers course at Universidad Panamericana. They cannot be distributed or used for another purpose.