सीपीथॉन

From Vigyanwiki
CPython
Original author(s)Guido van Rossum
Developer(s)Python core developers and the Python community, supported by the Python Software Foundation
Initial release26 January 1994; 30 years ago (1994-01-26)
Stable release
Script error: The module returned a nil value. It is supposed to return an export table. / Script error: The module returned a nil value. It is supposed to return an export table.; Error: first parameter cannot be parsed as a date or time. (Script error: The module returned a nil value. It is supposed to return an export table.)

सीपीथॉन पायथन (प्रोग्रामिंग भाषा) का संदर्भ कार्यान्वयन है। सी (प्रोग्रामिंग भाषा) और पायथन में लिखा गया, सीपीथॉन, पायथन भाषा का डिफ़ॉल्ट और सबसे व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन है।

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

डिजाइन

सीपीथॉन की विशेष विशेषता यह है कि यह प्रत्येक सीपीथॉन दुभाषिया प्रक्रिया (कंप्यूटिंग) पर वैश्विक दुभाषिया बन्ध (जीआईएल) का उपयोग करता है, जिसका अर्थ है कि ही प्रक्रिया के अन्दर, किसी समय में केवल थ्रेड पायथन बाइटकोड को संसाधित कर सकता है।[1] इसका अर्थ यह नहीं है कि मल्टीथ्रेडिंग (कंप्यूटर आर्किटेक्चर) का कोई अर्थ नहीं है; सबसे आम मल्टीथ्रेडिंग परिदृश्य वह है जहां थ्रेड (कंप्यूटिंग) अधिकांश बाहरी प्रक्रियाओं के पूरा होने की प्रतीक्षा कर रहे हैं।

यह तब हो सकता है जब कई थ्रेड्स अलग-अलग ग्राहकों का काम कर रहा हों। हो सकता है कि थ्रेड ग्राहक के उत्तर का प्रतीक्षा कर रहा हो, और दूसरा थ्रेड डेटाबेस क्वेरी के निष्पादित होने का प्रतीक्षा कर रहा हो, चूंकि तीसरा थ्रेड वास्तविक में पायथन कोड को प्रोसेस कर रहा हो।

चूँकि, जीआईएल का अर्थ यह है कि सीपीथॉन उन प्रक्रियाओं के लिए उपयुक्त नहीं है जो पायथन कोड में सीपीयू-गहन एल्गोरिदम को प्रायुक्त करते हैं जो संभावित रूप से कई कोर में वितरित किए जा सकते हैं।

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

पायथन कोड की समवर्ती केवल मल्टीटास्किंग ऑपरेटिंग प्रणाली द्वारा प्रबंधित अलग-अलग सीपीथॉन दुभाषिया प्रक्रियाओं के साथ प्राप्त की जा सकती है। यह समानांतर कंप्यूटिंग के बीच संचार को जटिल बनाता है, चूंकि मल्टीप्रोसेसिंग मॉड्यूल इसे कुछ सीमा तक कम करता है; इसका अर्थ यह है कि समवर्ती पायथन-कोड निष्पादन से वास्तविक में लाभान्वित होने वाले अनुप्रयोगों को सीमित मात्रा में ओवरहेड (कंप्यूटिंग) के साथ प्रायुक्त किया जा सकता है।

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

चूँकि जीआईएल को खत्म करने के लिए कई प्रस्ताव दिए गए हैं, आम सहमति यह रही है कि अधिकांश स्थितियों में, जीआईएल के लाभ हानि से अधिक हैं; कुछ स्थितियों में जहां जीआईएल रूकावट है, एप्लिकेशन को मल्टीप्रोसेसिंग संरचना के आसपास बनाया जाना चाहिए।

इतिहास


अनल्डेन स्वल्लो

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

परियोजना ने सीपीथॉन पर पांच के कारक द्वारा गति में सुधार का लक्ष्य बताया था;[2] यह लक्ष्य पूरा नहीं हुआ था।[3]

परियोजना को गूगल द्वारा प्रायोजित किया गया था, और परियोजना के मालिक, थॉमस वाउटर्स, जेफरी यास्किन और कॉलिन विंटर, पूर्णकालिक गूगल कर्मचारी हैं; चूँकि, अधिकांश परियोजना योगदानकर्ता गूगल के कर्मचारी नहीं थे।[4] अनल्डेन स्वल्लो को गूगल विकासक पर होस्ट किया गया था।[5]

