Skip to main content

Cara Kerja Proses Hybrid (Kombinasi) Antara Kompilasi dan Interpretasi

Beberapa sistem implementasi bahasa pemrograman merupakan kompromi/kombinasi antara teknik kompilasi (compilers) dan interpretasi murni (pure interpreters); Cara kerja implementasi bahasa-bahasa tersebut adalah dengan cara menerjemahkan program/kode bahasa tingkat tinggi ke bahasa menengah/perantara yang dirancang untuk proses interpretasi yang mudah. Metode ini lebih cepat daripada interpretasi murni (pure interpretation) karena statemen-statemen bahasa sumber di-decode hanya sekali. Implementasi semacam ini disebut sistem implementasi hybrid.

Proses yang digunakan dalam sistem implementasi hybrid ditunjukkan pada gambar di bawah ini. Alih-alih menerjemahkan kode bahasa menengah/perantara ke kode mesin, proses tersebut hanya melakukan interpret kode menengah/perantara tersebut.

Cara kerja sistem hybrid antara kompilasi dan interpretasi
Bahasa Perl diimplementasikan dengan menggunakan sistem hybrid. Program Perl sebagian dikompilasi untuk mendeteksi kesalahan sebelum dilakukan interpretasi dan untuk menyederhanakan interpreter. Implementasi awal pada Bahasa Java semuanya sistem hybrid. Bentuk bahasa menengah/perantara-nya, yang disebut dengan byte code, memberikankan portabilitas ke mesin apa pun yang memiliki interpreter untuk byte code dan sistem run-time yang terkait. Keduanya ini disebut dengan Java Virtual Machine (JVM). Sekarang ini ada sistem yang menerjemahkan byte code dari Java ke dalam kode mesin untuk proses eksekusi yang lebih cepat.

Sistem implementasi Just-in-Time (JIT) pada awalnya menerjemahkan program ke bahasa menengah/perantara. Kemudian, selama eksekusi, ia mengkompilasi bahasa menengah ke dalam kode bahasa mesin (machine code) ketika kode-kode bahasa menengah/perantara tersebut dipanggil. Versi kode bahasa mesin disimpan untuk pemanggilan-pemanggilan berikutnya. Sistem JIT sekarang banyak digunakan untuk program Java. Selain itu, bahasa-bahasa .NET semuanya diimplementasikan dengan sistem JIT.

Terkadang suatu implementor dapat menyediakan implementasi yang dikompilasi dan diinterpretasikan untuk suatu bahasa. Dalam hal ini, interpreter digunakan untuk mengembangkan dan men-debug program. Kemudian, setelah kondisi (relatif) bebas bug tercapai, program dikompilasi untuk meningkatkan kecepatan eksekusi.

Comments

Popular posts from this blog

Pengertian Binding dalam Bahasa Pemrograman dan Kapan Terjadinya

Binding dimaksudkan sebagai pengikatan (association) antara suatu entity dengan atributnya, misalnya binding/pengikatan antara suatu variable dengan tipe datanya atau dengan nilainya, atau dapat juga antara suatu operasi dengan simbol, misalnya simbol + dikenali sebagai operasi penjumlahan atau simbol ^ dikenali sebagai operasi pangkat, dll.  Peristiwa binding dan kapan terjadinya binding (biasanya disebut dengan binding time ) berperan penting dalam membicarakan semantics suatu bahasa pemrograman. Beberapa kemungkinan binding time adalah:

Latihan Soal Jawab Matematika Diskrit

Berikut di bawah ini adalah latihan soal jawab untuk matematika diskrit dengan topik-topik: Pernyataan Logika Circuits dan Ekspresi Boolean Argumen (valid/tidak valid) Teori Himpunan Permutasi Fungsi --o0o-- Pernyataan Logika 1. Buatlah tabel kebenaran untuk menentukan yang mana tautology dan yang mana contradiction dalam pernyataan logika (a) dan (b) di bawah ini: a. (p ∧ q) ∨ (∼p ∨ (p ∧ ∼q)) b.  (p ∧ ∼q) ∧ (∼p ∨ q)

Contoh proses normalisasi relasi dari UNF – 1NF – 2NF – dan 3NF

Dalam posting tulisan tentang: “Tujuan dan Manfaat Normalisasi dalam Perancangan Database” , kita sudah mempelajari tentang: “Apa itu normalisasi” dan “Mengapa kita perlu melakukan normalisasi”. Kedua pertanyaan itu sudah terjawab dalam tulisan tersebut.  Kemudian dalam posting tulisan tentang: “Konsep Ketergantungan Fungsional, Normalisasi, dan Identifikasi Primary Key dalam Perancangan Sistem Database” , kita sudah mempelajari suatu konsep penting yang digunakan untuk melakukan normalisasi, yaitu konsep ketergantungan fungsional yang terdiri dari ketergantungan penuh, ketergantungan parsial atau sebagian, dan ketergantungan transitif. Proses normalisasi pertama-tama dilakukan dengan mengidentifikasi adanya ketergantungan-ketergantungan tersebut dalam relasi-relasi dan kemudian menghilangkannya. Cara melakukan normalisasi, mengidentifikasi berbagai macam ketergantungan, dan menghilangkan ketergantungan pada relasi-relasi bisa dipelajari ulang dalam postingan tulisan di at