Minggu ke 7, Sesi ke 11
b. 1*2*3*(4+5)n
2. Apa kegunaan dari semantic analyzer? Berikan penjelasan dengan menggunakan kalimat
Anda sendiri.
3. Diberikan sebuah potongan program Java. Identifikasilah tipe dari error dari setiap
potongan program tersebut apakah tipenya lexical, syntactic, semantic static atau
semantic dynamic error. Lexical error terdeteksi oleh Scanner sedangkan Syntactic
terdeteksi oleh parser. Semantic static terdeteksi oleh semantic analyzer pada saat waktu
compile, sementara semantic dynamic terdeteksi pada saat runtime. Berikanlah
penjelasan alasan Anda mengkategorikan error untuk potongan program ini.
a. Syntax tree
b. Quadruples
c. Triples
d. Indirect Triples
1. a
2.
3.
5.
a.
b. T1 = b + c
T2 = -T1
T3 = a+T2
+ b c T1
0
1
- T1 T2
2 + a T2
c. Triples
# Op Arg 1 Arg 2
(0) + b c
(1) - (0)
(2) + a (1)
d. Indirect Triples
# Op Arg 1 Arg 2
(11) - (10)
(12) + a (11)
# Statement
(1) (10)
(2) (11)
(3) (12)