Slide 1

Slide 1 text

jgs Compilers Lecture 09: Precedence of Operators I 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 Do not Forget ▪ Terminals: Represented in lowercase, enclosed in single or double quotes, or depicted as ovals in diagrams. ▪ Non-Terminals: Represented with an uppercase initial letter, enclosed in angle brackets (< >), or depicted as rectangles in diagrams.

Slide 4

Slide 4 text

Dr. Javier Gonzalez-Sanchez | Compilers | 4 jgs Test Yourselves Syntax Diagrams for Java: - Class - Attributes - Methods - Parameters - Instruction (stop here) Do not forget static, final, public, private, data-types, abstract, extends, implements …

Slide 5

Slide 5 text

Dr. Javier Gonzalez-Sanchez | Compilers | 5 jgs Handwritten Notes

Slide 6

Slide 6 text

Dr. Javier Gonzalez-Sanchez | Compilers | 6 jgs Rule 1. Create New Rules to Facilitate Understanding Divide-and-Conquer Approach

Slide 7

Slide 7 text

jgs Test Yourselves

Slide 8

Slide 8 text

Dr. Javier Gonzalez-Sanchez | Compilers | 8 jgs

Slide 9

Slide 9 text

jgs Problem Precedence of Operators

Slide 10

Slide 10 text

Dr. Javier Gonzalez-Sanchez | Compilers | 10 jgs Grammar | Derivation 5 integer / operator 5 integer x ID = operator

Slide 11

Slide 11 text

Dr. Javier Gonzalez-Sanchez | Compilers | 11 jgs Grammar | Derivation 5 integer / operator 5 integer x ID = operator Expression: Operator: Assignment:

Slide 12

Slide 12 text

Dr. Javier Gonzalez-Sanchez | Compilers | 12 jgs Grammar | Derivation 5 integer / operator 20 integer x ID = operator Expression: Operator: Assignment:

Slide 13

Slide 13 text

Dr. Javier Gonzalez-Sanchez | Compilers | 13 jgs Grammar | Derivation 1 integer + operator 2 integer x ID = operator / operator 3 integer 1 integer / operator 2 integer x ID = operator + operator 3 integer

Slide 14

Slide 14 text

Dr. Javier Gonzalez-Sanchez | Compilers | 14 jgs Grammar | Derivation 1 integer + operator 2 integer x ID = operator / operator 3 integer 1 integer / operator 2 integer x ID = operator + operator 3 integer

Slide 15

Slide 15 text

Dr. Javier Gonzalez-Sanchez | Compilers | 15 jgs Layering 2 3 1

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

Dr. Javier Gonzalez-Sanchez | Compilers | 17 jgs Layering 1 2 4 5 3 inputs: ▪ 1 + 2 + 3 < 4 * 5 ▪ 1 * 2 + 3 + 4 < 5 ▪ 1 < 2 + 3 + 4 * 5 ▪ 1 + 2 < 3 * 4 + 5 ▪ 1 + 2 * 3 < 4 + 5

Slide 18

Slide 18 text

Dr. Javier Gonzalez-Sanchez | Compilers | 18 jgs Rule 2. Create New Rules to Establish Levels of Precedence for Operators

Slide 19

Slide 19 text

jgs Step 1 Arithmetic Operators

Slide 20

Slide 20 text

Dr. Javier Gonzalez-Sanchez | Compilers | 20 jgs Exercise 1 | Precedence New Grammar: → <__> + <__> | <__> < > → <__> - <__> | <__> < > → - __ | __ Original Grammar: E → E OP E | E E → integer OP→ + | - | * | /

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

Dr. Javier Gonzalez-Sanchez | Compilers | 22 jgs Exercise 1 | Handwritten notes

Slide 23

Slide 23 text

Dr. Javier Gonzalez-Sanchez | Compilers | 23 jgs Exercise | Precedence → | {'+' } | {'-' } | {'*' } | {'/' } → '-' | → integer

Slide 24

Slide 24 text

Dr. Javier Gonzalez-Sanchez | Compilers | 24 jgs Exercise 1 | Precedence → {(’+'|'-’) } {('*'|'/') } → ['-'] → integer

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

Dr. Javier Gonzalez-Sanchez | Compilers | 26 jgs Exercise 1 | Handwritten notes

Slide 27

Slide 27 text

jgs To be continued…

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

jgs Compilers Javier Gonzalez-Sanchez, Ph.D. [email protected] Spring 2026 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.