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

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

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

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

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

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

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

CycL में, चर के साथ एक उपसर्ग लगाया जाता है sigil. इसी तरह, स्थिर नामों के साथ उपसर्ग किया जाता है (उच्चारण हैश-डॉलर)। अमृत ​​​​(प्रोग्रामिंग भाषा) में, सिगिल के माध्यम से प्रदान किया जाता है प्रतीक, उसके बाद सिगिल के प्रकार को दर्शाने के लिए एक अक्षर और फिर सीमांकक। उदाहरण के लिए,   foo की नियमित अभिव्यक्ति है। अन्य सिगिल में सम्मिलित हैं   तार के लिए और   तिथियों के लिए। प्रोग्रामर अपना स्वयं का सिगिल भी बना सकते हैं। गूढ़ प्रोग्रामिंग भाषा INTERCAL में, चर एक 16-बिट पूर्णांक पहचानकर्ता हैं जो किसी के साथ उपसर्ग करते हैं (स्पॉट कहा जाता है) 16-बिट मानों के लिए, (जिसे ट्वोस्पॉट कहा जाता है) 32-बिट मानों के लिए, (पूंछ) 16-बिट मानों की सरणियों के लिए और (हाइब्रिड) 32-बिट मानों की सरणियों के लिए। बाद में सीएलसी-इंटरकल जोड़ा गया (भँवर) एक चर के लिए जिसमें कोई मूल्य नहीं हो सकता है (कक्षा (कंप्यूटर प्रोग्रामिंग) के लिए उपयोग किया जाता है) और एक संशोधित संकलक को संग्रहीत करने के लिए उपयोग किया जाता है। MAPPER (उर्फ BIS) में, नामित चर < के साथ उपसर्ग किया जाता है और > के साथ प्रत्यय लगाया जाता है क्योंकि स्ट्रिंग्स या वर्ण मानों को उद्धरणों की आवश्यकता नहीं होती है।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

 * सीमांकक
 * सोर्स कोड
 * टोकन (प्रतिक)