Anda di halaman 1dari 8

BAB I

PENDAHULUAN
A. TEKNIK KOMPILASI
Teknik kompilasi telah lama diberikan di lingkungan pendidikan tinggi bidang computer
di Indonesia. Pembahasan dalam mata kuliah ini biasanya berkisar pada teori automata,
teori kompilasi, teori grammar. Praktek teknik kompilasi pun telah diberikan di lingkungan
laboratorium, walau biasanya masih terbatas pada demonstrasi hal teori, ataupun sekedar
pengenalan compiler yang ada atau banyak digunakan.
Pada dasarnya pengetahuan pembuatan kompiler (compiler construction) ini merupakan
pengetahuan dasar komputasi yang sangat baik sekali. Pengetahuan ini dimanfaatkan pada
beragam aplikasi nantinya. Misal teknik parsing, pengenalan pola teks, optimasi kode dan
lain sebagainya. Bahkan suatu database engine pun di bagian “front end” selalu
menggunakan parsing ini. Pengetahuan tentang kompilasiakan dapat memberikan landasan
bagi programmer untuk menyusun program yang efektif dan efisien. Ketika seseorang
melakukan pemrograman, sebetulnya secara tidak sadar dia akan melakukan proses
penambahan suatu bahasa. Misal pembuatan suatu fungsi (ataupun prosedur) pada
dasarnya merupakan suatu proses “penambahan kosa-kata”dari bahasa pemrograman
tersebut. Dari yang tadinya tidak memiliki fungsi tersebut hingga akhirnya ditambahkan
suatu “vocabulary” untuk melakukan suatu fungsi tersebut. Untuk itulah pemahaman
penyusunan kompiler merupakan suatu dasaryang utama dalam bidang ilmu komputer.
Jadi Teknik Kompilasi Merupakan Teknik dalam melakukan pembacaan suatu program
yang ditulis dalam bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang
disebut bahasa sasaran
Dalam melakukan proses penerjemahan tersebut, sudah barang tentu kompilator akan
melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin ditemukannya.
Proses penerjemahan yang dilakukan oleh kompilator ini disebut proses kompilasi
(compiling).
Bila dipandang sepintas lalu, maka akan timbul beranekaragam kompilator yang dapat
dibuat,yaitu :

a. Bahasa Sumber seperti bahasa FORTRAN, PASCAL, C dan juga bahasa-bahasa lainnya
yang sifat dan pemakaiannya agak spesifik atau khusus, seperti bahasa untuk
program DBASE, SPSS dan lain sebagainya.

1
b. Bahasa Sasaran dapat berupa bahasa sumber lain seperti C, FORTRAN dan lain
sebagainya atau Bahasa Mesin (Machine Language) yang digunakan oleh suatu
prosessor mikro atau sumber komputer besar maupun komputer super. Sejarah
perkembangan suatu kompilator sudah dimulai sejak lama, yaitu pada saat mulai
ditemukannya komputer pada awal 1950-an. Sejak waktu tersebut teknik dan cara
pembentukan suatu kompilator telah berkembang dengan sangat pesat dan
pembentukkan suatu kompilator dapat dilakukan makin mudah. Demikian pula
program bantu (tools) untuk membuat suatu kompilator sudah dapat diperoleh
sehingga pembentukan suatu kompilator dapat dilakukan dengan cepat. Kompilator
pertama yang dibuat adalah kompilator untuk bahasa FORTRAN yang pada saat itu
dikembangkan dengan memakan sejumlah tenaga ahli yang setara dengan pekerjaan
yang dilakukan oleh 18 orang. Dengan adanya program bantu dan tata cara
pembentukan yang sistematis dan tertata dengan baik serta pendefinisian struktur
bahasa yang cermat, maka suatu kompilator untuk bahasa yang terstruktur seperti
PASCAL atau C dapat dikembangkan. Proses kompilasi dari suatu kompilator pada
dasarnya dapat dibagi ke dalam 2 bagian utama yaitu bagian analisis dan bagian
sintesis.

B. KOMPILATOR
Kompilator adalah suatu program yang membaca program yang ditulis dengan bahasa
tertentu (bahasa sumber) dan menerjemahkannya kedalam bahasa lain (bahasa tujuan).
Contoh bahasa sumber adalah bahasa pemrograman tradisional seperti Fortran, pascal, dll.

2
Sedangkan bahasa tujuan pada umumnya merupakan bahasa mesin atau bahasa assemby
yang tergantung terhadap jenis mesinnya.
Proses kompilator dapat digambarkan sebagai berikut :

a.

I. PEMBAGIAN KOMPILASI
Proses kompilasi dari suatu kompilator pada dasarnya dapat dibagi ke dalam 2 bagian
utama yaitu bagian analisis dan bagian sintesis.

 Tahap analisis program yang ditulis dalam bahasa sumber dibagi dan dipecah ke
dalam beberapa bagian yang kemudian akan dipresentasikan ke dalam suatu
bentuk antara dari program sumber. Operasi-operasi yang dilakukan oleh
program sumber ditentukan dan dicatat dalam suatu struktur pohon (tree) yang
disebut dengan nama pohon sintaks (sintax tree) Dalam hal ini setiap nodal pada
tree tersebut menyatakan suatu operasi, sedangkan anak dari nodal (titik)
tersebut memberikan argumen yang diperlukan. Secara umum proses dalam
tahap analis terdiri dari 3 bagian utama, yaitu
a. Proses analisis leksikal
b. Proses analisis sintaktik
c. Proses analisis semantic

 Tahap sintesis yang berikutnya program sasaran dibentuk berdasarkan


