सीपीथॉन: Difference between revisions

From Vigyanwiki
m (12 revisions imported from alpha:सीपीथॉन)
No edit summary
 
Line 249: Line 249:


{{Python (programming language)}}
{{Python (programming language)}}
[[Category: निःशुल्क संकलक और दुभाषिए]] [[Category: सी में मुफ्त सॉफ्टवेयर प्रोग्राम किया गया]] [[Category: पायथन (प्रोग्रामिंग भाषा) कार्यान्वयन]] [[Category: पीएसएफ लाइसेंस का उपयोग करने वाला सॉफ्टवेयर]] [[Category: पायथन में मुफ्त सॉफ्टवेयर प्रोग्राम किया गया]] [[Category: स्टैक-आधारित वर्चुअल मशीनें]]


 
[[Category:All Wikipedia articles in need of updating]]
 
[[Category:All articles with unsourced statements]]
[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Articles with invalid date parameter in template]]
[[Category:Articles with unsourced statements from अगस्त 2019]]
[[Category:CS1 English-language sources (en)]]
[[Category:CS1 errors]]
[[Category:Collapse templates]]
[[Category:Created On 18/02/2023]]
[[Category:Created On 18/02/2023]]
[[Category:Vigyan Ready]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Multi-column templates]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages using Infobox software with unknown parameters|मंचसीपीथॉन]]
[[Category:Pages using div col with small parameter]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Templates using under-protected Lua modules]]
[[Category:Wikipedia articles in need of updating from April 2021]]
[[Category:Wikipedia articles in need of updating from June 2022]]
[[Category:Wikipedia articles in need of updating from March 2022]]
[[Category:Wikipedia articles scheduled for update tagging]]
[[Category:Wikipedia fully protected templates|Div col]]
[[Category:Wikipedia metatemplates]]
[[Category:निःशुल्क संकलक और दुभाषिए]]
[[Category:पायथन (प्रोग्रामिंग भाषा) कार्यान्वयन]]
[[Category:पायथन में मुफ्त सॉफ्टवेयर प्रोग्राम किया गया]]
[[Category:पीएसएफ लाइसेंस का उपयोग करने वाला सॉफ्टवेयर]]
[[Category:सी में मुफ्त सॉफ्टवेयर प्रोग्राम किया गया]]
[[Category:स्टैक-आधारित वर्चुअल मशीनें]]

Latest revision as of 16:10, 16 March 2023

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; 32 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][needs update]
उबंटू 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][needs update]
डेबियन 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.