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
CSC509 Lecture 06
javiergs
PRO
0
250
CSC509 Lecture 05
javiergs
PRO
0
300
CSC305 Lecture 06
javiergs
PRO
0
210
CSC509 Lecture 04
javiergs
PRO
0
300
CSC305 Lecture 05
javiergs
PRO
0
210
CSC509 Lecture 03
javiergs
PRO
0
330
CSC305 Lecture 04
javiergs
PRO
0
260
CSC305 Lecture 03
javiergs
PRO
0
240
CSC305 Lecture 02
javiergs
PRO
1
260
Other Decks in Programming
See All in Programming
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
500
非同期jobをtransaction内で 呼ぶなよ!絶対に呼ぶなよ!
alstrocrack
0
560
ててべんす独演会〜Flowの全てを語ります〜
tbsten
1
220
Your Perfect Project Setup for Angular @BASTA! 2025 in Mainz
manfredsteyer
PRO
0
140
Pythonスレッドとは結局何なのか? CPython実装から見るNoGIL時代の変化
curekoshimizu
5
1.5k
Model Pollution
hschwentner
1
190
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
180
Reduxモダナイズ 〜コードのモダン化を通して、将来のライブラリ移行に備える〜
pvcresin
2
690
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
240
Cloudflare AgentsとAI SDKでAIエージェントを作ってみた
briete
0
130
Advance Your Career with Open Source
ivargrimstad
0
390
Web Components で実現する Hotwire とフロントエンドフレームワークの橋渡し / Bridging with Web Components
da1chi
3
1.9k
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
54
3k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Balancing Empowerment & Direction
lara
4
680
How to Ace a Technical Interview
jacobian
280
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
850
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Practical Orchestrator
shlominoach
190
11k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
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.