Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
3Activity
0 of .
Results for:
No results containing your search query
P. 1
TEKNIK OPTIMASI

TEKNIK OPTIMASI

Ratings: (0)|Views: 39|Likes:
Published by Eddy Purwoko

More info:

Published by: Eddy Purwoko on Jan 27, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

08/02/2012

pdf

text

original

 
TEKNIK OPTIMASI
 
1. Teknik Optimasi
 Bertujuan menghasilkan kode program dengan ukuran yang lebih kecil, sehingga lebih cepateksekusinya. Berdasarkan ketergantungan pada mesin :
     
 
Machine Dependent OptimizerKode dioptimasi sehingga lebih efisien pad mesin tertentu. Optimasi ini memerlukaninformasi mengenai feature yang ada pada mesin tujuan dan mengambil keuntungandarinya untuk menghasilkan kode yang lebih pendek atau dieksekusi lebih cepat.
     
 
Machine Independent OptimizerStrategi optimasi yang bisa diaplikasikan tanpa tergantung pada mesin tujuan tempatkode yang dihasilkan akan dieksekusi nantinya. Mesin ini meliputi optimasi lokal danoptimasi global.
1.1 Optimasi Lokal
 optimasi yang dilakukan hanya pada suatu blok dari
source code
, dengan cara :
1. Folding
 Nilai konstanta atau ekspresi yang bisa dievaluasi pada saat compile time diganti dengannilai komputasinya.Contoh instruksi :A:=2+3+Bdiganti menjadiA:=5+B
2. Redundant  Subexpression Elimination
 Menggunakan hasil komputasi terdahulu daripada melakukan komputasi ulang.Contoh urutan instruksi :A:=B+CX:=Y+B+CB+C redundan, bisa memanfaatkan hasil komputasi sebelumnya, selama tidak adaperubahan nilai pada variabel.
3. Optimasi dalam sebuah iterasi
 
 
Loop Unrolling : menggantikan suatu loop dengan menulis statement dalam loopbeberapa kali. Hal ini didasari pemikiran, sebuah iterasi pada implementasi level rendahakan memerlukan operasi sebagai berikut.
 
Inisialisasi / pemberian nilai awal pada variabel loop. Dilakukan sekali pada saatpermulaan eksekusi loop.
 
Pengujian, apakah variabel loop telah mencapai kondisi terminasi.
 
Adjustment yaitu penambahan atau pengurangan nilai pada variabel loop dengan jumlahtertentu.
 
Operasi yang terjadi pada tubuh perulangan (loop body).Dalam setiap perulangan akan terjadi pengujian dan adjusment yang menambahwaktu eksekusi.Contoh instruksi :FOR I:=1 to 2 DOA[I]:=0;dioptimasi menjadi
 
A[1] := 0;A[2] := 0;Pada instruksi pertama yang menggunakan iterasi perlu dilakukaninisialisasi setiap eksekusi loop, pengetesan, adjustment, dan operasi pada tubuhperulangan. Yang kesemuanya itu menghasilkan banyak instruksi. Karena itu denganoptimasi hanya memerlukan dua instruksi assignment.
 
Frequency Reduction : memindahkan statement ke tempat yang lebih jarang dieksekusi.Contoh instruksi :FOR I:=1 TO 10 DOBEGINX:=5;A:=A+1;END;variabel X dapat dikeluarkan dari iterasi, menjadi :X:=5;FOR I:=1 TO 10 DOBEGINA:=A+1END;
4
. Strength Reduction
 Mengganti suatu operasi dengan jenis operasi lain yang lebih cepat dieksekusi.Contoh :pada beberapa komputer operasi perkalian memerlukan waktu lebih banyak untukdieksekusi dari pada operasi penjumlahan, maka penghematan waktu bisa dilakukan denganmengganti operasi perkalian tertentu dengan penjumlahan. Contoh lain :A := A + 1Dapat digantikan denganINC(A)
1.2 Optimasi Global
 Dilakukan dengan analisis flow, yaitu suatu graph berarah yang menunjukkan jalur yangmungkin selama eksekusi program. Ada 2 kegunaan optimasi global, yaitu bagi paraprogrammer dan untuk compiler itu sendiri.
     
 
B
agi Programmer
 
y
 
Unreachable / dead code : Kode yang tidak pernah dieksekusiMisal :X := 5;IF X = 0 THENA := A + 1Instruksi
A
:=
A
+ 1
 Tidak pernah dikerjakan karena kondisi X tidak pernah menjadi 0, sehingga memperlambatproses.
y
 
Unused parameter : parameter yang tidak pernah digunakan dalam prosedurMisal :Procedure penjumlahan(a,b,c; Integer);Var x : integer;
 
Beginx := a + b;EndParameter c tidak pernah digunakan sehingga tidak perlu diikutsertakan dikarenakan padaprosedur penjumlahan c tidak pernah dikenakan suatu proses atau nilai
y
 
Unused variable : variabel yang tidak pernah digunakan dalam program.Misal :Var a,b : Integer;Begina := 5;end;Variabel b tidak pernah digunakan dalam manipulasi, sehingga tidak perlu dideklarasikan
y
 
Variable : variabel yang dipakai tanpa nilai awalMisal :Var a,b : Integer;Begina := 5;a := a + b;end;Variabel b digunakan tetapi tidak memiliki harga awal
     
 
Bagi Compiler
y
 
Meningkatkan efisiensi eksekusi program
y
 
Menghilangkan useless code / kode yang tidak terpakai
T
AB
EL INFORM
A
SI
 
2. Tabel Informasi
 Fungsi Tabel Informasi atau Tabel Simbol :
 
Membantu pemeriksaan kebenaran semantik dari program sumber.
 
Membantu dan mempermudah pembuatan
int 
ermed 
iat 
e code
dan proses pembangkitankode.Untuk mencapai fungsi tersebut dilakukan dengan menambah dan mengambil atributvariabel yang dipergunakan pada program dari tabel. Atribut, misalnya nama, tipe, ukuranvariabel.Tabel Simbol berisi daftar dan informasi
de
ntifi 
er 
pokok yang terdapat dalam programsumber, disebut Tabel Pokok / Utama.Tabel Pokok belum mengcover semua informasi, untuk itu disediakan tabel lagi sebagaipelengkap Tabel Pokok.Untuk mengacu pada tabel simbol yang bersesuaian dengan suatu
in
de
ntifi 
er 
tertentu, makapada Tabel Pokok harus disediakan field yang bisa menjembatani
de
ntifi 
er 
dari Tabel Pokokke tabel-tabel lain yang bersesuaian. Untuk itu, pemilihan elemen tabel pada Tabel Pokokmaupun tabel lainnya, merupakan sesuatu yang sangat penting.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->