Janino 2.7.8

ใบ อนุญาต: ฟรี ‎ขนาดแฟ้ม: 1.05 MB
‎คะแนนจากผู้ใช้: 2.7/5 - ‎6 ‎โหวต

เกี่ยวกับ Janino

Janino เป็นซุปเปอร์ขนาดเล็กซุปเปอร์ fastcompiler ที่อ่านนิพจน์ Java บล็อกหรือไฟล์ต้นฉบับและสร้าง Java bytecode ที่โหลดและดําเนินการโดยตรง ไม่ได้มีวัตถุประสงค์เพื่อเป็นเครื่องมือในการพัฒนา แต่เป็นคอมไพเลอร์ฝังตัวเพื่อวัตถุประสงค์ในการคอมไพล์รันไทม์เช่นตัวประเมินนิพจน์หรือ "server page" เอ็นจินเช่น JSP แห่ง เป้าหมายการออกแบบที่สําคัญคือการทําให้คอมไพเลอร์มีขนาดเล็กและเรียบง่ายในขณะที่เสียสละความสมบูรณ์บางส่วน ฉันไม่ชอบความคิดในการพกพาห้องสมุดขนาดใหญ่สําหรับการใช้งานที่เรียบง่าย ดู ตัวแยกวิเคราะห์ สําหรับรายการคุณลักษณะภาษาที่นําไปใช้และหายไป คุณต้องการตัวประเมินนิพจน์ที่มีประสิทธิภาพเมื่อใด สมมติว่าคุณสร้างระบบอีคอมเมิร์ซซึ่งจะคํานวณค่าจัดส่งสําหรับสินค้าที่ผู้ใช้ใส่ลงในรถเข็นซื้อของของเขา / เธอ เนื่องจากคุณไม่ทราบรูปแบบค่าจัดส่งของผู้ค้าในเวลาดําเนินการคุณสามารถใช้ชุดของรูปแบบค่าจัดส่งที่นึกถึง (ประจุแบนตามน้ําหนักตามจํานวนรายการ ... ) และเลือกหนึ่งในนั้นในเวลาทํางาน ในทางปฏิบัติคุณจะพบว่ารูปแบบค่าจัดส่งที่คุณนําไปใช้จะไม่ค่อยตรงกับสิ่งที่ผู้ขายต้องการดังนั้นคุณต้องเพิ่มโมเดลที่กําหนดเองซึ่งเป็นแบบเฉพาะของผู้ค้า หากโมเดลของผู้ขายเปลี่ยนแปลงในภายหลัง นิพจน์ค่าจัดส่งควรถูกระบุในขณะทํางาน ไม่ใช่เมื่อคอมไพล์เวลา นี่หมายความว่านิพจน์ต้องถูกสแกนแยกวิเคราะห์และประเมินในขณะทํางานซึ่งเป็นเหตุผลที่คุณต้องการตัวประเมินนิพจน์ ตัวประเมินนิพจน์อย่างง่ายจะแยกวิเคราะห์นิพจน์และสร้าง&แผนภูมิไวยากรณ์" ตัวอย่างเช่น นิพจน์ "a + b * c" จะคอมไพล์ลงในวัตถุ & quot;Sum" ที่เป็นตัวถูกดําเนินการแรกคือพารามิเตอร์ & quot;a" และใครคือตัวถูกดําเนินการตัวที่สองคือ & quot;Product" วัตถุที่เป็นตัวถูกดําเนินการเป็นพารามิเตอร์ & quot;b" และ quot;c" ต้นไม้ไวยากรณ์ดังกล่าวสามารถประเมินได้ค่อนข้างเร็ว อย่างไรก็ตามประสิทธิภาพในขณะทํางานเป็นเรื่องเกี่ยวกับปัจจัย 100 ที่แย่กว่ารหัส Java ดั้งเดิม