Anda di halaman 1dari 8

1LkNIk kCMILASI | 1LCkI 8AnASA DAN AU1CMA1A

nurul Al Padl 10109932 |II17k 1



TEKNIK KOMPILASI


1.1. Definisi Teknik Kompilasi
Teknik merupakan suatu Metode atau Cara, sedangkan kompilasi adalah
suatu proses menggabungkan serta menterjemahkan sesuatu menjadi bentuk lain.
Sehingga Teknik kompilasi adalah Metode atau cara menggabungkan dan
menterjemahkan sesuatu (yang dalam hal ini adalah source code) menjadi bentuk
lain. Dalam teknik kompilasi ini terdapat beberapa komponen yang mendukung
dalam proses kompilasi.

1.2. Komponen Dalam Teknik Kompilasi
omponen dalam teknik kompilasi ini adalah Translator. Translator adalah
suatu program yang mengambil input sebuah program yang ditulis pada satu
bahasa program (source language) ke bahasa lain (The object on target language).
Yang termasuk ke dalam source language disini adalah seperti Cobol, Pascal,
Fortran dan lainnya, sedangkan yang termasuk ke dalam object language adalah
low-level language atau bahasa mesin. Dan translator seperti ini disebut dengan
Compiler.
Selain compiler ada juga interpreter, meskipun berbeda pada proses
penterjemahannya tapi Iungsi keduanya sama yaitu menterjemahkan source
language menjadi object language.

1.3. Pengelompokan Proses Kompilasi
Proses ompilasi dikelompokkan ke dalam dua kelompok besar, yaitu :
nalisa : source language dipecah dan dibentuk menjadi intermediate
representation.
Sintesa : membuat object language dari representation intermediate.




1LkNIk kCMILASI | 1LCkI 8AnASA DAN AU1CMA1A

nurul Al Padl 10109932 |II17k 2

1.4. Bahasa Pemograman
da beberapa bahasa yang diproses dalam kompilasi, diantaranya :
ahasa Mesin : entuk paling rendah dari bahsa komputer (berupa kode
numerik).
ahasa ssembly : entuk simbolik dari bahasa mesin (berupa kode : DD,
dll).
ahasa Problem Oriented : termasuk sebagai bahasa tingkat tinggi (SQL, Myob,
dll)
ahasa Tingkat Tinggi : memberikan Iungsi kontrol program, kalang, block dan
prosedur.

1.5 Teknik Kompilasi
Teknik kompilasi adalah Metode atau cara menggabungkan dan menterjemahkan
sesuatu (yang dalam hal ini adalah source language) menjadi bentuk lain (object
language). Teknik kompilasi ini membuat suatu bahasa menjadi dimengerti baik oleh
user maupun komputer. pabila kita analogikan, teknik ini seperti translator bahasa atau
penerjemah yang mana menerjemahkan satu bahasa ke bahasa lain agar mempermudah
komunikasi. User mungkin harus mempelajari terlebih dahulu bahasa mesin yang hanya
dimengerti oleh komputer agar dapat melakukan intruksi atau melakukan suatu
prosedur/Iungsi pada komputer apabila tidak ada teknik kompilasi ini. Sehingga
sekarang bahasa tingkat tinggi (high-level programming language) dapat dikompilasi ke
dalam bahasa tingkat rendah (bahasa mesin) yang hanya dimengerti oleh komputer saja.

Proses kompilasi dapat digambarkan sebagai berikut :


Gbr 1. Proses Teknik Kompilasi
1LkNIk kCMILASI | 1LCkI 8AnASA DAN AU1CMA1A

nurul Al Padl 10109932 |II17k 3

Proses kompilasi dikelompokkan ke dalam dua kelompok besar :
1.1 nalisa : program sumber dipecah-pecah dan dibentuk menjadi bentuk antara
(intermediate representation).
2.1 $intesa : membangun program sasaran yang diinginkan dari bentuk antara.

Fase-Iase proses sebuah kompilasi adalah sebagai berikut :

Gbr 2. Fase Proses Kompilasi

Program Sumber (Source Program) :berupa rangkaian karakter yang diinputkan.
Penganalisa leksikal
Membaca program sumber, karakter demi karakter. Sederetan (satu atau lebih)
karakter dikelompokkan menjadi satu kesatuan mengacu kepada pola kesatuan
kelompok karakter (token) yang ditentukan dalam bahasa sumber (source
language). elompok karakter yang membentuk sebuah token dinamakan lexeme
untuk token tersebut. Setiap token yang dihasilkan disimpan di dalam tabel
simbol. Sederetan karakter yang tidak mengikuti pola token akan dilaporkan
sebagai token tak dikenal (unidentified token).
1LkNIk kCMILASI | 1LCkI 8AnASA DAN AU1CMA1A

nurul Al Padl 10109932 |II17k 4

