Professional Documents
Culture Documents
Review UAS-20220120013452
Review UAS-20220120013452
E→T|EAT
T→F|TMF
F → (E) | int
A → + |-
M→*|/
a. Buatlah diagram transisi Go To
b. Buatlah SLR table-nya
c. Lakukan stack implementation untuk string : 3 + 16 / (4 – 2)
0. E’ E 6. F int
1. ET 7. A+
2. EEAT 8. A-
3. TF 9. M*
4. TTMF 10. M/
5. F (E)
Page 1 of 10
State Action Goto First Follow
int + - * / ( ) $ E T F M A E {int, (} {$, +, -, )}
0 S5 S4 1 2 3 T {int, (} {$, +, -, ), /, *}
1 S7 S8 Acc 6 F {int, (} {$, +, -, ), /, *}
2 R1 R1 S10 S11 R1 R1 9 M {/, *} {int, (}
3 R3 R3 R3 R3 R3 R3 A {+, -} {int, (}
4 S5 S4 12 2 3
5 R6 R6 R6 R6 R6 R6
6 S5 S4 13 3
7 R7 R7
8 R8 R8
9 S5 S4 14
10 R9 R9
11 R10 R10
12 S7 S8 S15 6
13 R2 R2 S10 S11 R2 R2 9
14 R4 R4 R4 R4 R4 R4
15 R5 R5 R5 R5 R5 R5
Page 2 of 10
Diketahui statement berikut: (5-2) * (4-3) SYNTAX DIRECTED TRANSLATION
Buatlah Annotated Parse Tree nya berdasarkan skema translasi
dibawah ini
A→ C {B.i = C.val}
B {A.val = B.s}
B→ -
C {B1.i = B.i – C.val}
B1 {B.s = B1.s}
B→ ε {B.s = B.i}
C→ E {D.i = E.val}
D {C.val = D.s}
D→ *
E {D1.i = D.i * E.val}
D1 {D.s = D1.s}
D→ ε {D.s =D.i}
E→ ( A ) {E.val = A.val}
E→ num {E.val = num.val}
Page 3 of 10
Buatlah annotated parsig tree untuk string : 0101000
Dan berapa hasil dari S.value ?
Gunakan Syntax Directed Translation berikut :
Production Semantic Rules
List.pos = 3
S → List 100 R R.Bits
S.value = (List.value + 4) * 2
R → R1 0 R.Bits = R1.Bits + 1
R→Ԑ R.Bits = 0
List1.pos = List.pos + 1
List → List1 Bit Bit.pos = List.pos
List.value = List1.value + Bit.value
Bit.pos = List.pos List.value =
List → Bit
Bit.value
Bit → 0 Bit.value = 0
Bit → 1 Bit.pos
Bit.value = 2
Page 4 of 10
Buatlah annotated parsig tree untuk string : 4, 2, 6, 3, 8 +
Dan berapa hasil dari S.value ?
Gunakan Syntax Directed Translation berikut :
Page 5 of 10
Diketahui statement sebagai berikut: INTERMEDIATE CODE GENERATOR
A = - ((A + B) * (C / D)) – (D + E)
Buatlah:
a. Directed Acyclic Graph (DAG)
b. Quadruple
c. Triple
=
-
uminus
+ /
+
A B C D E
Quadruple
Op Arg 1 Arg 2 Result
+ A B T1
/ C D T2
* T1 T2 T3
uminus T3 T4
+ D E T5
- T4 T5 T6
= T6 A
Triple
Op Arg 1 Arg 2
1 + A B
2 / C D
3 * (1) (2)
4 uminus (3)
5 + D E
6 - (4) (5)
7 = (6) A
Page 6 of 10
x:=1;
y:=x+10;
while (x<y) {
x:=x+1;
if (x%2==1) then
y:=y+1;
else y:=y-2;
}
Page 7 of 10
Diketahui Statement sbb :
A = A - B / C + (B - C) + C * D
Buatlah :
a. DAG
b. Three Address Code
c. Quadruples
d. Triples
Jawaban:
=
b. TAC
t1 = B/C
t2 = B – C
+ t3 = C * D
t4 = A – t1
t5 = t4 + t2
t6 = t5 + t3
+ A = t6
/ - *
A B C D
Page 8 of 10
Diketahui penggalan program sbb : Code Generator
a = 10;
b = 5;
c = 6;
while (b <= 10) {
if (a <= 10)
c = b + 4;
else {
b = b + 2;
a = a – 1;
}
do{
a= a + 1 ;
b = b - 2;
} while (a%2 == 1);
};
Page 9 of 10
Buatlah Code Generator 1. Mov #10, h
int m, h; 2. Mov h, R0
h = 10; 3. Mod #2, R0 -> R0 = R0%2
do { 4. Eq #1, R0 -> R0 = R0 ==1
if (h%2 == 1){ 5. Jmpf R0, (19) -> ke else
m = h * 2; 6. Mov h, R0
while (m < h) 7. Mul #2, R0
m = h + 2; 8. Mov R0, m
m = h – 1; 9. Lt h, R0 -> R0 = R0 < h
} 10. Jmpf R0, (15) -> ke m = h – 1
else m = h – 5; 11. Mov h, R0
h = h + 4; 12. Add #2, R0
} while (h < 20); 13. Mov R0, m
14. Jmp , (9)
15. Mov h, R0
16. Sub #1, R0
17. Mov R0, m
18. Jmp , (22)
19. Mov h, R0
20. Sub #5, R0
21. Mov R0, m
22. Mov h, R0
23. Add #4, R0
24. Mov R0, h
25. Lt #20, R0
26. Jmpt R0, (2)
27. …
Page 10 of 10