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.