Interpreter dan Compiler…?
Mari kita mengenal pada saat ini beberapa konsep pelaksanaan program yang ditulis dalam bahasa pemrograman tingkat tinggi. Seperti yang telah kita lihat, satu-satunya bahasa yang komputer bisa mengerti adalah apa yang disebut bahasa mesin. Bahasa ini terdiri dari satu set operasi dasar yang eksekusi diimplementasikan dalam hardware prosesor. Kami juga telah melihat bahwa bahasa pemrograman tingkat tinggi memberikan tingkat mesin-independen abstraksi yang lebih tinggi dari bahasa mesin. Oleh karena itu, mereka lebih disesuaikan dengan interaksi manusia-mesin. Tapi ini juga berarti bahwa ada semacam penerjemah antara bahasa pemrograman tingkat tinggi dan bahasa mesin. Terdapat dua macam penerjemah:
- Interpreter
interpreter adalah perangkat lunak yang mampu mengeksekusi code program lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer. Perintah-perintah yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil mengikuti logika yang terdapat di dalam kode tersebut. Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan sebelum program tersebut dieksekusi. -
Compiler
compiler sendiri adalah program sistem yang digunakan sebagai alat bantu dalam pemrogaman.Perangkat lunak yang melakukan proses penterjemahan code (yang dibuat programmer) ke dalam bahasa mesin. Hasil dari terjemahan ini adalah bahasa mesin. Pada beberapa compiler, output berupa bahasa mesin dilaksanakan dengan proses assembler yang berbeda misalnya C + +, VB, Java, perakitan dan sebagainya -
Perbedaan antara Compiler dengan Interpreter :
- Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh kode sumber. Kalau interpreter butuh kode sumber.
- Jika dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah, yaitu parsing ( pembuatan kode objek ) dan linking ( penggabungan kode objek dengan library ) . Kalau interpreter tidak ada proses terpisah.
- Jika compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker untuk menggabungkan kode objek dengan berbagai macam library.
- Interpreter cocok untuk membuat / menguji coba modul ( sub-routine / program-program kecil ). Maka compiler agak repot karena untuk mengubah suatu modul / kode objek kecil, maka harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan.
- Pada kompiler bisa dilakukan optimisasi / peningkatan kualitas kode yang bisa dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter susah atau bahkan tidak bisa dioptimasikan.
-
Gambar Sisim Kerja Interpreter dan compiler
Sumber Informasi:
Translate http://www.pasteur.fr/formation/infobio/python/ch05s02.html
http://endimulyadi210.blogspot.com/