सिगिल (कंप्यूटर प्रोग्रामिंग)

From Vigyanwiki

कंप्यूटर प्रोग्रामिंग में, सिगिल (/ˈsɪəl/) एक चर (प्रोग्रामिंग) नाम से जुड़ा एक प्रतीक है, जो चर के डेटा प्रकार या कार्यक्षेत्र (प्रोग्रामिंग) को दर्शाता है, आमतौर पर एक उपसर्ग, जैसा कि $foo, जहां $ सिगिल है।

सिगिल, लैटिन शब्द सिगिलम से, जिसका अर्थ "एक छोटा सा चिह्न" है, मतलब संकेत या छवि जिसमें कथित रूप से जादुई शक्ति हो।[1] सिगिल का उपयोग अलग-अलग गुणों या व्यवहार वाले नामस्थानों को अलग और सीमांकित करने के लिए किया जा सकता है।

ऐतिहासिक संदर्भ

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

लैरी वॉल ने अपनी पर्ल प्रोग्रामिंग भाषा के लिए शेल स्क्रिप्टिंग के सिगिल्स के उपयोग को अपनाया।[citation needed] पर्ल में, सिगिल सूक्ष्मकणी डेटा प्रकार जैसे स्ट्रिंग और पूर्णांक निर्दिष्ट नहीं करते हैं, लेकिन अदिश (कम्प्यूटिंग) की अधिक सामान्य श्रेणियां (उपसर्ग $का उपयोग करके), सरणियाँ (@का उपयोग करके), हैश तालिका (% का उपयोग करके), और उपनेमिका (& का उपयोग कर)। राकू (प्रोग्रामिंग भाषा)[2] चर के क्षेत्र को इंगित करने के लिए सेकेंडरी सिगिल्स, या टवीगिल्स का भी उपयोग करता है। राकू में ट्विगिल्स के प्रमुख उदाहरणों में ^ सम्मिलित हैं, स्व-घोषित औपचारिक मापदंडों (प्लेसहोल्डर चर) के साथ प्रयोग किया जाता है, और., ऑब्जेक्ट विशेषता सहायक (यानी, इंस्टेंस चर) के साथ प्रयोग किया जाता है।

कुछ भाषाओं में सिगिल का उपयोग

CLIPS में, स्केलर वेरिएबल्स को a के साथ प्रीफ़िक्स किया जाता है?सिगिल, जबकि मल्टीफ़ील्ड (उदाहरण के लिए, एक 1-स्तरीय सूची) चर के साथ उपसर्ग किया जाता है$?.

सामान्य लिस्प में, विशेष चर (गतिशील दायरे के साथ) आमतौर पर घिरे होते हैं * जिसे कानों को छिपानेवाले हिस्सा सम्मेलन कहा जाता है। जबकि यह केवल परिपाटी है, और इसे लागू नहीं किया जाता है, भाषा स्वयं अभ्यास को अपनाती है (उदाहरण के लिए, *मानक-आउटपुट*)। इसी तरह, कुछ प्रोग्रामर स्थिरांक को घेरते हैं +.

CycL में, चर के साथ एक उपसर्ग लगाया जाता है?sigil.[3] इसी तरह, स्थिर नामों के साथ उपसर्ग किया जाता है#$(उच्चारण हैश-डॉलर)।[4] अमृत ​​​​(प्रोग्रामिंग भाषा) में, सिगिल के माध्यम से प्रदान किया जाता है~प्रतीक, उसके बाद सिगिल के प्रकार को दर्शाने के लिए एक अक्षर और फिर सीमांकक। उदाहरण के लिए, ~r(foo) foo की नियमित अभिव्यक्ति है। अन्य सिगिल में सम्मिलित हैं ~s तार के लिए और ~D तिथियों के लिए। प्रोग्रामर अपना स्वयं का सिगिल भी बना सकते हैं।[5] गूढ़ प्रोग्रामिंग भाषा INTERCAL में, चर एक 16-बिट पूर्णांक पहचानकर्ता हैं जो किसी के साथ उपसर्ग करते हैं.(स्पॉट कहा जाता है) 16-बिट मानों के लिए,:(जिसे ट्वोस्पॉट कहा जाता है) 32-बिट मानों के लिए,,(पूंछ) 16-बिट मानों की सरणियों के लिए और;(हाइब्रिड) 32-बिट मानों की सरणियों के लिए।[6] बाद में सीएलसी-इंटरकल जोड़ा गया@(भँवर) एक चर के लिए जिसमें कोई मूल्य नहीं हो सकता है (कक्षा (कंप्यूटर प्रोग्रामिंग) के लिए उपयोग किया जाता है) और_एक संशोधित संकलक को संग्रहीत करने के लिए उपयोग किया जाता है।[7] MAPPER (उर्फ BIS) में, नामित चर < के साथ उपसर्ग किया जाता है और > के साथ प्रत्यय लगाया जाता है क्योंकि स्ट्रिंग्स या वर्ण मानों को उद्धरणों की आवश्यकता नहीं होती है।

