Kompiler adalah program perangkat lunak yang mengubah kode pemrograman komputer yang ditulis oleh programmer manusia menjadi kode biner (kode mesin) yang dapat dipahami dan dijalankan oleh CPU tertentu. Tindakan mengubah kode sumber menjadi kode mesin disebut “kompilasi”. Saat semua kode Anda diubah sekaligus sebelum mencapai platform yang menjalankannya, prosesnya disebut Ahead of Build (AOT).
Bahasa pemrograman apa yang menggunakan kompiler AOT?
Banyak bahasa pemrograman populer membutuhkan kompiler yang meliputi:
- Benteng
- Pascal
- bahasa campuran
- C.
- C++
- Cepat
Sebelum Java dan C#, semua program komputer dikompilasi atau diinterpretasikan .
Bagaimana dengan kode yang ditafsirkan?
Kode yang ditafsirkan mengeksekusi instruksi dalam program tanpa mengkompilasinya ke dalam bahasa mesin. Kode yang ditafsirkan mem-parsing kode sumber secara langsung, digabungkan dengan mesin virtual yang menerjemahkan kode untuk mesin pada saat dijalankan, atau memanfaatkan kode yang telah dikompilasi. Javascript umumnya ditafsirkan .
Kode yang dikompilasi berjalan lebih cepat daripada kode yang ditafsirkan karena tidak perlu melakukan pekerjaan apa pun pada saat tindakan dilakukan. Pekerjaan sudah selesai.
Bahasa pemrograman apa yang menggunakan kompiler JIT?
Java dan C# menggunakan compiler just-in-time. Kompiler just-in-time adalah kombinasi dari kompiler dan juru bahasa AOT. Setelah menulis program Java, kompiler JIT mengubah kode menjadi bytecode alih-alih kode yang berisi instruksi untuk prosesor platform perangkat keras tertentu. Bytecode adalah platform independen dan dapat dikirim dan dieksekusi pada platform apa pun yang mendukung Java. Dalam artian, program disusun dalam proses dua tahap .
Demikian pula, C# menggunakan kompiler JIT yang merupakan bagian dari runtime bahasa umum, yang mengelola eksekusi semua aplikasi .NET. Setiap platform target memiliki kompiler JIT. Selama platform dapat memahami konversi bahasa dari bytecode perantara, program akan berjalan.
Pro dan kontra kompilasi AOT dan JIT
Kompilasi Ahead-of-time (AOT) menawarkan waktu startup yang lebih cepat, terutama ketika banyak kode dijalankan saat startup. Namun, ini membutuhkan lebih banyak memori dan lebih banyak ruang disk. Build JOT harus menargetkan yang paling tidak mampu dari semua kemungkinan platform eksekusi.
Kompilasi Just-in-time (JIT) membuat profil platform target saat dijalankan dan dikompilasi ulang dengan cepat untuk meningkatkan kinerja. JIT menghasilkan kode yang ditingkatkan karena menargetkan platform saat ini, meskipun biasanya membutuhkan waktu lebih lama untuk dijalankan daripada kode yang dikompilasi AOT.