Janino 2.7.8
आप 5 सेकंड में डाउनलोड कर सकेंगे।
करीबन Janino
जेनिनो एक सुपर-छोटा, सुपर-फास्टकंपियर है जो जावा अभिव्यक्ति, ब्लॉक या स्रोत फ़ाइल पढ़ता है, और जावा बाइटकोड उत्पन्न करता है जिसे सीधे लोड और निष्पादित किया जाता है। इसका उद्देश्य एक विकास उपकरण नहीं है, बल्कि रन-टाइम संकलन उद्देश्यों के लिए एक एम्बेडेड कंपाइलर है, जैसे अभिव्यक्ति मूल्यांकनकर्ता या जेएसपी जैसे "सर्वर पेज" इंजन। गुण प्रमुख डिजाइन लक्ष्य संकलक को छोटा और सरल रखना था, जबकि आंशिक रूप से पूर्णता का त्याग करना था। मैं सरल अनुप्रयोगों के लिए चारों ओर विशाल पुस्तकालयों ले जाने का विचार पसंद नहीं है । लागू और लापता भाषा सुविधाओं की सूची के लिए पार्सर देखें। आपको एक कुशल अभिव्यक्ति मूल्यांकनकर्ता की आवश्यकता कब है? मान लें कि आप एक ई-कॉमर्स सिस्टम बनाते हैं, जो उपयोगकर्ता द्वारा अपनी शॉपिंग कार्ट में डाले गए आइटम के लिए शिपिंग लागत की गणना करता है। क्योंकि आप कार्यान्वयन के समय व्यापारी के शिपिंग लागत मॉडल को नहीं जानते हैं, इसलिए आप शिपिंग लागत मॉडल का एक सेट लागू कर सकते हैं जो दिमाग में आते हैं (फ्लैट चार्ज, वजन के अनुसार, वस्तुओं की संख्या से, ...) और रन-टाइम पर उनमें से एक का चयन करें। व्यवहार में, आप निश्चित रूप से पाएंगे कि आपके द्वारा लागू किए गए शिपिंग लागत मॉडल शायद ही कभी व्यापारी चाहते हैं, इसलिए आपको कस्टम मॉडल जोड़ना होगा, जो व्यापारी-विशिष्ट हैं। यदि व्यापारी का मॉडल बाद में बदलता है, तो आपको अपना कोड बदलना होगा, अपने सॉफ़्टवेयर को फिर से संकलित और फिर से वितरित करना होगा। क्योंकि यह इतना अनम्य है, शिपिंग लागत अभिव्यक्ति रन-टाइम पर निर्दिष्ट की जानी चाहिए, न कि संकलन समय पर। इसका मतलब यह है कि अभिव्यक्ति को स्कैन किया जाना चाहिए, पार्स किया जाना चाहिए और रन-टाइम पर मूल्यांकन किया जाना चाहिए, यही वजह है कि आपको अभिव्यक्ति मूल्यांकनकर्ता की आवश्यकता है। एक सरल अभिव्यक्ति मूल्यांकनकर्ता एक अभिव्यक्ति को पार्स करेगा और एक और उद्धृत; वाक्य विन्यास पेड़ और उद्धृत; बनाएगा। उदाहरण के लिए, अभिव्यक्ति और उद्धृत;ए + बी * सी एंड उद्धृत;, एक "Sum" ऑब्जेक्ट में संकलित होगा जो पहला ऑपरेंड पैरामीटर "a" है; और कौन दूसरा ऑपरेंड है एक "प्रोडक्ट" ऑब्जेक्ट जो ऑपरेंड्स पैरामीटर और उद्धृत;बी" और "c"; हैं । इस तरह के एक वाक्य विन्यास पेड़ अपेक्षाकृत जल्दी मूल्यांकन कर सकते हैं। हालांकि, रन-टाइम प्रदर्शन देशी जावा कोड की तुलना में 100 के कारक के बारे में है।