सीपीथॉन: Difference between revisions
No edit summary |
No edit summary |
||
| (6 intermediate revisions by 3 users not shown) | |||
| Line 22: | Line 22: | ||
सीपीथॉन पायथन (प्रोग्रामिंग भाषा) का [[संदर्भ कार्यान्वयन]] है। सी (प्रोग्रामिंग भाषा) और पायथन में लिखा गया, सीपीथॉन, पायथन भाषा का डिफ़ॉल्ट और सबसे व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन है। | सीपीथॉन पायथन (प्रोग्रामिंग भाषा) का [[संदर्भ कार्यान्वयन]] है। सी (प्रोग्रामिंग भाषा) और पायथन में लिखा गया, सीपीथॉन, पायथन भाषा का डिफ़ॉल्ट और सबसे व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन है। | ||
सीपीथॉन को [[दुभाषिया (कंप्यूटिंग)]] और [[संकलक]] दोनों के रूप में परिभाषित किया जा सकता है क्योंकि यह व्याख्या करने से पहले पायथन कोड को [[बाईटकोड]] में संकलित करता है। इसमें सी सहित कई भाषाओं के साथ [[विदेशी फ़ंक्शन इंटरफ़ेस]] है, जिसमें पायथन के | सीपीथॉन को [[दुभाषिया (कंप्यूटिंग)]] और [[संकलक]] दोनों के रूप में परिभाषित किया जा सकता है क्योंकि यह व्याख्या करने से पहले पायथन कोड को [[बाईटकोड]] में संकलित करता है। इसमें सी सहित कई भाषाओं के साथ [[विदेशी फ़ंक्शन इंटरफ़ेस|विदेशी कार्यात्मक अंतराफलक]] है, जिसमें पायथन के अतिरिक्त किसी अन्य भाषा में स्पष्ट रूप से [[भाषा बंधन]] लिखनी चाहिए। | ||
== डिजाइन == | == डिजाइन == | ||
सीपीथॉन की विशेष विशेषता यह है कि यह प्रत्येक सीपीथॉन दुभाषिया [[प्रक्रिया (कंप्यूटिंग)]] पर वैश्विक दुभाषिया | सीपीथॉन की विशेष विशेषता यह है कि यह प्रत्येक सीपीथॉन दुभाषिया [[प्रक्रिया (कंप्यूटिंग)]] पर वैश्विक दुभाषिया बन्ध (जीआईएल) का उपयोग करता है, जिसका अर्थ है कि ही प्रक्रिया के अन्दर, किसी समय में केवल थ्रेड पायथन बाइटकोड को संसाधित कर सकता है।<ref>{{cite web|url=https://docs.python.org/3/c-api/init.html |title=Initialization, Finalization, and Threads |publisher= Python v3.8.3 documentation |access-date=2020-06-04}}</ref> इसका अर्थ यह नहीं है कि [[मल्टीथ्रेडिंग (कंप्यूटर आर्किटेक्चर)]] का कोई अर्थ नहीं है; सबसे आम मल्टीथ्रेडिंग परिदृश्य वह है जहां [[थ्रेड (कंप्यूटिंग)]] अधिकांश बाहरी प्रक्रियाओं के पूरा होने की प्रतीक्षा कर रहे हैं। | ||
यह तब हो सकता है जब कई थ्रेड्स अलग-अलग | यह तब हो सकता है जब कई थ्रेड्स अलग-अलग ग्राहकों का काम कर रहा हों। हो सकता है कि थ्रेड ग्राहक के उत्तर का प्रतीक्षा कर रहा हो, और दूसरा थ्रेड [[डेटाबेस]] क्वेरी के निष्पादित होने का प्रतीक्षा कर रहा हो, चूंकि तीसरा थ्रेड वास्तविक में पायथन कोड को प्रोसेस कर रहा हो। | ||
चूँकि, जीआईएल का अर्थ यह है कि सीपीथॉन उन प्रक्रियाओं के लिए उपयुक्त नहीं है जो पायथन कोड में सीपीयू-गहन एल्गोरिदम को प्रायुक्त करते हैं जो संभावित रूप से कई कोर में वितरित किए जा सकते हैं। | |||
वास्तविक | वास्तविक संसार के अनुप्रयोगों में, ऐसी स्थितियाँ जहाँ जीआईएल महत्वपूर्ण रूकावट है, ऐसा अधिक दुर्लभ हैं। ऐसा इसलिए है क्योंकि पायथन स्वाभाविक रूप से धीमी भाषा है और सामान्यतः इसका उपयोग सीपीयू-गहन या समय-संवेदनशील संचालन के लिए नहीं किया जाता है। पायथन सामान्यतः शीर्ष स्तर पर उपयोग किया जाता है और विशिष्ट कार्यों को करने के लिए पुस्तकालयों में कार्यों को बुलाता है। इन पुस्तकालयों को सामान्यतः पायथन में नहीं लिखा जाता है, और इन अंतर्निहित प्रक्रियाओं में से किसी को कॉल करने के दौरान किसी अन्य थ्रेड में पायथन कोड निष्पादित किया जा सकता है। सीपीयू-गहन कार्य करने के लिए बुलाए जाने वाले गैर-पायथन पुस्तकालय जीआईएल के अधीन नहीं हैं और बिना किसी प्रतिबंध के कई प्रोसेसर पर कई थ्रेड्स को समवर्ती रूप से निष्पादित कर सकते हैं। | ||
पायथन कोड की समवर्ती केवल [[मल्टीटास्किंग ऑपरेटिंग सिस्टम]] द्वारा प्रबंधित अलग-अलग सीपीथॉन दुभाषिया प्रक्रियाओं के साथ प्राप्त की जा सकती है। यह [[समानांतर कंप्यूटिंग]] के बीच संचार को जटिल बनाता है, | पायथन कोड की समवर्ती केवल [[मल्टीटास्किंग ऑपरेटिंग सिस्टम|मल्टीटास्किंग ऑपरेटिंग प्रणाली]] द्वारा प्रबंधित अलग-अलग सीपीथॉन दुभाषिया प्रक्रियाओं के साथ प्राप्त की जा सकती है। यह [[समानांतर कंप्यूटिंग]] के बीच संचार को जटिल बनाता है, चूंकि मल्टीप्रोसेसिंग मॉड्यूल इसे कुछ सीमा तक कम करता है; इसका अर्थ यह है कि समवर्ती पायथन-कोड निष्पादन से वास्तविक में लाभान्वित होने वाले अनुप्रयोगों को सीमित मात्रा में [[ओवरहेड (कंप्यूटिंग)]] के साथ प्रायुक्त किया जा सकता है। | ||
जीआईएल की उपस्थिति सीपीथॉन के कार्यान्वयन को सरल बनाती है, और बहु-थ्रेडेड अनुप्रयोगों को | जीआईएल की उपस्थिति सीपीथॉन के कार्यान्वयन को सरल बनाती है, और बहु-थ्रेडेड अनुप्रयोगों को प्रायुक्त करना आसान बनाती है जो समवर्ती पायथन कोड निष्पादन से लाभान्वित नहीं होते हैं। चूँकि, जीआईएल के बिना, मल्टीप्रोसेसिंग ऐप्स को यह सुनिश्चित करना चाहिए कि सभी सामान्य कोड थ्रेड सुरक्षित हैं। | ||
चूँकि जीआईएल को खत्म करने के लिए कई प्रस्ताव दिए गए हैं, आम सहमति यह रही है कि अधिकांश स्थितियों में, जीआईएल के लाभ हानि से अधिक हैं; कुछ स्थितियों में जहां जीआईएल रूकावट है, एप्लिकेशन को मल्टीप्रोसेसिंग संरचना के आसपास बनाया जाना चाहिए। | |||
== इतिहास == | == इतिहास == | ||
| Line 43: | Line 43: | ||
=== | === अनल्डेन स्वल्लो === | ||
अनल्डेन स्वल्लो सीपीथॉन की अनुकूलन शाखा थी, जिसका उद्देश्य पूरी तरह से संगत और अधिक तेज होना था। इसका उद्देश्य सीपीथॉन की कस्टम [[आभासी मशीन]] को [[समय-समय पर संकलन]] [[LLVM|एलएलवीएम]] का उपयोग करके बनाया गया है। | |||
परियोजना ने सीपीथॉन पर पांच के कारक द्वारा गति में सुधार का लक्ष्य बताया था;<ref>{{cite web|last=Paul |first=Ryan |url=https://arstechnica.com/open-source/news/2009/03/google-launches-project-to-boost-python-performance-by-5x.ars |title=Ars Technica report on Unladen Swallow goals |publisher=Arstechnica.com |date=2009-03-26 |access-date=2011-08-19}}</ref> यह लक्ष्य पूरा नहीं हुआ था।<ref name="PEP3146">{{cite web | url=https://www.python.org/dev/peps/pep-3146/ | title=PEP 3146 - Merging Unladen Swallow into CPython | first1=Collin |last1=Winter | last2= Yasskin | first2= Jeffrey | last3= Kleckner | first3= Reid | date=2010-03-17 | publisher=Python.org}}</ref> | परियोजना ने सीपीथॉन पर पांच के कारक द्वारा गति में सुधार का लक्ष्य बताया था;<ref>{{cite web|last=Paul |first=Ryan |url=https://arstechnica.com/open-source/news/2009/03/google-launches-project-to-boost-python-performance-by-5x.ars |title=Ars Technica report on Unladen Swallow goals |publisher=Arstechnica.com |date=2009-03-26 |access-date=2011-08-19}}</ref> यह लक्ष्य पूरा नहीं हुआ था।<ref name="PEP3146">{{cite web | url=https://www.python.org/dev/peps/pep-3146/ | title=PEP 3146 - Merging Unladen Swallow into CPython | first1=Collin |last1=Winter | last2= Yasskin | first2= Jeffrey | last3= Kleckner | first3= Reid | date=2010-03-17 | publisher=Python.org}}</ref> | ||
परियोजना को [[Google|गूगल]] द्वारा प्रायोजित किया गया था, और परियोजना के मालिक, थॉमस वाउटर्स, जेफरी यास्किन और कॉलिन विंटर, पूर्णकालिक गूगल कर्मचारी हैं; चूँकि, अधिकांश परियोजना योगदानकर्ता गूगल के कर्मचारी नहीं थे।<ref>{{cite web| url=https://code.google.com/p/unladen-swallow/people/list | title=People working on Unladen Swallow| url-status=dead| archive-url=https://web.archive.org/web/20151029092746/https://code.google.com/p/unladen-swallow/people/list |archive-date=2015-10-29 |access-date=2019-08-08}}</ref> अनल्डेन स्वल्लो को [[Google Developers|गूगल विकासक]] पर होस्ट किया गया था।<ref>{{cite web|url=https://code.google.com/p/unladen-swallow/ |title=Unladen Swallow project page |access-date=2011-08-19}}</ref> | |||
पायथन भाषा के बारे में कई चीजों की तरह, अनल्डेन [[निगलना|स्वल्लो]] नाम मोंटी पायथन संदर्भ है, जो विशेष रूप [[मोंटी अजगर|मोंटी पायथन]] एंड द होली ग्रेल में अनलडेन स्वैलोज़ के एयरस्पीड वेग के बारे में मजाक के लिए हैं। | |||
चूंकि यह सभी प्रकाशित लक्ष्यों से कम हो गया, अनल्डेन स्वल्लो ने कुछ कोड का उत्पादन किया जो मुख्य पायथन कार्यान्वयन में जोड़ा गया, जैसे कि सीपिकल मॉड्यूल में सुधार।<ref>{{Cite web|url=https://bugs.python.org/issue9410|title=Issue 9410: Add Unladen Swallow's optimizations to Python 3's pickle. - Python tracker|website=bugs.python.org|access-date=2019-08-08}}</ref> | |||
==== | जुलाई 2010 में, कुछ पर्यवेक्षकों ने अनुमान लगाया कि 2009 की चौथी तिमाही के मील के पत्थर को अभी तक जारी नहीं किया गया था कि क्या परियोजना मर चुकी थी या मर रही थी।<ref>{{cite web|url=http://groups.google.com/group/comp.lang.python/browse_thread/thread/69f85cadb424a1d4/bdf73a28f3f770cb?lnk=gst&q=unladen+swallow#bdf73a28f3f770cb |title=Message on comp.lang.python |access-date=2011-08-19}}</ref> अनल्डेन की मेलिंग सूची पर यातायात जनवरी 2010 में 500 संदेशों से घटकर सितंबर 2010 में 10 से कम हो गया था।<ref>{{cite web|url=http://groups.google.com/group/unladen-swallow/about?hl=en |title=Unladen Swallow | Google Groups |access-date=2011-08-19}}</ref> यह भी बताया गया है कि अनल्डेन ने गूगल की फंडिंग खो दी है।<ref>{{cite web|url=https://www.reddit.com/r/Python/comments/cilk0/anyone_know_whats_going_on_with_unladen_swallow/c0su1wt |title=reddit post by an Unladen committer |publisher=Reddit.com |date=2010-06-24 |access-date=2011-08-19}}</ref> नवंबर 2010 में, मुख्य विकासक में से ने घोषणा की कि जेफरी और मुझे गूगल के लिए उच्च महत्व की अन्य परियोजनाओं पर खींच लिया गया है।<ref>{{cite web | url=http://groups.google.com/group/unladen-swallow/msg/bd4e6f935c23252a | first=Collin | last=Winter | title= Current status of Unladen-Swallow | date=8 November 2010 }}</ref> | ||
2009 Q4 विकास शाखा 26 जनवरी 2010 को बनाई गई थी,<ref>{{cite web|url=https://code.google.com/p/unladen-swallow/source/detail?spec=svn1164&r=1042 |title=2009 Q4 release branch creation |date=2010-01-26 |access-date=2011-08-19}}</ref> किन्तु वेबसाइट पर कोई विज्ञापन नहीं किया गया था। इसके अतिरिक्त, लंबी अवधि की योजनाओं के बारे में, और जैसा कि परियोजना ने पायथन 2.7 रिलीज को याद किया, [[पायथन संवर्द्धन प्रस्ताव]] (पीईपी)<ref name="PEP3146" /> स्वीकार कर लिया गया, जिसने पायथन के आधिकारिक रिपॉजिटरी (संस्करण नियंत्रण) की विशेष py3k-jit शाखा में अनल्डेन स्वल्लो के विलय का प्रस्ताव दिया। जुलाई 2010 तक यह काम चल रहा था।<ref>{{cite web|url=http://groups.google.com/group/unladen-swallow/browse_thread/thread/be3d226079c457b1 |title=Developers focus on merge into py3k-jit |date=2010-07-13 |access-date=2011-08-19}}</ref> इस विलय में कुछ समय लग सकता था, क्योंकि अनल्डेन स्वल्लो मूल रूप से पायथन 2.6 पर आधारित था<ref>{{cite web|url=https://www.python.org/dev/peps/pep-3146/#rationale-implementation |title=Unladen Swallow baseline |publisher=Python.org |access-date=2011-08-19}}</ref> जिसके साथ पायथन 3 ने संगतता तोड़ दी (अधिक विवरण के लिए [[Python 3000|पायथन 3000]] देखें)। चूँकि, बाद में पीईपी को वापस ले लिया गया था। | |||
2011 की प्रारंभ में, यह स्पष्ट हो गया कि परियोजना को रोक दिया गया था।<ref>{{cite web|url=http://qinsb.blogspot.com/2011/03/unladen-swallow-retrospective.html|title=Unladen Swallow Retrospective | date = 26 March 2011| publisher = QINSB is not a Software Blog (qinsb.blogspot.com)| first = Reid | last = Kleckner}}</ref> | |||
====अनल्डेन स्वल्लो रिलीज इतिहास==== | |||
* 2009 Q1<ref>{{cite web | url = https://code.google.com/p/unladen-swallow/wiki/Release2009Q1 | title = Unladen Swallow 2009Q1 | publisher = unladen-swallow, A faster implementation of Python | access-date = 19 October 2012}}</ref> | * 2009 Q1<ref>{{cite web | url = https://code.google.com/p/unladen-swallow/wiki/Release2009Q1 | title = Unladen Swallow 2009Q1 | publisher = unladen-swallow, A faster implementation of Python | access-date = 19 October 2012}}</ref> | ||
* 2009 उल्टी<ref>{{cite web | url = https://code.google.com/p/unladen-swallow/wiki/Release2009Q2 | title = Unladen Swallow 2009Q2 | publisher = unladen-swallow, A faster implementation of Python | access-date = 19 October 2012}}</ref> | * 2009 उल्टी<ref>{{cite web | url = https://code.google.com/p/unladen-swallow/wiki/Release2009Q2 | title = Unladen Swallow 2009Q2 | publisher = unladen-swallow, A faster implementation of Python | access-date = 19 October 2012}}</ref> | ||
| Line 65: | Line 69: | ||
== वितरण == | == वितरण == | ||
आधिकारिक तौर पर समर्थित टियर-1 प्लेटफॉर्म [[खिड़कियाँ]], [[लिनक्स]] और मैकओएस (और [[रास्पबेरी पाई ओएस]], और निचले स्तर पर [[s390x]] के लिए लिनक्स) हैं। | आधिकारिक तौर पर समर्थित टियर-1 प्लेटफॉर्म [[खिड़कियाँ]], [[लिनक्स]] और मैकओएस (और [[रास्पबेरी पाई ओएस]], और निचले स्तर पर [[s390x|एस390एक्स]] के लिए लिनक्स) हैं। | ||
ऐसे और भी प्लेटफ़ॉर्म हैं जिनमें कार्यशील कार्यान्वयन शामिल हैं:<ref>{{cite web |title=PythonImplementations |url=https://wiki.python.org/moin/PythonImplementations |access-date=19 July 2012}}</ref> | ऐसे और भी प्लेटफ़ॉर्म हैं जिनमें कार्यशील कार्यान्वयन शामिल हैं:<ref>{{cite web |title=PythonImplementations |url=https://wiki.python.org/moin/PythonImplementations |access-date=19 July 2012}}</ref> | ||
| Line 111: | Line 115: | ||
* [[जेड/ओएस]]{{citation needed|date=अगस्त 2019}} | * [[जेड/ओएस]]{{citation needed|date=अगस्त 2019}} | ||
}} | }} | ||
पीईपी 11<ref>{{Cite web|url=https://www.python.org/dev/peps/pep-0011/|title=PEP 11 -- Removing support for little used platforms|website=Python.org|language=en|access-date=2019-08-08}}</ref> [[पायथन सॉफ्टवेयर फाउंडेशन]] द्वारा सीपीथॉन में समर्थित नहीं होने वाले प्लेटफार्मों को सूचीबद्ध करता है। इन प्लेटफार्मों को अभी भी बाहरी | पीईपी 11<ref>{{Cite web|url=https://www.python.org/dev/peps/pep-0011/|title=PEP 11 -- Removing support for little used platforms|website=Python.org|language=en|access-date=2019-08-08}}</ref> [[पायथन सॉफ्टवेयर फाउंडेशन]] द्वारा सीपीथॉन में समर्थित नहीं होने वाले प्लेटफार्मों को सूचीबद्ध करता है। इन प्लेटफार्मों को अभी भी बाहरी पोर्ट्स द्वारा समर्थित किया जा सकता है। इन पोर्ट्स में शामिल हैं: | ||
{{columns-list|colwidth=30em|* [[एदीओएस]] (2.6 से असमर्थित) | {{columns-list|colwidth=30em|* [[एदीओएस]] (2.6 से असमर्थित) | ||
| Line 128: | Line 132: | ||
* [[विंडोज 9एक्स]] (2.6 से असमर्थित) | * [[विंडोज 9एक्स]] (2.6 से असमर्थित) | ||
* [[विंडोज एनटी4]] (2.6 से असमर्थित)}} | * [[विंडोज एनटी4]] (2.6 से असमर्थित)}} | ||
बाहरी पोर्ट जो कि पायथन Software Foundation के सीपीथॉन के आधिकारिक संस्करण में एकीकृत नहीं हैं, इसकी मुख्य विकास साइट के लिंक के साथ, | बाहरी पोर्ट जो कि पायथन Software Foundation के सीपीथॉन के आधिकारिक संस्करण में एकीकृत नहीं हैं, इसकी मुख्य विकास साइट के लिंक के साथ, अधिकांश प्लेटफ़ॉर्म-विशिष्ट कार्यात्मकताओं के लिए अतिरिक्त मॉड्यूल शामिल होते हैं, जैसे पीएसपी के लिए ग्राफिक्स और ध्वनि एपीआई और एस60 के लिए एसएमएस और कैमरा एपीआई। इन पोर्ट्स में शामिल हैं: | ||
{{columns-list|colwidth=30em| | {{columns-list|colwidth=30em| | ||
| Line 228: | Line 232: | ||
== विकल्प == | == विकल्प == | ||
सीपीथॉन कई उत्पादन-गुणवत्ता वाले पायथन (प्रोग्रामिंग भाषा) | सीपीथॉन कई उत्पादन-गुणवत्ता वाले पायथन (प्रोग्रामिंग भाषा) कार्यान्वयनों में से एक है: ज्योथन [[जावा वर्चुअल मशीन]] (जेवीएम) के लिए जावा (प्रोग्रामिंग भाषा) में लिखा गया [[Jython|ज्योथन]], [[PyPy]] आरपायथन में लिखा गया हैं और सी में अनुवादित हैं, और [[IronPython|आयरनपायथन]], जो[[सामान्य भाषा अवसंरचना]] सी शार्प (प्रोग्रामिंग भाषा) में लिखा गया है। कई प्रयोगात्मक कार्यान्वयन भी हैं।<ref>{{cite book | last = Martelli | first = Alex | author-link = Alex Martelli | title = Python in a Nutshell | publisher = [[O'Reilly Media|O'Reilly]] | year = 2006 | edition = 2nd | isbn = 978-0-596-10046-9 | pages = 5–7 }}</ref> | ||
| Line 245: | Line 249: | ||
{{Python (programming language)}} | {{Python (programming language)}} | ||
[[Category: | [[Category:All Wikipedia articles in need of updating]] | ||
[[Category:All articles with unsourced statements]] | |||
[[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: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
| File:Python logo and wordmark.svg | |
| Original author(s) | Guido van Rossum |
|---|---|
| Developer(s) | Python core developers and the Python community, supported by the Python Software Foundation |
| Initial release | 26 January 1994 |
| 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. |
सीपीथॉन पायथन (प्रोग्रामिंग भाषा) का संदर्भ कार्यान्वयन है। सी (प्रोग्रामिंग भाषा) और पायथन में लिखा गया, सीपीथॉन, पायथन भाषा का डिफ़ॉल्ट और सबसे व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन है।
सीपीथॉन को दुभाषिया (कंप्यूटिंग) और संकलक दोनों के रूप में परिभाषित किया जा सकता है क्योंकि यह व्याख्या करने से पहले पायथन कोड को बाईटकोड में संकलित करता है। इसमें सी सहित कई भाषाओं के साथ विदेशी कार्यात्मक अंतराफलक है, जिसमें पायथन के अतिरिक्त किसी अन्य भाषा में स्पष्ट रूप से भाषा बंधन लिखनी चाहिए।
डिजाइन
सीपीथॉन की विशेष विशेषता यह है कि यह प्रत्येक सीपीथॉन दुभाषिया प्रक्रिया (कंप्यूटिंग) पर वैश्विक दुभाषिया बन्ध (जीआईएल) का उपयोग करता है, जिसका अर्थ है कि ही प्रक्रिया के अन्दर, किसी समय में केवल थ्रेड पायथन बाइटकोड को संसाधित कर सकता है।[1] इसका अर्थ यह नहीं है कि मल्टीथ्रेडिंग (कंप्यूटर आर्किटेक्चर) का कोई अर्थ नहीं है; सबसे आम मल्टीथ्रेडिंग परिदृश्य वह है जहां थ्रेड (कंप्यूटिंग) अधिकांश बाहरी प्रक्रियाओं के पूरा होने की प्रतीक्षा कर रहे हैं।
यह तब हो सकता है जब कई थ्रेड्स अलग-अलग ग्राहकों का काम कर रहा हों। हो सकता है कि थ्रेड ग्राहक के उत्तर का प्रतीक्षा कर रहा हो, और दूसरा थ्रेड डेटाबेस क्वेरी के निष्पादित होने का प्रतीक्षा कर रहा हो, चूंकि तीसरा थ्रेड वास्तविक में पायथन कोड को प्रोसेस कर रहा हो।
चूँकि, जीआईएल का अर्थ यह है कि सीपीथॉन उन प्रक्रियाओं के लिए उपयुक्त नहीं है जो पायथन कोड में सीपीयू-गहन एल्गोरिदम को प्रायुक्त करते हैं जो संभावित रूप से कई कोर में वितरित किए जा सकते हैं।
वास्तविक संसार के अनुप्रयोगों में, ऐसी स्थितियाँ जहाँ जीआईएल महत्वपूर्ण रूकावट है, ऐसा अधिक दुर्लभ हैं। ऐसा इसलिए है क्योंकि पायथन स्वाभाविक रूप से धीमी भाषा है और सामान्यतः इसका उपयोग सीपीयू-गहन या समय-संवेदनशील संचालन के लिए नहीं किया जाता है। पायथन सामान्यतः शीर्ष स्तर पर उपयोग किया जाता है और विशिष्ट कार्यों को करने के लिए पुस्तकालयों में कार्यों को बुलाता है। इन पुस्तकालयों को सामान्यतः पायथन में नहीं लिखा जाता है, और इन अंतर्निहित प्रक्रियाओं में से किसी को कॉल करने के दौरान किसी अन्य थ्रेड में पायथन कोड निष्पादित किया जा सकता है। सीपीयू-गहन कार्य करने के लिए बुलाए जाने वाले गैर-पायथन पुस्तकालय जीआईएल के अधीन नहीं हैं और बिना किसी प्रतिबंध के कई प्रोसेसर पर कई थ्रेड्स को समवर्ती रूप से निष्पादित कर सकते हैं।
पायथन कोड की समवर्ती केवल मल्टीटास्किंग ऑपरेटिंग प्रणाली द्वारा प्रबंधित अलग-अलग सीपीथॉन दुभाषिया प्रक्रियाओं के साथ प्राप्त की जा सकती है। यह समानांतर कंप्यूटिंग के बीच संचार को जटिल बनाता है, चूंकि मल्टीप्रो