यह केवल एक आश्चर्य की बात है जो मैंने व्याख्या और संकलित भाषाओं के बारे में पढ़ते हुए की थी।
रूबी को एक व्याख्या की गई भाषा पर संदेह नहीं है क्योंकि स्रोत कोड निष्पादन के बिंदु पर एक दुभाषिया द्वारा संसाधित होता है।
इसके विपरीत C एक संकलित भाषा है, क्योंकि किसी को स्रोत कोड को पहले मशीन के अनुसार संकलित करना होगा और फिर निष्पादित करना होगा। यह परिणाम बहुत तेजी से निष्पादन है।
अब पायथन में आ रहा है :
- आयात करने पर एक अजगर कोड ( somefile.py ) उसी निर्देशिका में एक फ़ाइल ( somefile.pyc ) बनाता है । हम कहते हैं कि आयात एक अजगर खोल या django मॉड्यूल में किया जाता है। आयात के बाद मैं कोड को थोड़ा बदल देता हूं और आयात किए गए कार्यों को फिर से निष्पादित करता हूं ताकि यह पता चले कि यह अभी भी पुराने कोड को चला रहा है। इससे पता चलता है कि * .pyc फाइलें एक सी फाइल के संकलन के बाद बनाई गई निष्पादन योग्य के समान अजगर फाइलें संकलित हैं, हालांकि मैं * .pyc फाइल को सीधे निष्पादित नहीं कर सकता।
- जब python फ़ाइल (somefile.py) को सीधे निष्पादित किया जाता है (./omefile.py या python somefile.py) no .pyc फ़ाइल बनाई जाती है और कोड को निष्पादित किया जाता है जैसा कि व्याख्या किए गए व्यवहार को इंगित करता है।
ये सुझाव देते हैं कि एक अजगर कोड को हर बार संकलित किया जाता है जब इसे एक नई प्रक्रिया में आयात किया जाता है एक .pyc बनाने के लिए जब इसे सीधे निष्पादित किया जाता है।
तो मुझे किस प्रकार की भाषा पर विचार करना चाहिए? व्याख्या या संकलित? और इसकी दक्षता की व्याख्या और संकलित भाषाओं की तुलना कैसे होती है?
विकी के इंटरप्रिटेड लैंग्वेजेज पेज के अनुसार , इसे वर्चुअल मशीन कोड में संकलित भाषा के रूप में सूचीबद्ध किया गया है, इसका क्या मतलब है?
RUN
। यह ऐसा था जैसे कि आपके पास एक कंपाइलर था जो लेक्सिंग स्टेप करता था और फिर टोकन की एक स्ट्रीम को आउटपुट करता था जिसे हर बार प्रोग्राम चलाने के बाद रिप्रजेंट करना पड़ता था। आधुनिक बायोटेक संकलन की तरह बिल्कुल नहीं, जैसा कि कहा जाता है, javac
जिसमें लेक्सिंग, पार्सिंग और अनुकूलन शामिल हैं।