पायथन भाषा के बारे में कई चीजों की तरह, अनल्डेन स्वल्लो नाम मोंटी पायथन संदर्भ है, जो विशेष रूप मोंटी पायथन एंड द होली ग्रेल में अनलडेन स्वैलोज़ के एयरस्पीड वेग के बारे में मजाक के लिए हैं।

चूंकि यह सभी प्रकाशित लक्ष्यों से कम हो गया, अनल्डेन स्वल्लो ने कुछ कोड का उत्पादन किया जो मुख्य पायथन कार्यान्वयन में जोड़ा गया, जैसे कि सीपिकल मॉड्यूल में सुधार।[6]

जुलाई 2010 में, कुछ पर्यवेक्षकों ने अनुमान लगाया कि 2009 की चौथी तिमाही के मील के पत्थर को अभी तक जारी नहीं किया गया था कि क्या परियोजना मर चुकी थी या मर रही थी।[7] अनल्डेन की मेलिंग सूची पर यातायात जनवरी 2010 में 500 संदेशों से घटकर सितंबर 2010 में 10 से कम हो गया था।[8] यह भी बताया गया है कि अनल्डेन ने गूगल की फंडिंग खो दी है।[9] नवंबर 2010 में, मुख्य विकासक में से ने घोषणा की कि जेफरी और मुझे गूगल के लिए उच्च महत्व की अन्य परियोजनाओं पर खींच लिया गया है।[10]

2009 Q4 विकास शाखा 26 जनवरी 2010 को बनाई गई थी,[11] किन्तु वेबसाइट पर कोई विज्ञापन नहीं किया गया था। इसके अतिरिक्त, लंबी अवधि की योजनाओं के बारे में, और जैसा कि परियोजना ने पायथन 2.7 रिलीज को याद किया, पायथन संवर्द्धन प्रस्ताव (पीईपी)[3] स्वीकार कर लिया गया, जिसने पायथन के आधिकारिक रिपॉजिटरी (संस्करण नियंत्रण) की विशेष py3k-jit शाखा में अनल्डेन स्वल्लो के विलय का प्रस्ताव दिया। जुलाई 2010 तक यह काम चल रहा था।[12] इस विलय में कुछ समय लग सकता था, क्योंकि अनल्डेन स्वल्लो मूल रूप से पायथन 2.6 पर आधारित था[13] जिसके साथ पायथन 3 ने संगतता तोड़ दी (अधिक विवरण के लिए पायथन 3000 देखें)। चूँकि, बाद में पीईपी को वापस ले लिया गया था।

2011 की प्रारंभ में, यह स्पष्ट हो गया कि परियोजना को रोक दिया गया था।[14]


अनल्डेन स्वल्लो रिलीज इतिहास

  • 2009 Q1[15]
  • 2009 उल्टी[16]
  • 2009 Q3: स्मृति उपयोग कम करें, गति में सुधार करें[17]


वितरण

आधिकारिक तौर पर समर्थित टियर-1 प्लेटफॉर्म खिड़कियाँ, लिनक्स और मैकओएस (और रास्पबेरी पाई ओएस, और निचले स्तर पर एस390एक्स के लिए लिनक्स) हैं।

ऐसे और भी प्लेटफ़ॉर्म हैं जिनमें कार्यशील कार्यान्वयन शामिल हैं:[18]

यूनिक्स की तरह
विशेष और एम्बेडेड
अन्य

पीईपी 11[19] पायथन सॉफ्टवेयर फाउंडेशन द्वारा सीपीथॉन में समर्थित नहीं होने वाले प्लेटफार्मों को सूचीबद्ध करता है। इन प्लेटफार्मों को अभी भी बाहरी पोर्ट्स द्वारा समर्थित किया जा सकता है। इन पोर्ट्स में शामिल हैं:

बाहरी पोर्ट जो कि पायथन Software Foundation के सीपीथॉन के आधिकारिक संस्करण में एकीकृत नहीं हैं, इसकी मुख्य विकास साइट के लिंक के साथ, अधिकांश प्लेटफ़ॉर्म-विशिष्ट कार्यात्मकताओं के लिए अतिरिक्त मॉड्यूल शामिल होते हैं, जैसे पीएसपी के लिए ग्राफिक्स और ध्वनि एपीआई और एस60 के लिए एसएमएस और कैमरा एपीआई। इन पोर्ट्स में शामिल हैं:


एंटरप्राइज़ लिनक्स