MIRC स्क्रिप्ट में, पहचानकर्ताओं के पास a होता है$सिगिल, जबकि सभी चरों में a%उपसर्ग (स्थानीय या वैश्विक चर या डेटा प्रकार की परवाह किए बिना)। बाइनरी वेरिएबल्स को a द्वारा प्रीफ़िक्स किया जाता है&.

MUMPS (प्रोग्रामिंग लैंग्वेज) प्रोग्रामिंग लैंग्वेज में,$आंतरिक फ़ंक्शन नाम और विशेष चर नाम (निष्पादन स्थिति तक पहुँचने के लिए अंतर्निहित चर) से पहले।$Zगैर-मानक आंतरिक फ़ंक्शन नामों से पहले।$$बाहरी फ़ंक्शन नामों से पहले। रूटीन (प्रक्रियाओं, सबरूटीन्स, फ़ंक्शंस के लिए प्रयुक्त) और वैश्विक चर (डेटाबेस स्टोरेज) एक कैरेट (^) द्वारा प्रीफ़िक्स्ड हैं। अंतिम वैश्विक चर सबट्री को अप्रत्यक्ष रूप से एक कैरेट और अंतिम सबस्क्रिप्ट द्वारा संदर्भित किया जा सकता है; इसे नग्न संदर्भ कहा जाता है। सिस्टम-वाइड रूटीन और वैश्विक चर (कुछ साझा डेटाबेस में संग्रहीत) ^% के साथ उपसर्ग हैं; इन्हें प्रतिशत रूटीन और प्रतिशत ग्लोबल्स कहा जाता है।

उद्देश्य सी में, स्ट्रिंग लिटरल से पहले@वस्तु प्रकार के उदाहरण हैं NSString या, बजना v3.1 / LLVM v4.0 के बाद से, NSNumber, NSArray या NSDictionary. उपसर्ग @ कीवर्ड पर भी प्रयोग किया जाता है interface, implementation, और end वर्ग परिभाषाओं की संरचना को व्यक्त करने के लिए। वर्ग घोषणाओं और परिभाषाओं के भीतर भी, का एक उपसर्ग - उपसर्ग के दौरान सदस्य विधियों और चर को इंगित करने के लिए प्रयोग किया जाता है + वर्ग तत्वों को इंगित करता है।

PHP भाषा में, जो काफी हद तक पर्ल से प्रेरित थी,$किसी भी चर (प्रोग्रामिंग) नाम से पहले। इसके द्वारा उपसर्ग नहीं किए जाने वाले नामों को स्थिर (कंप्यूटर विज्ञान), फ़ंक्शन (कंप्यूटर विज्ञान) या वर्ग (कंप्यूटर प्रोग्रामिंग) नाम (या इंटरफ़ेस या विशेषता नाम, जो समान नामस्थान को कक्षाओं के रूप में साझा करते हैं) माना जाता है।

पायलट उपयोग करता है$बफ़र्स के लिए (स्ट्रिंग चर),#पूर्णांक चर के लिए, और*प्रोग्राम लेबल के लिए।

पायथन (प्रोग्रामिंग लैंग्वेज) का उपयोग करता है@पायथन सिंटैक्स और शब्दार्थ # डेकोरेटर्स के अनुप्रयोग के लिए उपसर्ग, जिसे पाई सिंटैक्स कहा जाता है[8] और ए__उपसर्ग, जिसे डंडर कहा जाता है, नाम के लिए मैंगलिंग#पायथन| निजी गुण।

