2010-04-04 7 views
5

उदाहरण के लिए ज्योथन संस्करण 2.5.1 पर है, क्या यह संस्करण 2.5.1 पर होने पर cpython वाक्यविन्यास के समानांतर निष्ठा दर्शाता है?वैकल्पिक पायथन कार्यान्वयन संस्करण संख्याओं का अर्थ है कि वे एक ही वाक्यविन्यास प्रदान करते हैं?

उत्तर

1

यह सही है, या बहुत करीब है। ज्योथन और आयरनपीथन ने अपनी संख्याबद्ध योजना को सीपीथॉन संस्करण से मेल खाने के लिए बदल दिया है, जिनकी विशेषताएं वे सबसे अधिक बारीकी से लागू करती हैं।

2

आम तौर पर हां, लेकिन तकनीकी रूप से कुछ भी संस्करण संख्याओं को चुनने से वैकल्पिक कार्यान्वयन को रोकना नहीं है।

यह भी ध्यान रखना महत्वपूर्ण है कि सिर्फ इसलिए कि ज्योथन 2.5.1 का उद्देश्य सीपीथन 2.5.1 से मेल खाना है, इसका मतलब यह नहीं है कि वे बिल्कुल वही व्यवहार करने जा रहे हैं या पूरी तरह संगत हो सकते हैं - सी-आधारित मॉड्यूल पर विचार करें , उदाहरण के लिए, और अंतर्निहित बाइटकोड प्राप्त करने के लिए सुविधाएं।

पाइथन भाषा के लिए किसी वास्तविक मानक निकाय या औपचारिक विनिर्देश की कमी का अर्थ है कि "पायथन" और "कार्यान्वयन परिभाषित" क्या है, इस पर कोई स्पष्ट नियम नहीं है।

1

वाक्य रचना (और सुविधा सेट) पहले दो नंबर से कड़ाई से नियंत्रित कर रहे हैं - हर 2.5.* एक ही वाक्य रचना और सुविधा सेट (लागू करने के लिए भाषा परिभाषा के मामले में दावा कर रहा है, नहीं पहलुओं में से भाषा-संदर्भ मैनुअल स्पष्ट रूप से कार्यान्वयन के लिए छोड़ देता है: उदाहरण के लिए, दोनों ज्योथन और आयरनपीथन में 'buh' का मतलब है "एक यूनिकोड स्ट्रिंग शाब्दिक", जबकि सीपीथन का मतलब है "एक बाइट स्ट्रिंग शाब्दिक")। कार्यान्वयन की किसी भी पंक्ति के भीतर एक उच्च *, बग फिक्स और/या ऑप्टिमाइज़ेशन का तात्पर्य है जो सिंटैक्स और सुविधाओं को प्रभावित नहीं करते हैं (कुछ कम *, यदि कोई हो तो कार्यान्वयन कीड़े को ठीक करने के अलावा)।

तो, Jython 2.5.1x के किसी भी मूल्य के लिए किसी भी CPython 2.5.x के लिए प्रतिस्थापित किया जा सकता है - और यह Jython 2.5 से (IMHO shd 2.5.0 हो सकता है लेकिन अनुगामी .0 व्यवहार में नहीं किया जाता है) बेहतर होने का दावा करता है, हालांकि नहीं के रूप में यदि उत्तरार्द्ध मौजूद है तो ज्योथन 2.5.2 के रूप में अच्छा है। लेकिन यह CPython 2.5.1 में बग का अनुकरण करने के लिए purport है जो कि CPython 2.5.2 या बाद में तय किए गए थे: इसमें कोई संदेह नहीं है कि प्रत्येक कार्यान्वयन की अपनी बग है, और कोई भी बग-फॉर बग संगतता का दावा नहीं करता है ;-)।

संबंधित मुद्दे