ये पायथन संस्करण वर्तमान में समर्थित एंटरप्राइज़ लिनक्स वितरण के साथ वितरित किए गए हैं।[28] तालिका में पायथन की समर्थन स्थिति का तात्पर्य पायथन कोर टीम से समर्थन से है, न कि वितरण अनुरक्षक से।

उद्यम लिनक्स
वितरण संस्करण वितरण जीवन का अंत पायथन संस्करण
उबंटू 22.04 एलटीएस (जैमी जेलिफ़िश) 3.10 [1]
उबंटू 20.04 एलटीएस (फोकल फोसा) 2030-04[29][needs update] [30] Older version, yet still maintained: 3.8[31]
उबंटू 18.04 एलटीएस (बायोनिक बीवर) 2028-04[32] Old version, no longer maintained: 2.7[33] Old version, no longer maintained: 3.6[34]
उबंटू 16.04 एलटीएस (जेनियल ज़ेरस) 2021-04-30[35][needs update] Old version, no longer maintained: 2.7[33] Old version, no longer maintained: 3.5[34]
डेबियन 11 2026-06[36] Older version, yet still maintained: 3.9[36]
डेबियन 10 2024-06[37] Old version, no longer maintained: 2.7[38] Older version, yet still maintained: 3.7[39][needs update]
डेबियन 9 2022-06-30[40][needs update] Old version, no longer maintained: 2.7[41] Old version, no longer maintained: 3.5[42]
रेड हैट एंटरप्राइज लिनक्स 8 2029 Old version, no longer maintained: 2.7[43] Old version, no longer maintained: 3.6
रेड हैट एंटरप्राइज लिनक्स 7 2024-11-30[44] Old version, no longer maintained: 2.7[45]
सेंटओएस 8 2029-05-31 Old version, no longer maintained: 2.7 Old version, no longer maintained: 3.6
सेंटओएस 7 2024-06-30 Old version, no longer maintained: 2.7[46]
एसयूएसई लिनक्स एंटरप्राइज़ सर्वर 15 2031-07-31 Old version, no longer maintained: 2.7[47] Old version, no longer maintained: 3.6
एसयूएसई लिनक्स एंटरप्राइज़ सर्वर 12 2027-10-31 Old version, no longer maintained: 2.7[48]
एसयूएसई लिनक्स एंटरप्राइज़ सर्वर 11 2022-03-31[needs update] Old version, no longer maintained: 2.7[48]
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release


विकल्प

सीपीथॉन कई उत्पादन-गुणवत्ता वाले पायथन (प्रोग्रामिंग भाषा) कार्यान्वयनों में से एक है: ज्योथन जावा वर्चुअल मशीन (जेवीएम) के लिए जावा (प्रोग्रामिंग भाषा) में लिखा गया ज्योथन, PyPy आरपायथन में लिखा गया हैं और सी में अनुवादित हैं, और आयरनपायथन, जोसामान्य भाषा अवसंरचना सी शार्प (प्रोग्रामिंग भाषा) में लिखा गया है। कई प्रयोगात्मक कार्यान्वयन भी हैं।[49]


