PyPy
पायपी () पायथन प्रोग्रामिंग भाषा का एक कार्यान्वयन है। पायपाई अक्सर मानक कार्यान्वयन सीपीथॉन की तुलना में तेजी से चलता है क्योंकि पायपाई एक जस्ट-इन-टाइम संकलक का उपयोग करता है। CPython एक्सटेंशन पर निर्भर कोड को छोड़कर अधिकांश पायथन कोड पायपी पर अच्छी तरह से चलता है, जो या तो काम नहीं करता है या पायपी में चलने पर कुछ ओवरहेड लेता है। आंतरिक रूप से, पायपी मेटा-ट्रेसिंग के रूप में जानी जाने वाली एक तकनीक का उपयोग करता है, जो एक दुभाषिया को एक ट्रेसिंग जस्ट-इन-टाइम कंपाइलर में बदल देता है। चूंकि दुभाषियों को आमतौर पर संकलकों की तुलना में लिखना आसान होता है, लेकिन वे धीमी गति से चलते हैं, इसलिए यह तकनीक प्रोग्रामिंग भाषाओं के कुशल कार्यान्वयन का उत्पादन करना आसान बना सकती है। पायपाई के मेटा-ट्रेसिंग टूलचेन को आरपाइथन कहा जाता है। पायपाई में सीपीथॉन पारिस्थितिकी तंत्र के हाल के संस्करणों के साथ पूर्ण संगतता नहीं है। जबकि यह पायथन 2.7,3.3 और 3.9 ("सीपीयथन के लिए एक ड्रॉप-इन प्रतिस्थापन") के साथ संगतता का दावा करता है, इसमें पायथन 3.1 में कुछ नई सुविधाओं और वाक्यविन्यास का अभाव है, जैसे कि पैटर्न मिलान के लिए वाक्यविन्यास। विवरण और प्रेरणा पाईपाई का उद्देश्य गतिशील भाषाओं के कार्यान्वयन के लिए एक सामान्य अनुवाद और समर्थन ढांचा प्रदान करना है, जिसमें भाषा विनिर्देश और कार्यान्वयन पहलुओं के बीच एक स्वच्छ अलगाव पर जोर दिया जाता है। इसका उद्देश्य निम्न-स्तरीय विवरणों को कूटबद्ध किए बिना नई उन्नत सुविधाओं को सक्षम करने के लिए उपरोक्त ढांचे का उपयोग करके पायथन प्रोग्रामिंग भाषा का एक अनुपालन, लचीला और तेज़ कार्यान्वयन प्रदान करना है। पायपाई दुभाषिया स्वयं पायथन के एक प्रतिबंधित उपसमुच्चय में लिखा जाता है जिसे आरपाइथन (प्रतिबंधित पायथन) कहा जाता है। RPython पायथन भाषा पर कुछ प्रतिबंध लगाता है जैसे कि एक चर के प्रकार का संकलन समय पर अनुमान लगाया जा सकता है। पायपी परियोजना ने एक उपकरण श्रृंखला विकसित की है जो आरपाइथन कोड का विश्लेषण करती है और इसे बाइट कोड के रूप में अनुवादित करती है, जिसे सी में कम किया जा सकता है। सीः जावा, सी #और जावास्क्रिप्ट के अलावा अन्य बैकएंड हुआ करते थे, लेकिन वे बिटरोट से पीड़ित थे और उन्हें हटा दिया गया है। इस प्रकार, पायपी का पुनरावर्ती लोगो एक सांप है जो खुद को निगल रहा है क्योंकि आरपाइथन का अनुवाद एक पायथन दुभाषिया द्वारा किया जाता है। कोड को परीक्षण और विश्लेषण के लिए बिना अनुवाद के भी चलाया जा सकता है, जो गतिशील भाषाओं में अनुसंधान के लिए एक अच्छा परीक्षण-बिस्तर प्रदान करता है। यह प्लगेबल कचरा संग्रहकर्ताओं के साथ-साथ वैकल्पिक रूप से स्टैकलेस पायथन सुविधाओं को सक्षम करने की अनुमति देता है। अंत में, इसमें एक जस्ट-इन-टाइम (जे. आई. टी.) जनरेटर शामिल है जो दुभाषिया स्रोत कोड में कुछ टिप्पणियों को देखते हुए दुभाषिया में एक जस्ट-इन-टाइम संकलक बनाता है। उत्पन्न जे. आई. टी. संकलक एक अनुरेखण जे. आई. टी. है। RPython का उपयोग अब गैर-पायथन भाषा कार्यान्वयन लिखने के लिए भी किया जाता है, जैसे कि पिक्सी। परियोजना की स्थिति संस्करण 7.3.7 के रूप में पाईपाई तीन सीपीथॉन संस्करणोंः 2.7,3 और 3.8 के साथ संगत है। CPython v3 के साथ संगत पहला पायपाई संस्करण पायपाई v2.3.1 (2014) है। CPython v3 के साथ संगत पाईपाई दुभाषिया को पाईपाई3 के रूप में भी जाना जाता है। पायपी में 32-बिट/64-बिट x86 और 32-बिट/64-बिट एआरएम प्रोसेसर पर जेआईटी संकलन समर्थन है। इसका विंडोज, लिनक्स, ओपनबीएसडी और मैक ओएस एक्स पर रात में परीक्षण किया जाता है। पाइपी शुद्ध पायथन सॉफ्टवेयर चलाने में सक्षम है जो कार्यान्वयन-विशिष्ट सुविधाओं पर निर्भर नहीं करता है। CPyExt नामक CPython C API एक्सटेंशन के लिए एक संगतता परत है, लेकिन यह अपूर्ण और प्रयोगात्मक है। सी साझा पुस्तकालयों के साथ इंटरफेस करने का पसंदीदा तरीका अंतर्निहित सी विदेशी कार्य इंटरफेस (सी. एफ. एफ. आई.) या प्रकार पुस्तकालयों के माध्यम से है। हिस्ट्री पाइपी साइको परियोजना का अनुवर्ती है, जो 2002 और 2010 के बीच आर्मिन रिगो द्वारा विकसित पायथन के लिए एक समय पर विशेषज्ञता वाला संकलक है। पायपाई का उद्देश्य दायरे के साथ एक समय पर विशेषज्ञता वाला संकलक होना है, जो साइको के लिए उपलब्ध नहीं था। प्रारंभ में, RPython को जावा बाइटकोड, CIL और जावास्क्रिप्ट में भी संकलित किया जा सकता था, लेकिन रुचि की कमी के कारण इन बैकएंड को हटा दिया गया था। पायपी शुरू में एक अनुसंधान और विकास-उन्मुख परियोजना थी। 2007 के मध्य में विकास की एक परिपक्व स्थिति और एक आधिकारिक 1 रिलीज़ तक पहुँचते हुए, इसका अगला ध्यान अधिक CPython संगतता के साथ एक उत्पादन-तैयार संस्करण जारी करने पर था। कोडिंग स्प्रिंट के दौरान पाइपी के कई बदलाव किए गए हैं। अगस्त 2008 में, पायपाई कुछ लोकप्रिय पायथन पुस्तकालयों जैसे पायलोन्स, पाइगलेट, नेवो और जांगो को चलाने में सक्षम था। 12 मार्च 2010 को, गति पर ध्यान केंद्रित करते हुए, पायपाई 1.2 जारी किया गया था। इसमें एक कार्यशील संकलक शामिल था, हालांकि अभी तक स्थिर नहीं था, लेकिन समय पर। 30 अप्रैल 2011 को, पायपाई संस्करण 1.5 जारी किया गया था, जो सीपीथॉन 2.7 के साथ संगतता तक पहुँच गया था। 9 मई 2013 को, पायपी 2 जारी किया गया था, जिसने एआरएमवी 6 और एआरएमवी 7 जेआईटी पर जेआईटी संकलन के लिए अल्फा-गुणवत्ता समर्थन पेश किया, और मानक पुस्तकालय में सीएफएफआई को शामिल किया। 20 जून 2014 को, पायपाई3 को स्थिर घोषित किया गया और अधिक आधुनिक पायथन 3 के साथ संगतता पेश की गई। इसे पी. पी. वाई. 2.3.1 के साथ जारी किया गया था और इसका वही संस्करण नंबर है। 21 मार्च 2017 को, पायपी परियोजना ने पायपी और पायपी 3 दोनों का संस्करण 5,7 जारी किया, जिसमें बाद वाले ने पायथन 3.5 के लिए बीटा-गुणवत्ता समर्थन पेश किया। 26 अप्रैल 2018 को, संस्करण 6 जारी किया गया था, जिसमें पायथन 2.7 और 3.5 (अभी भी विंडोज पर बीटा-गुणवत्ता) के लिए समर्थन था। 11 फरवरी 2019 को, संस्करण 7 को पायथन 2.7 और 3.5 के समर्थन के साथ जारी किया गया था। 14 अक्टूबर 2019 को पायथन 3.6.9 के समर्थन के साथ संस्करण 7.2 जारी किया गया था। 24 दिसंबर 2019 को, संस्करण 7.3 जारी किया गया था, जिसमें पायथन 3.6.9 के लिए समर्थन था। 16 फरवरी 2020 को, पायपी टीम ने सी. एफ. एफ. आई. (सी फॉरेन फंक्शन इंटरफेस) परियोजना के भंडारों के साथ बिटबकेट से स्रोत कोड होस्टिंग को heptapod.net में स्थानांतरित करने की घोषणा की। एक नया लोगो और वेबसाइट डिजाइन भी प्रकाशित किया गया है। हालाँकि, नए लोगो के लेखक और लाइसेंस अज्ञात हैं। दिसंबर 2004 और मार्च 2007 के बीच एक विशिष्ट लक्षित अनुसंधान परियोजना के रूप में यूरोपीय संघ द्वारा वित्त पोषित किया गया था। जून 2008 में, पायपी ने गूगल ओपन सोर्स कार्यक्रमों का हिस्सा होने के नाते धन की घोषणा की और पायपी को सीपीथॉन के साथ अधिक संगत बनाने पर ध्यान केंद्रित करने पर सहमति व्यक्त की। 2009 में यूरोस्टार्स, विशेष रूप से एस. एम. ई. पर केंद्रित एक यूरोपीय संघ की वित्तपोषण एजेंसी, ने पी. वाई. पी. परियोजना के सदस्यों के एक प्रस्ताव को स्वीकार किया, जिसका शीर्षक था "पी. वाई. जे. आई. टी.-पी. वाई. पी. पर आधारित गतिशील प्रोग्रामिंग भाषाओं के लिए एक तेज़ और लचीला टूलकिट"। यूरोस्टार्स की फंडिंग अगस्त 2011 तक चली। पायकन यूएस 2011 में, पायथन सॉफ्टवेयर फाउंडेशन ने भाषा के नए संस्करणों के साथ प्रदर्शन और अनुकूलता पर काम जारी रखने के लिए पायपी को 10,000 डॉलर का अनुदान प्रदान किया। एआरएम वास्तुकला के लिए बंदरगाह को रास्पबेरी पाई फाउंडेशन द्वारा आंशिक रूप से प्रायोजित किया गया था। पाइपी परियोजना अपने स्थिति ब्लॉग पृष्ठों के माध्यम से दान भी स्वीकार करती है। 2013 तक, विभिन्न प्रकार की उप-परियोजनाओं के लिए धन थाः पायथन 3 संस्करण संगतता, संख्यात्मक गणना के लिए अंतर्निहित अनुकूलित NumPy समर्थन और बेहतर समानांतरता की अनुमति देने के लिए सॉफ़्टवेयर लेनदेन स्मृति समर्थन। बूटस्ट्रैपिंग (संकलक) साइथन ग्रालवीएम आंशिक मूल्यांकन साइको सेल्फ-होस्टिंग सेल्फ-इंटरप्रेटर अनलेडेन स्वेलो नोट्स संदर्भ डेविड एंकोना, मासिमो एंकोना, एंटोनियो कुनी, निकोलस डी. मात्साकिस, 2007 भी देखें। RPython: गतिशील और स्थिर रूप से टाइप की गई OO भाषाओं को फिर से जोड़ने की दिशा में एक कदम। प्रोसी में। गतिशील भाषा संगोष्ठी (डी. एल. एस.), 2007। एसीएम प्रेस। कार्ल फ्रेडरिक बोल्ज, एंटोनियो कुनी, मैसीज फिजाल्कोव्स्की, 2009। मेटा-लेवल का पता लगानाः पाईपाई का ट्रेसिंग जेआईटी कंपाइलर। प्रोसी में। आई. सी. ओ. ओ. एल. पी. एस., 2009। एसीएम प्रेस। बाहरी लिंक 2007 सॉफ्टवेयर एफ. पी. 6 परियोजनाएं एम. आई. टी. लाइसेंस स्टैक-आधारित आभासी मशीनों का उपयोग करके पायथन पायथन (प्रोग्रामिंग भाषा) कार्यान्वयन सॉफ्टवेयर में प्रोग्राम किए गए मुक्त सॉफ्टवेयर