Anda di halaman 1dari 42



TEKNIK
KOMPILASI
| 
 

Nama : Ir. R. „  . M.Kom
Alamat : Jl. Semampir Tengah IV/5
Surabaya
Telp/HP : (031) 5924598 ;
0856-452-40099
Email : heroe_s@ymail.com
heroe.siswojo@gmail.com
Pekerjaan : Wiraswasta
Alumni : UGM Yogyakarta
Istri/anak :
 (UPN) /  (Unair)
POKOK BAHASAN
R R


RR 
  

RRR 
 
 

R 
 
 


R 

 


 


RR 



 

RRR  

R R R  ! 

1. Bahasa Pemrograman
2. Translator
3. Model Kompilator
4. Mutu Kompilator
5. Pembuatan Kompilator
R   „ !"!

• Manusia berinteraksi dg media bhs


• Dgn bhs menyampaikan gagasan n pe
mikiran
• Dlm pemrograman komp, bhs progr
sbg sarana komunikasi antara
manusia n masalahnya dg komp.
• Š  |




  
 
 

 
 

• | 
|
 
|   

|
 
   |
• |     

 



  

  
  

 

# $

 ! 

%   &
' 


#   
 
 ! 

 Bentuk terendah dr bhs komputer


 Setiap
 
 



! "
 
 | 


| 
##  
%  &
 Bentuk simbolik dr bhs mesin
 Setiap operasi memp kode simbol
mis: ADD (penjumlahan)
MUL (perkalian)
 Sekumpulan instruksi bs dibentuk
jd mikroinstruksi
 Tersedia alat bantu u/ diagnostik
(debug) yg tdk ada di bhs mesin
´´ 
 ýontoh produk yg ada u/ pengem
bangan n debug adl Turbo Assem-
bler dr Borland, Macro Assembler
dr Microsoft
 Instruksi dlm bhs assembly biasa
nya terdiri dr bbrp field
' 


 Disebut tk tinggi krn lebih dekat
dg manusia
 Bahasa ini memberikan fasilitas
lebih banyak a.l.: kontrol program
yg terstruktur, block, prosedur)
 ýontoh : Pascal, Basic dll
'   
 
 Bahasa ini dpt menyelesaikan mslh
dg aplikasi yg spesifik
 ýontoh: SQL (Structured Query
Language) u/ aplikasai database,
GOGO u/ aplikasi teknik sipil
 Bahasa yg problem oriented kdg di
masukkan bhs tk tinggi
 



$
1. Mudah dipelajari, tanpa memp latar
blk mengerti h/w, krn tdk ada ke-
tergantungan pd h/w
2. Lbh dekat dg permasalahan
3. Programer tdk perlu tahu represen-
tasi data dlm bentuk internal di
memory. Bbrp konversi tlh dilaku
kan oleh sistem
´´ 
4. Memberikan bnyk pilihan struktur
kontrol, spt :
 kondisional (IF-THEN-ELSE)
 looping (REPEAT..UNTIL, FOR)
 nested statement
5. Program lebih mudah di debug
6. Kemampuan struktur data yg lebih
baik shg memfasilitasi pengopera-
sian suatu solusi
´´ 
ë. Suatu pekerjaan dpt diserahkan pd
tim, memungkinkan pembag kerja
8. Kompatibilitas n dokumentasi yg lbh
baik dlm pengemb program
9. Tdk bergantung pd mesin shg punya
portabilitas tinggi
R %  

w Melakukan perubahan source


code/ source program ke
target code/ object code/
object program
w Source code ditulis bhs sumber,
sdg target code ditulis kedlm
bhs pemrograman
!! 

   
 ( )
 R
   
   
• Source code adl bhs assembler
• Object code adl bhs mesin
• ýontoh Turbo Assembler & Macro
Assembler
   

   


  
* ! * + 
!
 ( )
• Source code adl bhs tk tggi (Pascal)
• Object code adl bhs mesin
• Source n data diproses saat yg ber-
beda (Turbo Pascal)
    

      „R


 
 $

• ýompile time : Saat (waktu) perubah


an souce code ke object code
• Run Time : Saat (waktu) eksekusi
object code
 R
   

• Interpreter tdk membangkitkan


