Anda di halaman 1dari 4

Pengertian Teknik Kompilasi

Kompilator (Inggris: compiler) adalah sebuah program komputer yang berguna untuk
menerjemahkan program komputer yang ditulis dalam bahasa pemrograman tertentu
menjadi program yang ditulis dalam bahasa pemrograman lain. Kompilator melakukan
proses kompilasi dengan cara menganalisis kode sumber secara keseluruhan, sehingga
waktu yang dibutuhkan untuk melakukan kompilasi lebih lama, namun hasilnya lebih cepat
dalam proses eksekusi daripada program yang dibuat dengan menggunakan teknik
interpretasi dengan interpreter.

Proses Penerjemahan Compiler

Compiler berbeda dengan interpreter, jika ada kesalahan pada proses input kode tidak
akan bisa dilanjtkan proses penerjemahannya, dan akan muncul error messages yang
harus segera diperbaiki jika ada kesalahan.

2. Bahasa Pemrograman Compiler

Istilah kompilator biasa digunakan untuk program komputer yang menerjemahkan program
yang ditulis dalam bahasa tingkat-tinggi (semacam bahasa Pascal, C++, BASIC,
FORTRAN, Visual C#, Java) menjadi bahasa mesin, biasanya dengan bahasa Assembly
(assembler) sebagai perantara.

3. Struktur Compiler

Bagian-bagian Compiler:

a. Lexical Analiysis (scanner), Lexical Analysis sering disebut Scanner bertugas untuk
mendekomposisi program sumber menjadi bagian-bagian kecil. Tugasnya secara detail
adalah mengindentifikasi semua besaran yang membangun suatu bahasa;
mentransformasikan, dan menentukan jenis token; menangani kesalahan dan tabel simbol.
Contoh besaran Leksikal :

1. Identifier, dapat berupa keyword atau nama kunci, seperti IF.. ELSE, BEGIN..END
(pada Pascal), INTEGER (pascal), INT,FLOAT (bahasa C).
2. Konstanta, terdiri dari besaran yang merupakan bilangan bulat (integer), bilangan
pecahan (float/Real), boolean (true/false), karakter, string, dan sebagainya.

3. Operator, terdiri dari operator aritematika ( + – * /), operator logika ( < = > ).

4. Delimiter, berguna sebagai pemisah/pembatas, seperti kurung buka, kurung tutup,


titik, koma,titik dua, titik-koma

5. White Space, pemisah yang diabaikan oleh program seperti : enter, spasi, ganti baris,
akhir file.

b. Syntax Analysis, bertugas memeriksa kebenaran urutan dari token-token yang


terbentuk oleh lexical analysis. Syntax Analysis sering disebut Parser, sedangkan proses
pen-deteksian-nya (pengenalan token) disebut dengan parsing. Pengelompokan token-
token kedalam class syntax (bentuk syntax), seperti procedure, Statement,dan expression.

c. Semantics Analyser, proses ini adalah proses kelanjutan dari proses kompilasi
sebelumnya, yaitu analisa leksikal (scanning) dan analisa sintaks (parsing). Parser hanya
akan mengenali simbol-simbol ‘=’, ‘+’ dan ‘*’, parser tidak mengetahui makna dari simbol-
simbol tersebut, untuk mengenali simbol-simbol tersebut Compiler menggunakan Analysis
Semantics. Pemeriksaan biasa dilakukan pada tabel indentifier, tabel display, dan
tabel block.

d. Intermediate Code, bertujuan untuk memperkecil usaha dalam membuat compilator


dari sejumlah bahasa ke sejumlah mesin.

e. Code Optimization, bertujuan untuk mengoptimalkan code, terdiri dari:

1. Dependensi Optimasi, bertujuan untuk menghasilkan kode program yang berukuran


lebih kecil dan cepat.

2. Optimasi Lokal, adalah optimasi yang dilakukan hanya pada suatu blok dari source
code.

3. Optimasi Global, biasanya dilakukan dengan suatu graph terarah yang menunjukkan
jalur yang mungkin selama ekskusi programa.

f. Table Management,memiliki dua fungsi penting yaitu : (1) membantu pemeriksaan


kebenaran semantik dari program sumber, (2) membantu dan mempermudah dalam
pembuatan intermediate code dan proses pembangkitan kode. Ada beberapa jenis Tabel
Informasi:

1. Tabel identifier, berfungsi menampung semua identifier yang terdapat dalam program.

2. Tabel Array, berfungsi menampung informasi tambahan untuk sebuah array.

3. Tabel blok, mencatat variabel-variabel yang ada pada blok yang sama.
4. Tabel Real, menyimpan elemen tabel bernilai real.

5. Tabel string,menyimpan informasi string.

6. Tabel display, mencatat blok yang aktif.

g. Error Handling, yaitu kesalahan program dalam proses penerjemahan pada Compiler.
Kesalahan program dapat berupa :

1. Kesalahan Leksikal karena kesalahan dalam mengetik/mengeja.

2. Kesalahan Sintaks karena kesalahan rumus, misalnya dalam operasi aritematika


dengan tanda kurung yang jumlahnya kurang.

3. Kesalahan Semantic karena tipe data yang salah atau variabel yang belum
didefinisikan.

4. Konsep Pascal

Pascal adalah bahasa tingkat tinggi yang orientasinya pada segala tujuan, dirancang oleh
Prof. Niklaus Wirth dari Technical University di Zurich, Switzerland. Nama pascal diambil
sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan philosophi terkenal abad
17 dari Perancis.

Struktur dari suatu program pascal terdiri dari


sebuah judul program dan suatu blok program atau badan program. Blok program dibagi
lagi menjadi dua bagian, yaitu : bagian deklarasi dan bagian pernyataan. Secara ringkas,
struktur suatu program pascal dapat terdiri dari:

1. Judul program

2. Blok program

a. Bagian Deklarasi, Bagian deklarasi digunakan bila didalam program menggunakan


pengenal (identifier) yang dapat berupa label, konstanta, tipe, variable, prosedur dan fungsi.

1. Deklarasi Konstanta, diawali dengan kata cadangan Const diikuti oleh kumpulan
identifier yang diberi suatu nilai konstanta. Data konstanta nilainya sudah ditentukan dan
pasti, tidak dapat dirubah didalam program

2. Deklarasi Variabel, Variabel adalah identifier yang berisi data yang dapat diubah-ubah
nilainya didalam program. Menggunakan kata cadangan Var sebagai judul didalam bagian
deklarasi variable dan diikuti oleh satu atau lebih identifier yang dipisahkan koma, diikuti
dengan titik dua dan tipe dari datanya diakhiri dengan titik koma.
3. Deklarasi Tipe, Pascal menyediakan beberapa macam tipe data, yaitu :

1) tipe data sederhana, terdiri dari :

