Janino 2.7.8
Anda dapat mengunduh dalam 5 detik.
Tentang Janino
Janino adalah super kecil, super-fastcompiler yang membaca ekspresi Java, memblokir, atau file sumber, dan menghasilkan bytecode Java yang dimuat dan dieksekusi secara langsung. Ini tidak dimaksudkan untuk menjadi alat pengembangan, tetapi kompilator tertanam untuk tujuan kompilasi run-time, seperti evaluator ekspresi atau "halaman server" mesin seperti JSP. Properti Tujuan desain utama adalah untuk menjaga kompilasi kecil dan sederhana, sementara sebagian mengorbankan kelengkapan. Saya tidak suka ide membawa perpustakaan besar untuk aplikasi sederhana. Lihat Parser untuk daftar fitur bahasa yang diimplementasikan dan hilang. Kapan Anda memerlukan evaluator ekspresi yang efisien? Katakanlah Anda membangun sistem e-commerce, yang menghitung biaya pengiriman untuk barang-barang yang dimasukkan pengguna ke dalam keranjang belanjanya. Karena Anda tidak tahu model biaya pengiriman pedagang pada waktu implementasi, Anda dapat menerapkan serangkaian model biaya pengiriman yang teringa-pikir (biaya tetap, berat, berdasarkan jumlah item, ...) dan memilih salah satu dari mereka pada waktu proses. Dalam praktiknya, Anda pasti akan menemukan bahwa model biaya pengiriman yang Anda terapkan akan jarang cocok dengan apa yang diinginkan pedagang, jadi Anda harus menambahkan model khusus, yang khusus untuk pedagang. Jika model merchant berubah nanti, Anda harus mengubah kode, mengompilasi ulang, dan mendistribusikan ulang perangkat lunak Anda. Karena ini sangat tidak fleksibel, ekspresi biaya pengiriman harus ditentukan pada run-time, bukan pada waktu kompilasi. Ini menyiratkan bahwa ekspresi harus dipindai, diurai, dan dievaluasi pada run-time, itulah sebabnya Anda memerlukan evaluator ekspresi. Evaluator ekspresi sederhana akan mengurai ekspresi dan membuat "sintaks tree". Ekspresi "a + b * c", misalnya, akan dikompilasi menjadi "Sum" objek yang operan pertamanya adalah parameter "a" dan operan kedua WHO adalah "Product" objek yang operan adalah parameter "b" dan "c". Pohon sintaks seperti itu dapat dievaluasi dengan relatif cepat. Namun, kinerja run-time adalah tentang faktor 100 lebih buruk daripada kode Java asli.