Perbedaan Antara Bahasa yang Dikompilasi dan Diartikan

Bahasa pemrograman umumnya termasuk dalam salah satu dari dua jenis bahasa - bahasa yang dikompilasi atau bahasa yang ditafsirkan. Namun, perbedaannya bukan pada bahasa; itu dalam implementasi. Tidak salah untuk mengatakan bahwa keduanya adalah properti dari implementasi bahasa, tetapi bukan properti dari bahasa itu sendiri. Menerapkan bahasa pemrograman berarti menjembatani kesenjangan dari pemikiran tingkat tinggi programmer ke nol dan yang ada di mesin. Jika dilakukan secara efisien, programmer dapat berkonsentrasi pada masalah yang sebenarnya, bukan pada detail mesin. Jadi, bahasa pemrograman dapat dikompilasi atau ditafsirkan berdasarkan implementasinya.

Nah, kedua jenis bahasa pemrograman ini memiliki kelebihan. Beberapa bahasa mengharuskan semua kode Anda dikompilasi sebelum salah satu kode dapat dieksekusi. Bahasa lain menginterpretasikan setiap instruksi pada saat kode dieksekusi. Bahkan, bahasa yang dikompilasi umumnya dikompilasi oleh seorang programmer di komputer programmer; ketika programmer membagikan peranti lunaknya, ia membagikan 0 dan 1 yang dikompilasi, tetapi bukan kode sumber. Namun, dengan bahasa yang ditafsirkan, kode disimpan dalam format yang sama dengan yang Anda masukkan dan harus diterjemahkan pada saat run-time. Mari kita lihat perbandingan terinci antara bahasa yang dikompilasi dan ditafsirkan.

Apa itu Bahasa yang Dikompilasi?

Komputer hanya mampu mengeksekusi bahasa mesin, yang merupakan bahasa dari central processing unit (CPU) dan sangat sederhana. Tujuan dari implementasi bahasa pemrograman adalah untuk menerjemahkan program sumber ke dalam bahasa mesin sehingga dapat dieksekusi oleh CPU. Semua implementasi bahasa menerjemahkan program sumber ke beberapa representasi perantara sebelum menerjemahkan representasi perantara ke bahasa mesin. Metode yang paling langsung menerjemahkan program ke bahasa mesin disebut kompilasi. Program yang ditulis dalam bahasa yang dikompilasi harus dikonversi ke dalam format yang berbeda sebelum dijalankan. Kode sumber harus diubah menjadi instruksi yang dapat dibaca mesin sebelum dieksekusi. Singkatnya, bahasa yang implementasinya biasanya adalah kompiler dan bukan penerjemah disebut bahasa terkompilasi.

Apa itu Bahasa yang Diterjemahkan?

Interpreter adalah program yang ditulis dalam bahasa lain dan dikompilasi ke dalam bahasa yang dapat dibaca mesin. Penerjemah itu sendiri adalah program bahasa mesin dan ditulis untuk membaca program sumber dari bahasa yang ditafsirkan dan menafsirkannya. Bahasa yang ditafsirkan, sebaliknya, tidak mengkompilasi kode sumber ke dalam bahasa mesin sebelum menjalankan program. Itu hanya mengartikan kode dengan cepat. Jadi, Anda tidak mendapatkan manfaat atau kelemahan dari kesalahan kompilasi. Bahasa yang ditafsirkan membutuhkan perangkat lunak yang disebut interpreter, yang mengambil kode sumber dan mengeksekusi satu instruksi pada satu waktu. Ketika Anda menjalankan program sumber yang ditafsirkan, Anda benar-benar menjalankan juru bahasa. Interpreter adalah program bahasa mesin yang mengeksekusi semua program yang Anda tulis dalam bahasa yang ditafsirkan.

Perbedaan antara Bahasa yang Dikompilasi dan Diartikan

Dasar-dasar Bahasa yang Dikompilasi dan Diartikan

- Program yang ditulis dalam bahasa yang dikompilasi harus dikonversi ke dalam format yang berbeda sebelum dijalankan. Kode sumber harus diubah menjadi instruksi yang dapat dibaca mesin sebelum dieksekusi. Bahasa yang ditafsirkan, sebaliknya, tidak mengkompilasi kode sumber ke dalam bahasa mesin sebelum menjalankan program. Itu hanya mengartikan kode dengan cepat. Bahasa yang ditafsirkan membutuhkan perangkat lunak yang disebut interpreter, yang mengambil kode sumber dan mengeksekusi satu instruksi pada satu waktu.

Kompiler vs. Juru Bahasa

- Dengan bahasa yang dikompilasi, setidaknya ada dua langkah untuk mendapatkan dari kode sumber ke eksekusi, sementara dengan bahasa yang ditafsirkan, hanya ada satu - eksekusi. Suatu program yang ditulis dalam bahasa yang ditafsirkan tidak dikompilasi - ia ditafsirkan oleh program lain saat dijalankan. Sebuah program yang ditulis dalam bahasa yang dikompilasi melewati proses untuk mengubahnya dari format teks yang dapat dibaca manusia menjadi format yang dapat dibaca mesin. Sebuah program yang disebut kompiler membuat transisi ini.

Kegunaan

- Program yang dikompilasi berjalan lebih cepat daripada program yang ditafsirkan, tetapi program yang ditafsirkan dapat dimodifikasi saat program sedang berjalan. Ini membuat program yang ditafsirkan ideal untuk menulis perangkat lunak pertunjukan langsung. Bekerja dengan bahasa yang dikompilasi bisa menyenangkan karena banyak bug ditemukan ketika kode sumber dikompilasi. Bug ini, yang disebut kesalahan kompilasi mencegah kompilasi kode. Sebaliknya, bahasa yang ditafsirkan tidak dikompilasi, jadi Anda tidak mendapatkan manfaat atau kelemahan dari kesalahan kompilasi.

Debugging

- Dengan bahasa yang ditafsirkan, semua debugging terjadi saat run-time. Tidak ada langkah kompilasi di mana Anda dapat membuang semua kesalahan sintaksis dalam kode Anda; alih-alih, Anda harus menjalankan program untuk menemukan kesalahan di dalamnya. Ini menjadi masalah ketika Anda menafsirkan program memodifikasi file, atau membuat perubahan pada sumber daya permanen. Ini membuat beberapa bug lebih sulit ditangkap karena kodenya tidak perlu dikompilasi. Bahasa yang ditafsirkan juga menghadirkan beberapa masalah keamanan di lingkungan online karena kode berbahaya dapat disuntikkan saat eksekusi.

Bahasa yang Dikompilasi vs. Bahasa yang Diartikan: Bagan Perbandingan

Ringkasan Bahasa yang Dikompilasi vs. Diartikan

Singkatnya, bahasa yang dikompilasi dan diinterpretasikan memiliki kelebihan. Beberapa bahasa mengharuskan semua kode Anda dikompilasi sebelum salah satu kode dapat dieksekusi. Bahasa lain menginterpretasikan setiap instruksi pada saat kode dieksekusi. Perbedaan utama antara keduanya adalah bahwa setidaknya ada dua langkah untuk mendapatkan dari kode sumber ke eksekusi dengan bahasa yang dikompilasi. Namun, dengan bahasa yang ditafsirkan, hanya ada satu langkah - eksekusi. Program yang dikompilasi berjalan lebih cepat daripada program yang ditafsirkan, tetapi program yang ditafsirkan dapat dimodifikasi saat program sedang berjalan.