Sabtu, 13 Oktober 2012

Konsep Kompiler


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