मैं अपने खिलौने प्रोग्रामिंग भाषा पर काम कर रहा हूं। अभी के लिए मैं एएसटी से स्रोत भाषा की व्याख्या कर रहा हूं और मैं सोच रहा हूं कि बाइट कोड को संकलित करने के कौन से फायदे हैं और फिर इसे समझना मुझे प्रदान कर सकता है।बाइट कोड को संकलित करने के पीछे क्या प्रेरणाएं हैं?
- समय की वाक्य रचना पेड़ सैकड़ों Traversing एक सरणी निर्देश चलाने की तुलना में धीमी हो सकती है, खासकर सरणी समर्थन हे (1) रैंडम एक्सेस करता है, तो (यानी:
के लिए अब मेरे मन में तीन बातें हैं। 10 निर्देश ऊपर और नीचे कूदना)।
- टाइप किए गए निष्पादन वातावरण में, मेरे पास कुछ रन-टाइम लागतें हैं क्योंकि मेरा एएसटी टाइप किया गया है, और मैं लगातार इसे घुमा रहा हूं (यानी मेरे पास 10 प्रकार के नोड्स हैं और मुझे यह जांचने की ज़रूरत है कि मैं अब किस प्रकार का हूं निष्पादित)। हो सकता है कि एक untyped बाइट कोड को संकलित करने में मदद करने में मदद मिल सकती है, क्योंकि टाइप-चेकिंग और संकलन के बाद, मेरे पास एक untyped मान और कोड होगा।
- बाइट-कोड से संकलन बेहतर पोर्टेबिलिटी प्रदान कर सकता है।
क्या मेरे अंक सही हैं? बाइटकोड को संकलित करने के पीछे कुछ अन्य प्रेरणा क्या हैं?
एक व्याख्याकर्ता पर चलकर यह आपके कोड – Luis
@Luis की पोर्टेबिलिटी बढ़ाता है, हाँ यह पहले से ही मेरे दिमाग में था, मैं जोड़ना भूल गया .. – sinan
@Luis: यह फर्जी है। सीरियलाइज्ड एएसटी समान पोर्टेबल बनाया जा सकता है। बाइटकोड वास्तव में पोर्टेबल नहीं हो सकता है; पायथन बाइटकोड दुभाषिया के प्रत्येक संस्करण के लिए विशिष्ट है। –