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

From Vigyanwiki

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

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

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

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

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

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

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

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

CycL में, चर के साथ ?सिगिल के साथ प्रीफ़िक्स्ड (उपसर्ग) होते हैं।[3] इसी तरह, स्थिर नामों के साथ #$ (उच्चारण हैश-डॉलर) प्रीफ़िक्स्ड किया जाता है [4]

अमृत ​​​​(प्रोग्रामिंग भाषा) में, सिगिल ~प्रतीक के माध्यम से प्रदान किए जाते हैं, इसके बाद सिगिल के प्रकार को दर्शाने के लिए अक्षर और फिर सीमांकक होते हैं। उदाहरण के लिए, ~r(foo) "foo" की नियमित अभिव्यक्ति है। अन्य सिगिल में स्ट्रिंग्स के लिए ~s और तिथियों के लिए ~D सम्मिलित हैं। प्रोग्रामर अपना स्वयं का सिगिल भी बना सकते हैं।[5]

गूढ़ प्रोग्रामिंग भाषा INTERCAL में, चर 16-बिट पूर्णांक पहचानकर्ता हैं जो किसी के साथ उपसर्ग करते हैं 16-बिट मानों के लिए .(स्पॉट कहा जाता है), 32-बिट मानों के लिए :(जिसे "ट्वोस्पॉट" कहा जाता है), ,("पूंछ") 16-बिट मानों की सरणियों के लिए और 32-बिट मानों की सरणियों के लिए ;("हाइब्रिड") के साथ प्रीफ़िक्स्ड (उपसर्ग) करते हैं।[6] बाद में सीएलसी-इंटरकल ने चर के लिए@ ("व्हर्लपूल") जोड़ा जिसमें कोई मूल्य नहीं हो सकता है (कक्षाओं के लिए प्रयुक्त) और_ संशोधित संकलक को संग्रहीत करने के लिए उपयोग किया जाता है।[7]

MAPPER (उर्फ BIS) में, नामित चर "<" के साथ उपसर्ग किया जाता है और ">" के साथ प्रत्यय लगाया जाता है क्योंकि स्ट्रिंग्स या वर्ण मानों को उद्धरण चिहन की आवश्यकता नहीं होती है।

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

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

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

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

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

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

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

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

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

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

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

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

समान घटनाएं

शेल लिपिबद्धन चर

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

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

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

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

स्ट्रैपिंग

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

@उपसर्ग को स्ट्रिंग लिटरल पर भी लागू किया जा सकता है; नीचे शाब्दिक प्रत्यय देखें।

हंगेरियन संकेतन

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

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

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

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

जावा एसंकेतन

जावा एसंकेतन (टिप्पणी) जैसे @Override और @Deprecated की तुलना करें।

भ्रम

कुछ स्थितियों में अलग-अलग उद्देश्यों के लिए समान रचनाक्रम का उपयोग किया जा सकता है, जो भ्रम पैदा कर सकता है। उदाहरण के लिए, 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