रूबी प्रोग्रामिंग भाषा में, साधारण चर में सिगिल्स की कमी होती है, लेकिन$वैश्विक चर के लिए उपसर्ग है,@आवृत्ति चर के लिए प्रीफ़िक्स्ड है, और@@वर्ग चर के लिए उपसर्ग है। रूबी भी अनुमति देता है (सख्ती से पारंपरिक) प्रत्यय sigils:?एक बूलियन समारोह या एक सत्य मान#कंप्यूटिंग मान लौटाने वाली एक विधेय विधि को इंगित करता है, और!इंगित करता है कि विधि का संभावित रूप से अप्रत्याशित प्रभाव हो सकता है और इसे सावधानी से संभालने की आवश्यकता है।[9] स्कीम (प्रोग्रामिंग लैंग्वेज) में, प्रथा के अनुसार, प्रक्रियाओं के नाम जो हमेशा एक बूलियन मान लौटाते हैं, आमतौर पर समाप्त होते हैं?. इसी तरह, प्रक्रियाओं के नाम जो पहले आवंटित योजना वस्तुओं (जैसे जोड़े, वैक्टर, या तार) के हिस्सों में मूल्यों को संग्रहित करते हैं, आमतौर पर समाप्त होते हैं!.

मानक एमएल उपसर्ग सिगिल का उपयोग करता है'एक चर पर जो एक प्रकार को संदर्भित करता है। यदि सिगिल को दोगुना किया जाता है, तो यह उस प्रकार को संदर्भित करता है जिसके लिए समानता को परिभाषित किया गया है।'वर्ण चर के भीतर या अंत में भी दिखाई दे सकता है, इस स्थिति में इसका कोई विशेष अर्थ नहीं होता है।

कारोबार-एसक्यूएल में,@स्थानीय चर या पैरामीटर नाम से पहले। सिस्टम फ़ंक्शंस (पहले वैश्विक चर के रूप में जाना जाता है) एक द्वारा प्रतिष्ठित हैं@@उपसर्ग। अस्थायी तालिकाओं का दायरा उपसर्ग द्वारा दर्शाया गया है#स्थानीय और निर्दिष्ट करना##वैश्विक नामित।

Windows PowerShell में, जो आंशिक रूप से यूनिक्स खोल और पर्ल से प्रेरित था, चर नाम किसके द्वारा उपसर्ग किए गए हैं$sigil.

XSLT में, वेरिएबल्स और पैरामीटर्स में एक लीडिंग होता है$उपयोग पर सतर्क, हालांकि जब परिभाषित किया गया हो <xsl:param> या <xsl:variable> साथnameविशेषता, सिगिल सम्मिलित नहीं है। XSLT से संबंधित, XQuery इसका उपयोग करता है$परिभाषा और उपयोग दोनों में सिगिल फॉर्म।

माया एंबेडेड भाषा में, चर नाम किसके द्वारा उपसर्ग किए जाते हैं$उन्हें कार्यों, आदेशों और अन्य पहचानकर्ताओं से अलग करने के लिए।

समान घटनाएं

शेल स्क्रिप्टिंग चर

यूनिक्स शेल स्क्रिप्टिंग और उपयोगिताओं जैसे मेकफाइल्स में,$एक यूनरी ऑपरेटर है जो एक चर के नाम को उसकी सामग्री में अनुवादित करता है। हालांकि यह एक सिगिल के समान प्रतीत हो सकता है, यह उचित रूप से लेक्सिकल इंडिकेशन के लिए एक एकात्मक ऑपरेशन है, जैसा कि * C (प्रोग्रामिंग लैंग्वेज) में पॉइंटर्स के लिए डेरेफरेंस ऑपरेटर, जैसा कि इस तथ्य से ध्यान देने योग्य है कि एक वैरिएबल को असाइन करते समय डॉलर का चिन्ह छोड़ दिया जाता है।

पहचानकर्ता सम्मेलन

फोरट्रान भाषा सुविधाओं में, सिगिल का उपयोग नहीं किया जाता है, लेकिन अक्षर I, J, K, L, M और N से शुरू होने वाले सभी चर डिफ़ॉल्ट रूप से पूर्णांक होते हैं। फोरट्रान प्रलेखन इसे अंतर्निहित टाइपिंग के रूप में संदर्भित करता है। किसी भी चर को किसी भी प्रकार से घोषित करने की अनुमति देने के लिए स्पष्ट टाइपिंग भी उपलब्ध है।

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

स्ट्रैपिंग

वास्तव में स्ट्रॉपिंग (वाक्यविन्यास) का एक रूप, माइक्रोसॉफ्ट के .NET Framework|.NET सामान्य भाषा अवसंरचना (CLI) में कई भाषाओं के उपयोग के लिए एक अलग भाषा में वेरिएबल्स का उपयोग करने के तरीके की आवश्यकता होती है जो कॉलिंग भाषा में कीवर्ड हो सकते हैं। यह कभी-कभी उपसर्गों द्वारा किया जाता है। सी शार्प (प्रोग्रामिंग लैंग्वेज) | सी # में, किसी भी चर के नाम के साथ उपसर्ग किया जा सकता है@. यह मुख्य रूप से चर नामों के उपयोग की अनुमति देने के लिए उपयोग किया जाता है जो अन्यथा खोजशब्दों के साथ संघर्ष करेंगे।[10] इसे VB.Net में वर्ग कोष्ठकों में नाम संलग्न करके प्राप्त किया जाता है, जैसा कि में है [end].[11] @प्रीफ़िक्स को स्ट्रिंग लिटरल पर भी लागू किया जा सकता है; नीचे #शाब्दिक प्रत्यय देखें।