Contoh : Misalnya pola token untuk identifier I adalah : I huruf(hurufangka)*.
Lexeme ab2c dikenali sebagai token sementara lexeme 2abc atau abC tidak
dikenal.
Penganalisa sintaks : memeriksa kesesuaian pola deretan token dengan aturan
sintaks yang ditentukan dalam bahasa sumber. Sederetan token yang tidak
mengikuti aturan sintaks akan dilaporkan sebagai kesalahan sintaks (sintax error).
Secara logika deretan token yang bersesuaian dengan sintaks tertentu akan
dinyatakan sebagai pohon parsing (parse tree).
Penganalisa semantik : memeriksa token dan ekspresi dari batasan-batasan yang
ditetapkan. atasan-batasan tersebut misalnya :
a. panjang maksimum token identifier adalah 8 karakter,
b. panjang maksimum ekspresi tunggal adalah 80 karakter,
c. nilai bilangan bulat adalah -32768 s/d 32767,
d. operasi aritmatika harus melibatkan operan-operan yang bertipe sama.
Pembangkit kode antara : membangkitkan kode antara (intermediate code)
berdasarkan pohon parsing. Pohon parse selanjutnya diterjemahkan oleh suatu
penerjemah yang dinamakan penerfemah berdasarkan sintak (syntax-directed
translator). Hasil penerjemahan ini biasanya merupakan perintah tiga alamat
(three-address code) yang merupakan representasi program untuk suatu mesin
abstrak. Perintah tiga alamat bisa berbentuk quadruples (op, arg1, arg2, result),
tripels (op, arg1, arg2). Ekspresi dengan satu argumen dinyatakan dengan
menetapkan arg2 dengan - (strip, dash)
Pengoptimal kode : melakukan optimasi (penghematan space dan waktu
komputasi), jika mungkin, terhadap kode antara.
Pembangkit kode : membangkitkan kode dalam bahasa target tertentu (misalnya
bahasa mesin).





1LkNIk kCMILASI | 1LCkI 8AnASA DAN AU1CMA1A

nurul Al Padl 10109932 |II17k 3

Dalam proses ompilasi dibutuhkan Translator yang melakukan pengubahan
source code / source program ke dalam object code.
ategori Translator ada tiga :
Compiler
Source code yang diubah adalah bahasa tingkat tinggi (high-level programming
language) dan Object Code-nya adalah bahasa mesin atau assembly. Source code
dan data diproses bersamaan.

Gbr 3. Compiler
ssembler
Source code yang diubah adalah bahasa ssembly dan Object Code-nya adalah
bahasa mesin. Contoh : Turbo ssembler.

Gbr 4. ssembler







1LkNIk kCMILASI | 1LCkI 8AnASA DAN AU1CMA1A

nurul Al Padl 10109932 |II17k 6

Interpreter
Source code dan data diproses bersamaan. Tetapi tidak membangkitkan object
code. Contoh : SIC, SPSS, DSE III.

Gbr 5. Interpreter
Compiler dapat dibuat dengan :
a. ahasa Mesin
Tingkat kesulitannya tinggi, bahkan hampir mustahil dilakukan. arena
manusia sulit mempelajari bahasa mesin.
b. ahasa ssembly
ahasa ssembly bisa dan biasa digunakan sebagai tahap awal pada proses
pembuatan sebuah compiler. Namun Iasilitasnya terbatas.
c. ahasa Tingkat Tinggi
Proses pembuatan compiler akan lebih mudah, karena mudah dipelajari.
Misal membuat compiler Pascal dengan bahasa C.
d. ootsrap
Pembuatan compiler bertingkat.

Dalam pembuatan compiler ini diperlukan standar atau aturan tata bahasa. Tata
bahasa ini berupa sekumpulan variabel-variabel, simbol-simbol terminal dan non-
terminal yang dibatasi aturan produksi.

1LkNIk kCMILASI | 1LCkI 8AnASA DAN AU1CMA1A

nurul Al Padl 10109932 |II17k 7

Tahun 1956-1959 Noam Chomsky melakukan penggolongan tingkatan dalam
bahasa menjadi empat tipe. Penggolongan tingkatan itu disebut dengan hirarki
Chomsky.

Tipe 0 (Unrestricted)
Tidak ada batasan pada aturan produksi.
Contoh : bc De
Tipe 1 (Context Sensitive)
Panjang string ruas kiri harus lebih kecil atau sama dengan ruas kanan .
Contoh : b DeF
CD eF
Tipe 2 (Context Free Grammar)
Ruas kiri harus tepat satu simbol variabel.
Contoh : CdeFg
D cDe
Tipe 3 (Regular)
Ruas kanan hanya memiliki maksimal 1 simbol non-terminal dan diletakkan
paling kanan sendiri.
Contoh : e
eIg
eIgH
C D

turan produksi digunakan agar penerapan pada pembuatan tata bahasa
dikomputer lebih mudah dan menghasilkan suatu penterjemah yang dapat
diandalkan. iasanya aturan produksi dinyatakan dalam bentuk u (u
menghasilkan ). u merupakan simbul untuk ruas kiri, dan merupakan simbol
untuk ruas kanan. Simbol-simbolnya pun bisa berupa terminal dan variabel,
dimana variabel (non-terminal) masih bisa diturunkan menjadi simbol lainnya.

1LkNIk kCMILASI | 1LCkI 8AnASA DAN AU1CMA1A

nurul Al Padl 10109932 |II17k 8

iasanya simbol terminal disimbolkan dengan huruI kecil (a, b , c, d, e, dst),
sedangkan untuk simbol non-terminal disimbolakn denga huruI besar (, , C,
D, E , dst).

Contoh aturan produksi sebagai berikut :
T a, T menghasilkan a
E T , ab, E menghasil

Anda mungkin juga menyukai