Thursday, September 28, 2017

Latihan Bab 8 Tenik Komplilasi

1.     Bandingkan keuntungan dan kerugian dari machine dependent vs machine independent optimization!
Jawab
Ø  Machine Dependent Optimizer. Kode dioptimasi sehingga lebih efisien pad mesin tertentu. Optimasi ini memerlukan informasi mengenai feature yang ada pada mesin tujuan dan mengambil keuntungan darinya untuk menghasilkan kode yang lebih pendek atau dieksekusi lebih cepat.
Ø  Machine Independent Optimizer. Strategi optimasi yang bisa diaplikasikan tanpa tergantung pada mesin tujuan tempat kode yang dihasilkan akan dieksekusi nantinya. Mesin ini meliputi optimasi lokal dan optimasi global.

2.     Lakukan optimasi local yang diperlukan pada potongan program berikut, dan jelaskan optimasi apa saja yang diterapkan.
A:=B+10*4;
C:=B+D;
F:=B+D-G;
FOR I:= 1 TO 100 DO
BEGIN
X:=X+I;
A:=A+X;
B:= 7;
END;
Jawab
A:=B+40; 
C:=B+D;
F:=C-G;                                                           
FOR I:= 1 TO 100 DO
BEGIN
X:=X+I;
A:=A+X;
END;

3.     Apakah kita dapat  melakukan optimasi redundant subexpression elimination pada statement berikut, mengapa?
a.       A:=B+C;
      A:=X+Y;
      F:=B+C+G+H;
b.       A:=B+C;
      B:=X+Y;
      F:=B+C+G+H;
Jawab :
a.       (No), karena fariabel A sudah di definisikan kembali dengan ekspresi baru, yang  asalnya A:=B+C menjadi A:=X+Y, sehingga pada F:=B+C+G+H, pada ekspresi B+C tidak dapat di gantikan menjadi fariable A karena A sudah berubah menjadi A:=X+Y.
b.      (Yes), karena A masih terdefinisi sebagai A:=B+C, sehingga F:=B+C+G+H dapat di ubah menjadi F:=A+G+H.

4.     Dapatkah kita melakukan optimasi frequency reduction pada loop berikut,
10 FOR I:=1 TO 10 DO
20   A:=I+1;
30
Jawab :
Bisa, karena nominal 10, 20, 30 tidak terlalu penting untuk di eksekusi sehingga dapat di pindahkan karena kalo tidak di pindahkan hanya akan mengganggu kinerja program.
10
20
30
FOR I:=1 TO 10 DO
A:=I+1;

5.     Apakah cukup efisien melakukan optimasi loop unrolling untuk statement berikut:
FOR I := 1 to 100 DO
A(I) := “   “

Jawab :
Tidak memungkinkan, karena tidak efisien jika harus mengoptimasikan menjadi A(1) – A(100), hanya akan menghabiskan memory.

6.     Penghematan apa yang dilakukan dengan menggantikan intruksi semacam X eksponensial (pangkat) n, bila n=2 (x’) dengan X*X?
Jawab
Kita akan menghemat suatu intruksi yang digunakan atau menghemat variabel yang digunakan.

7.     Perhatikanlah kompilator turbo pascal dan turbo C, adakah pesan kesalahan mengenai unused variabel?
Jawab
Tidak akan ada pesan mengenai unused variabel karena unused variabel tidak pernah dipakai dalam program.

8.     Lakukan optimasi global sederhana pada program berikut,
PROGRAM  Test;
VAR A,B,C: INTEGER;
BEGIN
B:=5;
WHILE  B < 3 DO
B;=B+1;
C:=10 +B;
END.
Jawab :
PROGRAM  Test;
VAR A,B,C: INTEGER;
BEGIN
B:=5;
WHILE  B < 3 DO
B:=B+1;
C:=10 +B;

END.

1 comment:

  1. Lucky Club Casino Site - LuckyClub.live
    Lucky Club Casino is a real Vegas casino. If you play for real money or for real money you can enjoy a luckyclub.live huge variety of great games, promotions,

    ReplyDelete