Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UP Lecture 13
Search
Javier Gonzalez-Sanchez
PRO
December 16, 2023
Programming
0
120
UP Lecture 13
Compilers
Deriving Trees
(202503)
Javier Gonzalez-Sanchez
PRO
December 16, 2023
Tweet
Share
More Decks by Javier Gonzalez-Sanchez
See All by Javier Gonzalez-Sanchez
CSC307 Lecture 16
javiergs
PRO
0
150
CSC570 Lecture 13
javiergs
PRO
0
38
CSC307 Lecture 17
javiergs
PRO
0
120
UP Lecture 30
javiergs
PRO
0
84
UP Lecture 25
javiergs
PRO
0
75
CSC486 Lecture 14
javiergs
PRO
0
160
CSC486 Lecture 13
javiergs
PRO
0
110
CSC486 Lecture 12
javiergs
PRO
0
110
CSC486 Lecture 11
javiergs
PRO
0
66
Other Decks in Programming
See All in Programming
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
390
Porting a visionOS App to Android XR
akkeylab
0
460
5つのアンチパターンから学ぶLT設計
narihara
1
170
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
190
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
130
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @enterJS Advanced Angular Day 2025
manfredsteyer
PRO
0
220
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
280
Result型で“失敗”を型にするPHPコードの書き方
kajitack
5
650
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
700
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
170
NPOでのDevinの活用
codeforeveryone
0
830
RailsGirls IZUMO スポンサーLT
16bitidol
0
180
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
It's Worth the Effort
3n
185
28k
Designing Experiences People Love
moore
142
24k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Building Adaptive Systems
keathley
43
2.7k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Done Done
chrislema
184
16k
Transcript
jgs Compilers Lecture 13: Deriving trees Dr. Javier Gonzalez-Sanchez
[email protected]
jgs Previously …
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
Dr. Javier Gonzalez-Sanchez | Compilers | 4 jgs Precedence Precedence
of operators + - * / -
Dr. Javier Gonzalez-Sanchez | Compilers | 5 jgs Syntax Diagrams
E A B C
Dr. Javier Gonzalez-Sanchez | Compilers | 6 jgs Precedence Precedence
of operators + - * / - ( )
Dr. Javier Gonzalez-Sanchez | Compilers | 7 jgs Syntax Diagrams
E A B C
jgs Operators
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
Dr. Javier Gonzalez-Sanchez | Compilers | 10 jgs Precedence Precedence
of operators | & ! < > == != <= >= + - * / - ( )
Dr. Javier Gonzalez-Sanchez | Compilers | 11 jgs Exercise 3
| Handwritten notes ...
Dr. Javier Gonzalez-Sanchez | Compilers | 12 jgs Exercise 4
R EXPRESSION X Y
Dr. Javier Gonzalez-Sanchez | Compilers | 13 jgs Exercise 4
E A B C
Dr. Javier Gonzalez-Sanchez | Compilers | 14 jgs Homework |
Derivation Tree x = ((3 + 5) * 2 > 10) && (8 / (4 + 1) == 1 || 7 - 3 < 2)
jgs Language
Dr. Javier Gonzalez-Sanchez | Compilers | 16 jgs Parser PROGRAM
Dr. Javier Gonzalez-Sanchez | Compilers | 17 jgs Parser PROGRAM
We have BODY. What about method definition? What about global variables? What about classes?
Dr. Javier Gonzalez-Sanchez | Compilers | 18 jgs Assignment 2
| Code BODY
Dr. Javier Gonzalez-Sanchez | Compilers | 19 jgs Assignment 2
| Code ASSIGNMENT
Dr. Javier Gonzalez-Sanchez | Compilers | 20 jgs Assignment 2
| Code VARIABLE
Dr. Javier Gonzalez-Sanchez | Compilers | 21 jgs Assignment 2
| Code VARIABLE What about int x = 2 + 2; ?
Dr. Javier Gonzalez-Sanchez | Compilers | 22 jgs Assignment 2
| Code WHILE
Dr. Javier Gonzalez-Sanchez | Compilers | 23 jgs Assignment 2
| Code WHILE What do/while ?
Dr. Javier Gonzalez-Sanchez | Compilers | 24 jgs Assignment 2
| Code IF
Dr. Javier Gonzalez-Sanchez | Compilers | 25 jgs Assignment 2
| Code IF What switch/case?
Dr. Javier Gonzalez-Sanchez | Compilers | 26 jgs Assignment 2
| Code RETURN What about return 2 + 2?
Dr. Javier Gonzalez-Sanchez | Compilers | 27 jgs Assignment 2
| Code PRINT
Dr. Javier Gonzalez-Sanchez | Compilers | 28 jgs Assignment 2
| Code PRINT What about calling a method (any method)?
Dr. Javier Gonzalez-Sanchez | Compilers | 29 jgs Parser EXPRESSION
Dr. Javier Gonzalez-Sanchez | Compilers | 30 jgs Parser X
Dr. Javier Gonzalez-Sanchez | Compilers | 31 jgs Parser Y
Dr. Javier Gonzalez-Sanchez | Compilers | 32 jgs Parser R
Dr. Javier Gonzalez-Sanchez | Compilers | 33 jgs Parser R
What about >= or <= ?
Dr. Javier Gonzalez-Sanchez | Compilers | 34 jgs Parser E
Dr. Javier Gonzalez-Sanchez | Compilers | 35 jgs Parser A
Dr. Javier Gonzalez-Sanchez | Compilers | 36 jgs Parser B
Dr. Javier Gonzalez-Sanchez | Compilers | 37 jgs Assignment 2
| Code C
Dr. Javier Gonzalez-Sanchez | Compilers | 38 jgs Assignment 2
| Code C What about 5 + calculate_xyz() ?
Dr. Javier Gonzalez-Sanchez | Compilers | 45 jgs Questions
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.