XS (Perl)
एक्सएस एक पर्ल फॉरेन फंक्शन इंटरफेस है जिसके माध्यम से एक प्रोग्राम सी या सी + + सबरूटीन को कॉल कर सकता है। एक्सएस या एक्ससब "एक्सटेंडेबल सबरूटीन" का संक्षिप्त नाम है। एक्सएस ऐसे इंटरफेस का समर्थन करने वाले कॉलिंग इंटरफेस को निर्दिष्ट करने के लिए एक गोंद भाषा को भी संदर्भित करता है (नीचे देखें)। पर्ल में पृष्ठभूमि सबरूटीन पुस्तकालयों को मॉड्यूल कहा जाता है, और जिन मॉड्यूल में एक्ससब होते हैं उन्हें एक्सएस मॉड्यूल कहा जाता है। पर्ल मॉड्यूल के विकास, पैकेजिंग, वितरण और स्थापना के लिए एक रूपरेखा प्रदान करता है। बहुत सी. पी. यू. या स्मृति गहन कार्यों को संभालने के लिए, हार्डवेयर या निम्न-स्तरीय प्रणाली सुविधाओं के साथ इंटरफेस करने के लिए, या मौजूदा सी सबरूटीन पुस्तकालयों का उपयोग करने के लिए एक पर्ल प्रोग्राम के लिए सी सबरूटीन का आह्वान करना वांछनीय हो सकता है। पर्ल दुभाषिया पर्ल दुभाषिया एक सी प्रोग्राम है, इसलिए सिद्धांत रूप में पर्ल से सी तक कॉल करने में कोई बाधा नहीं है। हालांकि, एक्सएस इंटरफेस जटिल और अत्यधिक तकनीकी है, और इसका उपयोग करने के लिए दुभाषिया की कुछ समझ की आवश्यकता होती है। इस विषय पर सबसे पहला संदर्भ पर्लगट्स पी. ओ. डी. था। रैपर XS मॉड्यूल लिखना संभव है जो C + + कोड को लपेटता है। ऐसा करना ज्यादातर मॉड्यूल निर्माण प्रणाली को कॉन्फ़िगर करने की बात है। उदाहरण कोड निम्नलिखित एक एक्सएस मॉड्यूल दिखाता है जो दो स्ट्रिंग्स (यानी पर्ल के समतुल्य) को संयोजित करने के लिए एक फ़ंक्शन कॉन्केट () को उजागर करता है। संचालक)। #define PERL _ NO _ GET _ CONTEXT #include "EXTERN.h" #include "perl.h" #include "SV * _ do _ sv _ catsv (pTHX _ SV * एक _ sv, SV * दो _ sv) {SV * एक _ प्रतिलिपि = नए SVsv (एक _ sv); sv _ catsv (एक _ प्रतिलिपि, दो _ sv); एक _ प्रतिलिपि वापस करें;} मॉड्यूल = डेमोःः XSM मॉड्यूल पैकेज = डेमोः: XSM मॉड्यूल SV * कॉन्केट (SV * एक _ sv, SV * दो) इसके बाद स्थानीय रूप से कॉल करने योग्य किसी भी संख्या में सादे सी कार्यों का पालन करें। मॉड्यूल = डेमोःः एक्सएस मॉड्यूल से शुरू होने वाला खंड वास्तविक एक्सएस मैक्रो भाषा का उपयोग करके इस कोड के लिए पर्ल इंटरफेस को परिभाषित करता है। ध्यान दें कि कोडः अनुभाग के तहत सी कोड _ डू _ एसवी _ कैट्सवी () प्योर-सी फ़ंक्शन को कॉल करता है जिसे पूर्व अनुभाग में परिभाषित किया गया था। पर्ल का प्रलेखन ऊपर दिखाए गए सभी "विशेष" प्रतीकों (जैसे, ए. टी. एच. एक्स. और आर. ई. टी. वी. ए. एल.) के अर्थ और उद्देश्य की व्याख्या करता है। इस मॉड्यूल को पर्ल को उपलब्ध कराने के लिए इसे संकलित किया जाना चाहिए। एक्स्टूटिल्स जैसे उपकरण बनाएँःः मेकमेकर इसे स्वचालित रूप से कर सकता है। (मैन्युअल रूप से निर्माण करने के लिएः xsubpp उपकरण एक XS मॉड्यूल को पार्स करता है और C स्रोत कोड आउटपुट करता है; उस स्रोत कोड को फिर एक साझा पुस्तकालय में संकलित किया जाता है और एक निर्देशिका में रखा जाता है जहां पर्ल इसे पा सकता है।) पर्ल कोड तब संकलित एक्स. एस. मॉड्यूल को लोड करने के लिए एक्स. एस. लोडर जैसे मॉड्यूल का उपयोग करता है। इस बिंदु पर पर्ल डेमोःः एक्सएस मॉड्यूलःः कॉन्केट ('फू', 'बार') को कॉल कर सकता है और एक स्ट्रिंग फोबार वापस प्राप्त कर सकता है, जैसे कि कॉन्केट () स्वयं पर्ल में लिखा गया था। ध्यान दें कि, पहले से मौजूद सी पुस्तकालयों के लिए पर्ल इंटरफेस बनाने के लिए, एच2एक्सएस एक्सएस फ़ाइल के अधिकांश निर्माण को स्वचालित कर सकता है। कठिनाइयाँ एक्सएस मॉड्यूल के निर्माण और रखरखाव के लिए सी के साथ-साथ पर्ल के व्यापक सी एपीआई के साथ विशेषज्ञता की आवश्यकता होती है। एक्सएस मॉड्यूल केवल तभी स्थापित किया जा सकता है जब एक सी संकलक और हेडर फाइलें उपलब्ध हों जिनके खिलाफ पर्ल दुभाषिया संकलित किया गया था। इसके अलावा, पर्ल के नए संस्करण द्विआधारी संगतता को तोड़ सकते हैं जिसके लिए एक्सएस मॉड्यूल को फिर से संकलित करने की आवश्यकता होती है। एस. डब्ल्यू. आई. जी. को भी देखें, जो एक्स. एस. का एक विकल्प है जो कई अन्य भाषाओं से सी और सी + + कार्यों को कॉल करने का भी समर्थन करता है। एफ. एफ. आई., एक तंत्र है जो किसी अन्य भाषा में लिखित कॉल दिनचर्या को सक्षम बनाता है। संदर्भ जेनेस, टिम एंड कोज़ेन, साइमन (2002)। "एक्सटेंडिंग एंड एम्बेडिंग पर्ल"। ग्रीनविचः मैनिंग पब्लिकेशंस कंपनी। एक्सटर्नल लिंक्स perlxs Perl XS एप्लीकेशन प्रोग्रामिंग इंटरफेस perlxstut Perl XS ट्यूटोरियल perl इंटर्नल फ़ंक्शंस उन लोगों के लिए जो एक्सटेंशन perlapi Perl API लिस्टिंग (ऑटोजेनेरेटेड) XS मैकेनिक्स ट्यूटोरियल Perl और C + + के लिए XS मॉड्यूल बनाना मजेदार हैः Perl XS Perl लिखने पर एक सरल और आसान ट्यूटोरियल