हाँ, यह भाषा का संकलन और व्याख्या दोनों है। फिर हम आम तौर पर इसे व्याख्या भाषा क्यों कहते हैं?
देखें कि यह दोनों कैसे संकलित और व्याख्या किए गए हैं?
सबसे पहले मैं यह बताना चाहता हूं कि यदि आप जावा दुनिया से हैं तो आपको मेरा जवाब ज्यादा पसंद आएगा।
जावा में स्रोत कोड पहले javac संकलक के माध्यम से बाइट कोड में परिवर्तित हो जाता है, फिर JVM को निर्देशित किया जाता है (निष्पादन उद्देश्य के लिए मूल कोड बनाने के लिए जिम्मेदार)। अब मैं आपको दिखाना चाहता हूं कि हम जावा को संकलित भाषा के रूप में कहते हैं क्योंकि हम देख सकते हैं कि यह वास्तव में स्रोत कोड को संकलित करता है और सारांश देता है। फ़ाइल (कुछ भी नहीं लेकिन बायटेकोड) के माध्यम से देता है:
javac Hello.java -------> हैलो.क्लास का उत्पादन करता है फ़ाइल का
जावा नमस्ते --------> JVM को निर्देशन बायटेकोड निष्पादन उद्देश्य के
एक ही बात अजगर यानी पहले स्रोत कोड संकलक तो करने के लिए निर्देशित के माध्यम से बाईटकोड में परिवर्तित हो जाता के साथ होता है PVM (निष्पादन प्रयोजन के लिए मूल कोड पैदा करने के लिए जिम्मेदार)। अब मैं आपको दिखाना चाहता हूं कि हम आमतौर पर पायथन को एक व्याख्या की गई भाषा कहते हैं क्योंकि संकलन दृश्य के पीछे होता है
और जब हम अजगर कोड को इसके माध्यम से चलाते हैं:
अजगर हेलो -------> सीधे कोड को उत्तेजित करता है और हम आउटपुट को साबित करते हुए देख सकते हैं कि कोड वाक्यविन्यास रूप से सही है
@ अजगर हेलो ऐसा लगता है कि यह सीधे निष्पादित होता है, लेकिन वास्तव में यह पहली बार उत्पन्न करता है जिसे व्याख्याकार द्वारा निष्पादन उद्देश्य के लिए मूल कोड का उत्पादन करने के लिए व्याख्या की जाती है।
CPython - संकलन और व्याख्या दोनों की जिम्मेदारी लेता है।
यदि आपको अधिक विवरण की आवश्यकता हो तो नीचे की पंक्तियों में देखें :
मैंने कहा था कि CPython स्रोत कोड को संकलित करता है, लेकिन वास्तविक संकलन की मदद से होता है cython तो व्याख्या की मदद से होता है CPython
अब जावा और पायथन में जस्ट-इन-टाइम कंपाइलर की भूमिका के बारे में थोड़ा बात करते हैं
जेवीएम में जावा दुभाषिया मौजूद है जो निष्पादन उद्देश्य के लिए मूल मशीन कोड प्राप्त करने के लिए बाईटेकोड लाइन की व्याख्या करता है लेकिन जब जावा बाइटेकोड को एक दुभाषिया द्वारा निष्पादित किया जाता है, तो निष्पादन हमेशा धीमा रहेगा। तो समाधान क्या है? इसका समाधान जस्ट-इन-टाइम कंपाइलर है जो मूल कोड का उत्पादन करता है जिसे व्याख्या करने की तुलना में अधिक तेज़ी से निष्पादित किया जा सकता है। कुछ जेवीएम विक्रेता जावा इंटरप्रेटर का उपयोग करते हैं और कुछ जस्ट-इन-टाइम कंपाइलर का उपयोग करते हैं । संदर्भ: यहां क्लिक करें
अजगर में प्राप्त करने के लिए तेजी से निष्पादन एक और अजगर कार्यान्वयन (का उपयोग दुभाषिया के आसपास पाने के लिए PyPy के बजाय) CPython ।
यहाँ क्लिक सहित अजगर के अन्य कार्यान्वयन के लिए PyPy ।