Perbedaan antara bahasa yang dikompilasi dan ditafsirkan
- 4603
- 536
- Bennie Herman
Bahasa pemrograman umumnya jatuh ke dalam salah satu dari dua jenis bahasa - bahasa yang dikompilasi atau bahasa yang ditafsirkan. Namun, perbedaannya tidak ada dalam bahasa; itu dalam implementasi. Tidak salah untuk mengatakan bahwa keduanya adalah sifat implementasi bahasa, tetapi bukan sifat bahasa itu sendiri. Menerapkan bahasa pemrograman berarti menjembatani kesenjangan dari pemikiran tingkat tinggi dari programmer ke nol dan yang mesin. Jika dilakukan secara efisien, pemrogram dapat berkonsentrasi pada masalah yang sebenarnya, bukan pada detail mesin. Jadi, bahasa pemrograman dapat dikompilasi atau ditafsirkan berdasarkan implementasi.
Nah, kedua jenis bahasa pemrograman memiliki kekuatannya. Beberapa bahasa mengharuskan semua kode Anda untuk dikompilasi sebelum kode apa pun dapat dieksekusi. Bahasa lain menafsirkan setiap instruksi pada saat kode dieksekusi. Bahkan, bahasa yang dikompilasi umumnya dikompilasi oleh seorang programmer di komputer programmer; Ketika programmer membagikan perangkat lunak, ia berbagi 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 saat run-time. Mari kita lihat perbandingan terperinci antara bahasa yang disusun dan ditafsirkan.
Apa itu bahasa yang dikompilasi?
Komputer hanya mampu menjalankan bahasa mesin, yang merupakan bahasa dari unit pemrosesan pusat (CPU) dan sangat sederhana. Tujuan dari setiap implementasi bahasa pemrograman adalah untuk menerjemahkan program sumber ke dalam bahasa mesin sehingga dapat dieksekusi oleh CPU. Semua implementasi bahasa menerjemahkan program sumber ke dalam beberapa representasi menengah sebelum menerjemahkan representasi perantara ke bahasa mesin. Metode paling langsung untuk menerjemahkan program ke bahasa mesin disebut kompilasi. Program yang ditulis dalam bahasa yang dikompilasi harus dikonversi menjadi format yang berbeda sebelum dijalankan. Kode sumber harus diubah menjadi instruksi yang dapat dibaca mesin sebelum eksekusi. Singkatnya, bahasa yang implementasinya biasanya kompiler dan bukan penafsir disebut bahasa yang dikompilasi.
Apa itu bahasa yang ditafsirkan?
Interpreter adalah program yang ditulis dalam beberapa bahasa lain dan dikompilasi ke dalam bahasa yang dapat dibaca mesin. Interpreter itu sendiri adalah program bahasa mesin dan ditulis untuk membaca program sumber dari bahasa yang ditafsirkan dan menafsirkannya. Bahasa yang ditafsirkan, sebaliknya, tidak menyusun kode sumber ke dalam bahasa mesin sebelum menjalankan program. Itu hanya menafsirkan kode dengan cepat. Jadi, Anda tidak mendapatkan manfaat atau kelemahan dari kesalahan kompilasi. Bahasa yang ditafsirkan memerlukan sepotong perangkat lunak yang disebut juru bahasa, yang mengambil kode sumber dan mengeksekusi satu instruksi sekaligus. Saat Anda menjalankan program sumber yang ditafsirkan, Anda benar -benar menjalankan penerjemah. Interpreter adalah program bahasa mesin yang mengeksekusi semua program yang Anda tulis dalam bahasa yang ditafsirkan.
Perbedaan antara bahasa yang dikompilasi dan ditafsirkan
Dasar -dasar bahasa yang disusun dan ditafsirkan
- Program yang ditulis dalam bahasa yang dikompilasi harus dikonversi menjadi format yang berbeda sebelum dijalankan. Kode sumber harus diubah menjadi instruksi yang dapat dibaca mesin sebelum eksekusi. Bahasa yang ditafsirkan, sebaliknya, tidak menyusun kode sumber ke dalam bahasa mesin sebelum menjalankan program. Itu hanya menafsirkan kode dengan cepat. Bahasa yang ditafsirkan memerlukan sepotong perangkat lunak yang disebut juru bahasa, yang mengambil kode sumber dan mengeksekusi satu instruksi sekaligus.
Kompiler vs. Penerjemah
- Dengan bahasa yang dikompilasi, setidaknya ada dua langkah untuk mendapatkan dari kode sumber ke eksekusi, sementara dengan bahasa yang ditafsirkan, hanya ada satu - eksekusi. Program yang ditulis dalam bahasa yang ditafsirkan tidak dikompilasi - ini ditafsirkan oleh program lain saat berjalan. Program yang ditulis dalam bahasa yang dikompilasi melalui 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 dikumpulkan berjalan lebih cepat dari program yang ditafsirkan, tetapi program yang ditafsirkan dapat dimodifikasi saat program sedang berjalan. Ini membuat program yang ditafsirkan ideal untuk menulis perangkat lunak kinerja langsung. Bekerja dengan bahasa yang dikompilasi bisa bagus karena banyak bug ditemukan saat kode sumber dikompilasi. Bug ini, yang disebut kesalahan kompilasi mencegah kode dari menyusun. 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 sintaks dalam kode Anda; Sebaliknya 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 kode tidak perlu dikompilasi. Bahasa yang ditafsirkan juga menyajikan beberapa masalah keamanan di lingkungan online karena kode berbahaya dapat disuntikkan pertengahan eksekusi.
Bahasa yang disusun vs. Bahasa yang Ditafsirkan: Bagan Perbandingan
Ringkasan VS yang dikompilasi. Bahasa yang ditafsirkan
Singkatnya, kedua bahasa yang disusun dan ditafsirkan memiliki kekuatan. Beberapa bahasa mengharuskan semua kode Anda untuk dikompilasi sebelum kode apa pun dapat dieksekusi. Bahasa lain menafsirkan 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 dikumpulkan berjalan lebih cepat dari program yang ditafsirkan, tetapi program yang ditafsirkan dapat dimodifikasi saat program sedang berjalan.