A. Konsep Compiler
1.
Pengertian
Teknik Kompilasi
Arti kata teknik kompilasi, Teknik adalah
suatu Metode atau Cara, sedangkan Kompilasi adalah suatu proses menggabungkan
serta menterjemahkan sesuatu (source program) menjadi bentuk lain. Compile : to translate a program written in a high-level programming language
into machine language
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.
1.
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.
2.
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.
b.
Bagian pernyataan
Program
pascal yang paling sederhana adalah program yang hanya terdiri dari sebuah
bagian pernyataan saja.
Begin
End.
Bentuk
umum dari bagian pernyataan adalah :
Begin
Statement;
End
.
Konsep
Sumber :
Agussalim,
Tutorial
Turbo Pascal 7.0. http://salimkita.blogspot.com. diakses pada Kamis, 20
September 2012.
Anonim, Konsep dasar Pemrograman Pascal.
Anonim. 2007. Teknik Kompiler. http://muktiraga.wordpress.com/2007/10/29/
teknik-kompiler/.
diakses pada Kamis, 20 September 2012.
Setanto, Arif. 2004. Teknik Kompilasi.
Fakultas Teknologi Informasi Budi Luhur.
Tidak ada komentar:
Posting Komentar