representasi antara yang dihasilkan pada tahap analisis.
Untuk tahap sintetis terdiri dari 2 bagian utama, yaitu
a. Proses yang menghasilkan kode (code generator)
b. Proses optimasi kode (code optimizer)

3
Bagan pokok proses kompilasi

Keterangan :
 Program sumber : ditulis dalam bahasa sumber, misal pascal assembler,dsb
 Program sasara : dapat berupa bahasa pemrograman lain atau bahasa mesin pada
suatu komputer
 Scaner : memecah program sumber menjadi besaran leksik/token
 Parser : memeriksa kebenaran dan urutan kemunculan token
 Penganalisa sematik : melakukan analisa sematik, biasanya dalam realisasi akan
digunakan dengan intermediate code generator (bagian yang berfungsi
membangkitkan kode antara)
 Pembentuk kode : membangkitkan kode objek
 Pengoptimal kode : memperkecil hasil dan mempercepat proses
 Tabel : menyimpan semua informasi yang berhubungan dengan proses kompilasi

II. DAMPAK PADA KOMPILASI


1. Hal Positif :
Dapat diterapkan di aplikasi pembunuh virus seperti show kill process. Tapi biasanya
sebuah virus sudah menandai, jika showkillprocess.exe berjalan, maka program tersebut
akan dimatikan (Seperti brontok yang menendang apliaksi regedit). Dengan demikian
dengan menjalankan modul compiler ini kita dapat mengubah isi caption dari program
showkillprocess.exe sehingga caption-nya berbeda dan aplikasi tersebut tidak ditendang
oleh virus tersebut.
2. Hal Negatif :
Bisa diterapkan di aplikasi virus, misalkan untuk memberi penanda pada virus yang akan
digandakan. Misalnya virus a diberi penanda karakter A, otomatis untuk menyebarkan virus

4
tersebut agar tidak terdeteksi antivirus, maka kita harus memberi penanda lain. Dengan
menjalankan modul compiler tersebut kita dapat memberi penanda virus A dengan karakter

III. PEMANFAATAN KOMPILASI


A. PROSES KOMPILASI PADA BAHASA
1. Bahasa Pemrograman

5
2. Translator

Sebuah translator melakukan pengubahan source code/source program (program


sumber) ke dalam target codelobject code/object program (program objek). Source code
ditulis dalam bahasa sumber, sedang object code bisa berupa suatu bahasa pemrograman
lain atau bahasa mesin pada suatu komputer. Ada beberapa macam translator:
 Assembler
Source code adalah bahasa assembly, object code adalah bahasa mesin. Contohnya:
Turbo Assembler dan Macro Assembler.
 Kompilator (Compiler)
Source code adalah bahasa tingkat tinggi (misal bahasa Pascal), object code adalah
bahasa raesin atau bahasa assembly. Source code dan data diproses pada saat yang berbeda
Compile time adalah saat pengubahan source code ke object code. Run time adalah saat
eksekusi object code.

 Interpreter
Interpreter tidak membangkitkan object code, hasil translasi hanya dalam bentuk
internal. Contoh interpreter: BASICA/GW-BASIC, LISP, SMALLTALK. Source code dan data
diproses pada saat yang sama. Proses interpretasi dapat dilihat pada gambar 1.3.

6
4 KOMPILATOR

Pengembangan kompilator untuk sebuah bahasa merupakan pekerjaan yang


kompleks. Kompleksitas kompilator bisa dikurangi bila perancang bahasa pemrograman
mempertimbangkan bermacam-macam faktor perancangan. Karena kita berhubungan
dengan bahasa tingkat tinggi, bagaimanapun suatu model dasar dari kompilator dapat
diformulasikan.
Sebuah kompilator umumnya memiliki dua tugas pokok:
Fungsi Analisis
Fungsi Analisis biasa disebut sebagai Front End. Tugasnya melakukan dekomposisi
program sumber menjadi bagian-bagian dasarnya
Fungsi Sintesis
Fungsi Sintesis biasa disebut sebagai Back End. Tugasnya melakukan pembangkitan
dan optimasi program objek

7
DAFTAR PUSTAKA

1. http://telaga.cs.ui.ac.id/~heru/publications/ModeUserGuidelPascal.pdf
2. http://lecturer.ukdw.ac.id/anton/download/KOMPILER-Modul5.pdf
3. http://pakhartono.files.wordpress.com/2009/10/otomata_01.pdf
4. http://dharmayanti.staff.gunadarma.ac.id/Downloads/files/17573/1Pendahuluan+Ko
mpilasi+%5BCompatibility+Mode%5D.pdf
5. http://fsolihin.files.wordpress.com/2009/09/12-bapk-teknik-kompilasi.pdf
6. http://kuliahonline.unikom.ac.id/?go/kuliah/&getMateriFile=NjMxMQ%3D
%3D&kID=MTE5OQ%3D%3D

Anda mungkin juga menyukai