You are on page 1of 9

Teknik Kompilasi 14 / 1 - 10

CODE GENERATION
Merupakan tahap terakhir dari kompiler.
Input code generator adalah represen-
tasi intermediate dari source program,
sedangkan outputnya adalah target
program yang ekivalen.
osisi code generator dalam kompiler
adalah se!agai !erikut "
ersyaratan code generator "
output code harus !enar dan !er-
kualitas tinggi yaitu harus mengguna-
kan resources dari target machine
secara e#ekti#
harus e#isien.
$ahan %&ar Matakuliah oleh SINAR SINURAT
'ode
generator
(ym!ol
ta!le
'ode
optimi)er
Source
program
Intermediate
code
Intermediate
code
Target
program *ront end
Teknik Kompilasi 14 / + - 10
ISU DISAIN CODE GENERATOR
,alaupun sangat tergantung kepada
target machine dan operating system,
masalah-masalah penting dalam code
generation adalah "
Input untuk code generator
Target program
Memory Management
Instruction (election
-egister %llocation
emilihan .rutan /valuation
endekatan 'ode 0enerator
I1.T '23/ 0/1/-%T2-
Input terdiri dari representasi inter-
mediate pada source program yang
dihasilkan oleh front-end, !ersama
in#ormasi dalam sym!ol ta!le yang
digunakan untuk menentukan alamat
$ahan %&ar Matakuliah oleh SINAR SINURAT
Teknik Kompilasi 14 / 4 - 10
run time data o!&ect dalam representasi
intermediate.
3iasumsikan !ah5a se!elum code
generation, #ront-end telah melakukan
scan, parse, 6 mener&emahkan source
program ke dalam detail representasi
intermediate detail.
(elain itu, asumsi di atas &uga dilakukan
type checking, sehingga type-con-
version operator dapat disisip dimana
perlu serta semantic error yang telah
terdeteksi.
T%-0/T -20-%M
Target program oleh code generator
yang memenuhi, !entuknya adalah "
%!solute Machine 7anguage
-elocata!le Machine 7anguage
%ssem!ly 7anguage
$ahan %&ar Matakuliah oleh SINAR SINURAT
Teknik Kompilasi 14 / 4 - 10
%!solute machine language " mem-
punyai keuntungan dapat ditempat-
kan dalam lokasi tetap di memory
dan dapat dieksekusi langsung.
'ontoh "
se&umlah 8student-&o!9 compiler,
seperti ,%T*I: dan 7/'
-elocata!le Machine 7anguage ;2!&ect
Module< " mengi&inkan su!program
dikompile secara terpisah ;#le=i!ility<.
(atu set o!&ect module dapat link /
load !ersama-sama pada eksekusi
linking-loader ;perlu usaha ekstra<
%ssem!ly 7anguage " keuntungannya
adalah adanya kemudahan proses
code generation untuk mengenerate
sym!olic instruction dan mengguna-
kan #asilitas makro dari assem!ler
untuk mengenerate code.
$ahan %&ar Matakuliah oleh SINAR SINURAT
Teknik Kompilasi 14 / > - 10
M/M2-? M%1%0/M/1T
Memetakan nama pada alamat data
o!&ect dalam run-time memory yang
!erlangsung !ersama-sama front-end
dan code generator.
3iasumsikan !ah5a three-address sta-
tement mere#er nama kedalam sym!ol-
ta!le entry.
Tipe dalam deklarasi menentukan le!ar
;&umlah storage< yang diperlukan untuk
nama yang dideklarasikan.
I1(T-.'TI21 (/7/'TI21
.ni#ormity dan completeness merupa-
kan #aktor yang penting, &uga instruction
speed dan machine idiom.
$ahan %&ar Matakuliah oleh SINAR SINURAT
Teknik Kompilasi 14 / @ - 10
'ontoh "
Three-address statement, !entuk "
= "A y B )
dimana " =, y, ) dialokasikan secara
static dapat diter&emahkan ke dalam
sekuens code !erikut "
M2: y, -0 /C load y ke register -0 C/
%33 ), -0 /C add ) ke -0 C/
M2: -0, = /C store -0 ke dalam = C/
1amum statement-!y-statement sering
menghasilkan code yang !uruk. 'ontoh
sekuens dari statement
a "A ! B c
d "A a B e
dapat diter&emahkan men&adi "
M2: !, -0
%33 c, -0
M2: -0, a
M2: a, -0
%33 e, -0
M2: -0, d
$ahan %&ar Matakuliah oleh SINAR SINURAT
Teknik Kompilasi 14 / D - 10
3isini statement ketiga dan keempat
akan redundant, &uga statement ketiga
&ika a tidak digunakan secara !erurutan.
-/0I(T/- %772'%TI21
Instruksi yang meli!atkan register
operand !iasanya le!ih pendek dan
le!ih cepat daripada yang meli!atkan
operand dalam memory.
Karena itu, penggunaan register yang
e#isien sangat penting untuk mem-
!angkitkan code yang !aik.
enggunaan register di!agi dalam +
su!-masalah "
1. (elama register allocation, dipilih
varia!le-varia!le yang akan mene-
tap dalam register pada suatu titik
dalam program
$ahan %&ar Matakuliah oleh SINAR SINURAT
Teknik Kompilasi 14 / E - 10
+. (elama register assignment, diam-
!il register khusus dimana varia!el
akan menetap.
Menemukan optimal assignment dari
register untuk varia!el sulit, 5alaupun
dengan single register.
(ecara matematis, pro!lem ini adalah
1-'omplete.
/MI7IF%1 .-.T%1 /:%7.%(I
.rutan komputasi dapat mempengaruhi
e#isiensi pada target code. $e!erapa
urutan komputasi memerlukan register
yang le!ih sedikit untuk menampung
intermediate result daripada yang
lainnya. Mengam!il urutan ter!aik
adalah 1-'omplete ro!lem.
$ahan %&ar Matakuliah oleh SINAR SINURAT
Teknik Kompilasi 14 / G - 10
/13/K%T%1 '23/ 0/1/-%T2-
Kriteria terpenting adalah menghasilkan
code yang !aik.
Tu&uan perancangan adalah "
mudah diimplementasikan
mudah ditest
mudah di-maintain
REVIEW
$ahan %&ar Matakuliah oleh SINAR SINURAT

You might also like

  • Uio
    Uio
    Document2 pages
    Uio
    indrabayutama
    No ratings yet
  • TRF
    TRF
    Document1 page
    TRF
    indrabayutama
    No ratings yet
  • TRF
    TRF
    Document1 page
    TRF
    indrabayutama
    No ratings yet
  • Ty
    Ty
    Document1 page
    Ty
    indrabayutama
    No ratings yet
  • Sat
    Sat
    Document1 page
    Sat
    indrabayutama
    No ratings yet
  • Asa
    Asa
    Document1 page
    Asa
    indrabayutama
    No ratings yet
  • Top
    Top
    Document3 pages
    Top
    indrabayutama
    No ratings yet
  • Jadwal Uts Pta 2014
    Jadwal Uts Pta 2014
    Document1 page
    Jadwal Uts Pta 2014
    indrabayutama
    No ratings yet
  • FDT
    FDT
    Document1 page
    FDT
    indrabayutama
    No ratings yet
  • Kentang KFCCCCCCC
    Kentang KFCCCCCCC
    Document1 page
    Kentang KFCCCCCCC
    indrabayutama
    No ratings yet
  • Asa
    Asa
    Document1 page
    Asa
    indrabayutama
    No ratings yet
  • Nomor 4
    Nomor 4
    Document1 page
    Nomor 4
    indrabayutama
    No ratings yet
  • Name Service
    Name Service
    Document6 pages
    Name Service
    Nasrul Gusrian
    No ratings yet
  • CV Trio
    CV Trio
    Document4 pages
    CV Trio
    indrabayutama
    No ratings yet
  • Tugas SBD BAB 2 (Noftra Rolly)
    Tugas SBD BAB 2 (Noftra Rolly)
    Document3 pages
    Tugas SBD BAB 2 (Noftra Rolly)
    indrabayutama
    No ratings yet
  • Bab 4
    Bab 4
    Document7 pages
    Bab 4
    indrabayutama
    No ratings yet
  • Buanawan Examm 97
    Buanawan Examm 97
    Document3 pages
    Buanawan Examm 97
    indrabayutama
    No ratings yet
  • Warna Anak
    Warna Anak
    Document1 page
    Warna Anak
    indrabayutama
    No ratings yet
  • 1 Mendeskripsikan Macam Macam Matrix
    1 Mendeskripsikan Macam Macam Matrix
    Document18 pages
    1 Mendeskripsikan Macam Macam Matrix
    indrabayutama
    No ratings yet
  • IPV6 Evolusi
    IPV6 Evolusi
    Document32 pages
    IPV6 Evolusi
    Ahmad Jumadi
    No ratings yet
  • Wawancara
    Wawancara
    Document3 pages
    Wawancara
    indrabayutama
    No ratings yet
  • Minggu2 Business Partner & Product Di Compiere
    Minggu2 Business Partner & Product Di Compiere
    Document6 pages
    Minggu2 Business Partner & Product Di Compiere
    indrabayutama
    No ratings yet
  • Buku Ref
    Buku Ref
    Document1 page
    Buku Ref
    indrabayutama
    No ratings yet
  • AKS Bogorkab
    AKS Bogorkab
    Document8 pages
    AKS Bogorkab
    indrabayutama
    No ratings yet
  • Samsung Center
    Samsung Center
    Document1 page
    Samsung Center
    indrabayutama
    No ratings yet
  • Sistem Digital
    Sistem Digital
    Document40 pages
    Sistem Digital
    Wiguna Al-Khatiri Prasetyo
    No ratings yet
  • Kapta14 1
    Kapta14 1
    Document1 page
    Kapta14 1
    indrabayutama
    No ratings yet
  • Kapta14 1
    Kapta14 1
    Document1 page
    Kapta14 1
    indrabayutama
    No ratings yet
  • Kapta14 1
    Kapta14 1
    Document1 page
    Kapta14 1
    indrabayutama
    No ratings yet