संदर्भ

  1. "Initialization, Finalization, and Threads". Python v3.8.3 documentation. Retrieved 2020-06-04.
  2. Paul, Ryan (2009-03-26). "Ars Technica report on Unladen Swallow goals". Arstechnica.com. Retrieved 2011-08-19.
  3. 3.0 3.1 Winter, Collin; Yasskin, Jeffrey; Kleckner, Reid (2010-03-17). "PEP 3146 - Merging Unladen Swallow into CPython". Python.org.
  4. "People working on Unladen Swallow". Archived from the original on 2015-10-29. Retrieved 2019-08-08.
  5. "Unladen Swallow project page". Retrieved 2011-08-19.
  6. "Issue 9410: Add Unladen Swallow's optimizations to Python 3's pickle. - Python tracker". bugs.python.org. Retrieved 2019-08-08.
  7. "Message on comp.lang.python". Retrieved 2011-08-19.
  8. "Unladen Swallow | Google Groups". Retrieved 2011-08-19.
  9. "reddit post by an Unladen committer". Reddit.com. 2010-06-24. Retrieved 2011-08-19.
  10. Winter, Collin (8 November 2010). "Current status of Unladen-Swallow".
  11. "2009 Q4 release branch creation". 2010-01-26. Retrieved 2011-08-19.
  12. "Developers focus on merge into py3k-jit". 2010-07-13. Retrieved 2011-08-19.
  13. "Unladen Swallow baseline". Python.org. Retrieved 2011-08-19.
  14. Kleckner, Reid (26 March 2011). "Unladen Swallow Retrospective". QINSB is not a Software Blog (qinsb.blogspot.com).
  15. "Unladen Swallow 2009Q1". unladen-swallow, A faster implementation of Python. Retrieved 19 October 2012.
  16. "Unladen Swallow 2009Q2". unladen-swallow, A faster implementation of Python. Retrieved 19 October 2012.
  17. "Unladen Swallow 2009Q3". unladen-swallow, A faster implementation of Python. Retrieved 19 October 2012.
  18. "PythonImplementations". Retrieved 19 July 2012.
  19. "PEP 11 -- Removing support for little used platforms". Python.org (in English). Retrieved 2019-08-08.
  20. -फ़रवरी/086111.html "Irix अभी भी समर्थित है?". {{cite web}}: Check |url= value (help)
  21. AmigaPython
  22. iSeriesPython
  23. PythonD
  24. http://yellowblue.free.fr/yiki/doku.php/en:dev:python:start Python 2 and 3
  25. Stackless Python for PSP
  26. Python Windows CE port
  27. "Python". VSI. Retrieved 2021-08-31.
  28. https://linuxlifecycle.com
  29. "Ubuntu release cycle". Ubuntu (in English). Retrieved 2021-01-18.
  30. "With Python 2 EOL'ed, Ubuntu 20.04 LTS Moves Along With Its Python 2 Removal - Phoronix". www.phoronix.com. Retrieved 2020-04-01.
  31. "Binary package "python3" in ubuntu focal". Launchpad.net.
  32. "Ubuntu 18.04 extended to 2028". ServerWatch.com. 2018-11-15. Retrieved 2019-09-09.
  33. 33.0 33.1 "python-defaults package : Ubuntu". Canonical Ltd. 2018-06-08. Retrieved 2018-06-08.
  34. 34.0 34.1 "python3-defaults package : Ubuntu". Canonical Ltd. 2018-06-08. Retrieved 2018-06-08.
  35. Science, Carnegie Mellon University School of Computer. "Ubuntu 16.04 - End of Life in 2021 - SCS Computing Facilities - Carnegie Mellon University". computing.cs.cmu.edu (in English). Retrieved 2021-02-15.
  36. 36.0 36.1 "Debian -- News -- Debian 11 "bullseye" released". www.debian.org. Retrieved 2022-01-04.
  37. "LTS - Debian Wiki". wiki.debian.org. Retrieved 2021-02-15.
  38. "Debian -- Details of package python in buster". packages.debian.org. Retrieved 2019-09-13.
  39. "Debian -- News -- Debian 10 "buster" released". www.debian.org. Retrieved 2019-08-09.
  40. "Debian -- News -- Debian 8 Long Term Support reaching end-of-life". www.debian.org. Retrieved 2021-02-15.
  41. "DistroWatch.com: Debian". DistroWatch.com. 2017-10-15. Retrieved 2017-10-15.
  42. "Debian -- Details of package python3 in stretch". Retrieved 2017-12-19.
  43. "Python in RHEL 8". Red Hat Developer Blog (in English). 2018-11-14. Archived from the original on 2019-05-10. Retrieved 2019-05-10.
  44. "Red Hat Enterprise Linux Life Cycle". Red Hat Customer Portal (in English). Retrieved 2020-04-01.
  45. "DistroWatch.com: Red Hat Enterprise Linux". DistroWatch.com. 2017-09-07. Retrieved 2017-10-15.
  46. "DistroWatch.com: CentOS". DistroWatch.com. 2017-09-14. Retrieved 2017-10-15.
  47. "Release Notes | SUSE Linux Enterprise Desktop/SUSE Linux Enterprise Workstation Extension 15 GA". www.suse.com. Retrieved 2019-08-08.
  48. 48.0 48.1 "DistroWatch.com: openSUSE". DistroWatch.com. 2017-10-14. Retrieved 2017-10-15.
  49. Martelli, Alex (2006). Python in a Nutshell (2nd ed.). O'Reilly. pp. 5–7. ISBN 978-0-596-10046-9.


अग्रिम पठन

  • Shaw, Anthony (2021). CPython Internals: Your Guide to the Python 3 Interpreter. Real Python. ISBN 9781775093343.


बाहरी संबंध