Friday, November 9, 2018

Teknik Kompilasi - Mutu Kompilator


Mutu Kompilator
            Beberapa faktor yang mempengaruhi mutu dari sebuah kompilator , antara lain :
1.      Kecepatan dan Waktu proses kompilasi
Waktu proses kompilasi adalah waktu yang di butuhkan pada saat kita menunggu hasil kompilasi. Mutu ini di pengaruhi oleh:
·         Penulisan Algoritma Kompilator
Adalah algoritma yang di gunakan untuk menuliskan program kompilator itu. Misalnya sebuah kompilator lebih cepat melakukan kompilasi di bandingkan lainnya, hal ini di sebabkan karena pembuatan algoritma oleh para pemrogramannya lebih baik saat membuat kompilator tersebut.
·         Kompilator Pengkompilasi
Adalah sebuah program khusus yang menghasilkan kompilator tersebut. Contoh pembuatan Turbo Basic tentu saja tidak menggunakan bahasa Basic tetapi menggunakan bahasa lain dan di kompilasi dengan kompilator lain.
Gambar pembuatan kompilator menggunakan Kompilator Pengkompilasi.


2.      Mutu Program Objek ( Program hasil dari proses kompilasi )
Mutu suatu program objek ditentukan oleh ukuran dan kecepatan eksekusi dari program objek.
Contoh : Perbandingan antara Turbo Pascal 5 dan Turbo Pascal 6, di mana Turbo Pascal 6 lebih baik dari pada Turbo Pascal 5 bila program objek ( exe ) yang di hasilkan berukuran lebih kecil dan lebih cepat di eksekusi. Hal ini di pengaruhi oleh fungsi translasi yang di gunakan oleh kompilator tersebut ( cara untuk melakukan perubahan dari source kode ke object kode ).
3.      Intregated Environment
Merupakan fasilitas – fasilitas terintegrasi yang di miliki oleh kompilator tersebut. Misalnya untuk melakukan editing, debugging, testing. Intregated Enviroment biasa di sebut juga IDE ( Integraterd Development Environment ).
Contoh : Dengan menggunakan CLIPPER ( CLIPPER.EXE ) kita harus melakukan penyuntingan dengan menggunakan suatu program editor (PE.EXE) yang terpisah dari kompilatornya, sedangkan pada Turbo Pascal ( TURBO.EXE ) kita bisa melakukan penyuntingan sekaligus kompilasi dan debug dalam satu lingkungan pemrograman.

Pembuatan Kompilator
Pembuatan suatu kompilator dapat dilakukan dengan :
1.      Bahasa mesin
Tingkat kesulitannya sangat tinggi, karena bahasa mesin ini sangat dekat dengan mesin sehingga sangat tidak manusiawi, dan tingkat ketergantungannya pada mesin sangat tinggi. Pembuatan kompilator dengan bahasa mesin hampir mustahil dilakukan. Bahasa mesin mungkin digunakan saat membuat assembler.
2.      Bahasa assembly
Bahasa assembly bisa dan biasa digunakan sebagai tahap awal pada proses pembuatan sebuah kompilator. 
Keuntungan  pengguna bahasa  assembly adalah program hasil (object code) yang memiliki ukuran kecil. 
Kerugiannya memerlukan usaha yang besar, karena instruksi assembly pendek-pendek (sulit dimengerti) dan memiliki fasilitas yang terbatas. Sehingga masih terdapat kesulitan untuk mengembangkan sebuah kompilator yang secara keseluruhan dibuat dengan bahasa assembly.
3.      Bahasa tingkat tinggi lain pada mesin yang sama
Keuntungannya adalah proses pembuatan kompilator akan lebih mudah, karena menggunakan bahasa tingkat tinggi yang lebih mudah dimengerti dan fasilitasnya lebih baik dibandingkan assembly.
Kerugiannya kompilator  yang dihasilkan akan memiliki ukuran yang besar. Bisa dibayangkan kalau kita akan mengembangkan kompilator untuk bahasa BASIC dengan mengunakan Turbo Pascal.
4.      Bahasa tingkat tinggi yang sama pada mesin yang berbeda
Keuntungan dan kerugiannya sama dengan no ( 3 ), hanya disini memerlukan beberapa tahapan proses kompilasi sebelum didapat kompilator yang diinginkan pada mesin tujuan. Contoh: pembuatan kompilator C untuk DOS, berdasarkan kompilator C yang ada di UNIX.
5.      Bootstrap
Gagasan dari bootstrap adalah kita bisa membangun sesuatu yang besar dengan lebih dahulu membuat bagian intinya. Cara ini diperkenalkan oleh Niklaus Wirth saat membuat kompilator untuk bahasa Pascal.


P0 dibangun dengan assembly, P1 dibangun oleh P0, P2 dibangun oleh P1, dan P3 dibangun oleh P2. Jadi kompilator bahasa P dibuat tanpa harus secara keseluruhan menggunakan assembly.

No comments:

Post a Comment