object code, hasil translasi hanya
dlm bentuk internal
• ýontoh :
 Š $%&Ú Š  '( ´
• Source code dan Data diproses pd
saat yg sama
   


  R  
 „R
  

Bahasan difokuskan pada


Kompilator dan perkembangannya
R ' ! ! R
• Lompilator mrpk pek yg komplek
• Bisa disederhanakan bila programer
pertimbangkan faktor perancangan
• Karena berhubungan dg bhs tk tggi
mk kompilator dpt diformulasikan.
• Pada umumnya kompilator memp 2
(dua) tugas pokok :
 


• Disebut Front End, tugasnya lakukan
dekomposisi program sumber men-
jadi bagian-bagian dasar

 

 
• Disebut Back End, tugasnya lakukan
pembangkitan dan optimasi progr
object
Model Kompilator
   
 

Symatic R
 ,
Lexical Analyser ýode
  
Analyser Intermidiate Generator

(Scanner) (Parser)

ýode
Symatic Optimizer
Analyser
(Parser)

2 
  

$
• Scanner : pemecah progr sumber jd
besaran leksik/token
• Parser : pemeriksa besar n urutan
• Analisis Semantic : lakukan analisis
digabung dgn intermidiate code
generator
• ýode Generator : Bangkitkan code
object
• ýode optimizer : perkecil hasil dan
percepat hasil
• Tabel simbol : Simpanan semua inf
yg berhub dg proses kompilasi
  ( )
• Mrpk deretan simbol (huruf, digit, +,
-, ´,µ dst)
• Memuat konstr bhs dasar, mis nama
var, label, konstanta, keyword dan
operator
• ýontoh :
 SP masukan bg lexical analyzer, tu
juannya memisahkan teks
 Lexical lakukan analisis sintaks tk
rendah
 U/ eff tiap klas dr token diberikn
angka representasi internal n unik
 Misal
var : angk representasi : 1
konst : angk represenasi : 2
label : angk representasi : 3
operator + : dg angka 4 dsb
 ýontoh instruksi berikut :
PERIKSA: IF A > B THEN X = Y ;
PERIKSA 3
: 26
IF 20
A 1
> 15
B 1
THEN 21
X 1
= 10
Y 1
; 2ë
• Dlm analisis sintaksis hrs ada penge-
lompokan kdlm klas sintaksis, mis:
 Expression
 Statement
 Procedure
• Parser memberikan pohon sintaks,
 daun adl token
 non daun representasikan kelas
sintaks
• ýontoh: Analisis suatu statement
(A + B) * (ý + D)
• Bisa menghasilkan kelas sintaks a.l.
 <factor>
 <term>
 <expression>
ù
  

ù   

ù    ù   

ù    ù
  

ù
   ù
   ù   


ù
    ù    ù    ù   

ù    ù    ù   


ù   
 

 %| 
 Š)$
w U/ ekspresi infix (A+B)*(ý+D) meng-
hasilkn intermediate form berupa
kuadrapel
Ä 
Ä  

Ä 
 
w Dikonversikan ke notasi Polish-sufix
 
w Dihasilkan bhs essembly format sbb:
! 
 

! 
 


! 
!


Keterangan :
LDA A : load isi A ke akumulator
ADD B : tambahkan isi B ke akumulator
STO T1 : simpan isi akumulator ke T1
LDA ý : load isi ý ke akumulator
ADD D : tambahkan isi D ke akumulator
STO T2 : simpan isi akumulator ke T2
LDA T1 : load isi T1 ke akumulator
MUL T2 : kalikan T2 dg isi akumulator
STO T3 : simpan isi akumulator ke T3
(T1, T2, T3 : temporary storage)
R ' !! R
Mutu kompilator tergantung pd bbrp
faktor yaitu :
1. Kecep & waktu proses kompilasi
2. Mutu program objek
3. Integrated Environment
1. Kecep & waktu proses kompilasi
Tergantung pd hal-hal :
 Penulisan Algoritma Kompilator, yaitu
algoritma yg digunakan u/ menulis
program kompilator tsb
 Kompilator pengkompilasi, sebuah
program khusus yg menghasilkan
kompilator tsb
2. Mutu program objek
Tergantung