Interpreter adalah perangkat lunak yang
mampu mengeksekusi code program (yang ditulis oleh programmer) lalu
menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi
yang diminta oleh programmer tersebut. 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.
Sedangkan
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.
Untuk lebih
jelas mengenai perbedaan antara Interpreter dengan Compiler, ada baiknya saya
jelaskan lebih terperinci mengenai dua hal ini.
Perbedaan
antara Compiler dengan Interpreter :
1. Jika
hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh kode
sumber. Kalau interpreter butuh kode sumber.
2. 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.
3. 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.
4.
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.
5. 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.