a. tipe data standar : integer, real, char, string, Boolean.

b. Tipe data didefinisikan pemakai : enumerated atau scalar, subrange

2) Tipe data terstruktur : array, record, file, set

3) Tipe data penunjuk

4. Deklarasi Label, Jika program menggunakan statement Goto untuk meloncat ke suatu
statement yang tertentu, maka dibutuhkan suatu label pada statement yang dituju dan label
tersebut harus di deklarasikan terlebih dahulu pada bagian deklarasi. Menggunakan kata
cadangan Label diikuti oleh kumpulan identifier label dengan dipisahkan oleh koma dan
diakhiri dengan titik koma.

5. Deklarasi Prosedur, Prosedur merupakan bagian yang terpisah dari program dan
dapat diaktifkan dimanapun didalam program. Prosedur dibuat sendiri bilamana program
akan dibagi-bagi menjadi beberapa blok-blok modul. Prosedur dibuat didalam program
dengan cara mendeklarasikannya dibagian deklarasi prosedur. Menggunakan kata
cadangan Procedure.

6. Deklarasi Fungsi, Fungsi juga merupakan bagian program yang terpisah mirip dengan
prosedur, tetapi ada beberapa perbedaannya. Kata cadangan yang digunakan Function.

Anda mungkin juga menyukai