Bahasa Pengaturcaraan Ditafsirkan vs Disusun: Apakah Perbezaannya?

Setiap program adalah satu set arahan, sama ada untuk menambah dua nombor atau mengirim permintaan melalui internet. Penyusun dan jurubahasa mengambil kod yang boleh dibaca manusia dan menukarnya menjadi kod mesin yang dapat dibaca komputer.

Dalam bahasa yang disusun, mesin sasaran menerjemahkan program secara langsung. Dalam bahasa yang ditafsirkan, kod sumber tidak diterjemahkan secara langsung oleh mesin sasaran. Sebaliknya, program yang berbeza , sebagai jurubahasa, membaca dan melaksanakan kod tersebut.

Baiklah ... tapi apa sebenarnya maksudnya?

Bayangkan anda mempunyai resipi hummus yang ingin dibuat, tetapi ditulis dalam bahasa Yunani kuno. Terdapat dua cara anda, seorang penutur bukan Yunani kuno, untuk mengikut arahannya.

Yang pertama adalah jika seseorang telah menerjemahkannya ke dalam bahasa Inggeris untuk anda. Anda (dan orang lain yang boleh berbahasa Inggeris) boleh membaca resipi versi bahasa Inggeris dan membuat hummus. Fikirkan resipi yang diterjemahkan ini sebagai versi yang disusun .

Cara kedua adalah jika anda mempunyai rakan yang mengenali bahasa Yunani kuno. Apabila anda sudah bersedia untuk membuat hummus, rakan anda duduk di sebelah anda dan menerjemahkan resipi ke dalam bahasa Inggeris semasa anda pergi, baris demi baris. Dalam kes ini, rakan anda adalah jurubahasa untuk versi resipi yang ditafsirkan .

Bahasa yang disusun

Bahasa yang disusun diubah terus menjadi kod mesin yang dapat dilaksanakan oleh pemproses. Akibatnya, mereka cenderung lebih cepat dan lebih efisien untuk melaksanakan daripada bahasa yang ditafsirkan. Mereka juga memberi pengembang lebih banyak kawalan terhadap aspek perkakasan, seperti pengurusan memori dan penggunaan CPU.

Bahasa yang disusun memerlukan langkah "bina" - mereka mesti disusun secara manual terlebih dahulu. Anda perlu "membina semula" program setiap kali anda perlu membuat perubahan. Dalam contoh hummus kami, keseluruhan terjemahan ditulis sebelum sampai kepada anda. Sekiranya pengarang asal memutuskan bahawa dia ingin menggunakan jenis minyak zaitun yang berbeza, keseluruhan resipi perlu diterjemahkan semula dan membenci anda.

Contoh bahasa yang disusun tulen adalah C, C ++, Erlang, Haskell, Rust, dan Go.

Bahasa yang ditafsirkan

Pentafsir berjalan melalui satu baris program demi baris dan melaksanakan setiap arahan. Di sini, jika pengarang memutuskan bahawa dia ingin menggunakan minyak zaitun yang berlainan, dia boleh mengorek yang lama dan menambahkan yang baru. Rakan penterjemah anda kemudian dapat menyampaikan perubahan itu kepada anda semasa ia berlaku.

Bahasa yang ditafsirkan dulunya jauh lebih perlahan daripada bahasa yang disusun. Tetapi, dengan pengembangan kompilasi tepat pada waktunya, jurang itu semakin mengecil.

Contoh bahasa yang ditafsirkan umum adalah PHP, Ruby, Python, dan JavaScript.

Gua Kecil

Sebilangan besar bahasa pengaturcaraan boleh mempunyai pelaksanaan yang disusun dan ditafsirkan - bahasa itu sendiri tidak semestinya disusun atau ditafsirkan. Namun, demi kesederhanaan, mereka biasanya disebut seperti itu.

Python, misalnya, dapat dijalankan sebagai program yang disusun atau sebagai bahasa yang ditafsirkan dalam mod interaktif. Sebaliknya, kebanyakan alat baris perintah, CLI, dan shell secara teorinya dapat diklasifikasikan sebagai bahasa yang ditafsirkan.

Kelebihan dan kekurangan

Kelebihan bahasa yang disusun

Program yang disusun menjadi kod mesin asli cenderung lebih pantas daripada kod yang ditafsirkan. Ini kerana proses menterjemahkan kod pada waktu berjalan menambah overhead, dan boleh menyebabkan program menjadi lebih perlahan secara keseluruhan.

Kelemahan bahasa yang disusun

Kelemahan yang paling ketara ialah:

  • Masa tambahan diperlukan untuk menyelesaikan keseluruhan langkah penyusunan sebelum ujian
  • Pergantungan platform dari kod binari yang dihasilkan

Kelebihan bahasa yang ditafsirkan

Bahasa yang ditafsirkan cenderung lebih fleksibel, dan sering menawarkan ciri seperti menaip dinamik dan ukuran program yang lebih kecil. Juga, kerana jurubahasa melaksanakan kod program sumber itu sendiri, kod itu sendiri tidak bergantung kepada platform.

Kekurangan bahasa yang ditafsirkan

Kelemahan yang paling ketara adalah kelajuan pelaksanaan yang biasa dibandingkan dengan bahasa yang disusun.