हंगेरियन नोटेशन

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


शाब्दिक प्रत्यय

जबकि सिगिल नाम (पहचानकर्ता) पर लागू होते हैं, समान उपसर्ग और प्रत्यय को शाब्दिक (कंप्यूटर प्रोग्रामिंग) पर लागू किया जा सकता है, विशेष रूप से पूर्णांक शाब्दिक और स्ट्रिंग शाब्दिक, यह निर्दिष्ट करते हुए कि शाब्दिक का मूल्यांकन कैसे किया जाना चाहिए, या यह किस प्रकार का डेटा है। उदाहरण के लिए, 0x10ULL C++ में एक अहस्ताक्षरित लंबे लंबे पूर्णांक के रूप में मान 16 का मूल्यांकन करता है: the 0x उपसर्ग हेक्साडेसिमल को इंगित करता है, जबकि प्रत्यय ULL अहस्ताक्षरित लंबा लंबा इंगित करता है। इसी तरह, उपसर्गों का उपयोग अक्सर कच्चे स्ट्रिंग को इंगित करने के लिए किया जाता है, जैसे r"C:\Windows" पायथन में, जो मान के साथ स्ट्रिंग का प्रतिनिधित्व करता है C:\Windows; बची हुई स्ट्रिंग के रूप में इसे इस रूप में लिखा जाएगा "C:\\Windows".

चूंकि यह एक पहचानकर्ता (नाम) के वाक्य-विन्यास या शब्दार्थ के बजाय शाब्दिक के शब्दार्थ (मान) को प्रभावित करता है, यह न तो स्ट्रॉपिंग (पहचानकर्ता सिंटैक्स) है और न ही एक सिगिल (पहचानकर्ता शब्दार्थ), लेकिन यह वाक्य-रचना के समान है।

जावा एनोटेशन

जावा एनोटेशन जैसे @Override और @Deprecated की तुलना करें।

भ्रम

कुछ मामलों में अलग-अलग उद्देश्यों के लिए समान सिंटैक्स का उपयोग किया जा सकता है, जो भ्रम पैदा कर सकता है। उदाहरण के लिए, C Sharp (प्रोग्रामिंग लैंग्वेज)|C# में,@उपसर्ग का उपयोग या तो स्ट्रॉपिंग के लिए किया जा सकता है (आरक्षित शब्दों को पहचानकर्ता के रूप में उपयोग करने की अनुमति देने के लिए), या एक शाब्दिक के लिए एक उपसर्ग के रूप में (एक कच्चे स्ट्रिंग को इंगित करने के लिए); इस मामले में न तो उपयोग एक सतर्क है, क्योंकि यह पहचानकर्ताओं के वाक्य-विन्यास या अक्षर के शब्दार्थ को प्रभावित करता है, पहचानकर्ताओं के शब्दार्थ को नहीं।

यह भी देखें

संदर्भ

  1. "सिगिल की परिभाषा". Collins English Dictionary. Retrieved 22 May 2012.
  2. "Perl 6 variables:Twigils", Perl 6 Documentation.
  3. "Variables – Cycorp". www.Cyc.com. Retrieved 31 December 2017.
  4. "Constants – Cycorp". www.Cyc.com. Retrieved 31 December 2017.
  5. "Getting Started: Sigils". Elixir. Retrieved 18 January 2022.
  6. "C-INTERCAL 0.29 Revamped Instruction Manual". catb.org. Retrieved 2022-06-30.
  7. "सीएलसी-आंतरिक संदर्भ". oshaboy.github.io. Retrieved 2022-06-30.
  8. "PEP 318 -- Decorators for Functions and Methods".
  9. Black, David A. (15 August 2007). "Bang methods; or, Danger, Will Rubyist!". Archived from the original on 22 May 2016.
  10. "सी # कीवर्ड". MSDN. Retrieved 2011-03-23.
  11. "स्ट्रिंग (सी # संदर्भ)". MSDN. Retrieved 2011-03-23.
  12. Linux kernel coding style, by Linus Torvalds