सिंबल (प्रोग्रामिंग)

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

सबसे तुच्छ कार्यान्वयन में, उन्हें अनिवार्य रूप से पूर्णांक नाम दिया गया है (उदाहरण के लिए सी में प्रगणित प्रकार)।

समर्थन
निम्नलिखित प्रोग्रामिंग भाषाएँ प्रतीकों के लिए रनटाइम सिस्टम समर्थन प्रदान करती हैं:

जूलिया
जूलिया (प्रोग्रामिंग भाषा) में प्रतीक स्ट्रिंग इंटर्निंग हैं जिनका उपयोग पार्स किए गए जूलिया कोड (सार वाक्यविन्यास वृक्ष) में पहचानकर्ताओं को दर्शाने के लिए और संस्थाओं की पहचान करने के लिए नाम या लेबल के रूप में किया जाता है (उदाहरण के लिए एक शब्दकोश में कुंजी के रूप में)।

लिस्प
लिस्प (प्रोग्रामिंग भाषा) में एक प्रतीक नाम स्थान  (या कॉमन लिस्प में पैकेज) में अद्वितीय है। फ़ंक्शन EQ के साथ समानता के लिए प्रतीकों का परीक्षण किया जा सकता है। लिस्प प्रोग्राम रनटाइम पर नए प्रतीक उत्पन्न कर सकते हैं। जब लिस्प उस डेटा को पढ़ता है जिसमें पाठ्य प्रतिनिधित्व वाले प्रतीक शामिल होते हैं, तो मौजूदा प्रतीकों को संदर्भित किया जाता है। यदि कोई प्रतीक अज्ञात है, तो लिस्प रीडर एक नया प्रतीक बनाता है।

सामान्य लिस्प प्रतीकों में निम्नलिखित विशेषताएँ होती हैं: एक नाम, एक मान, एक फ़ंक्शन, गुणों की एक सूची और एक पैकेज। कॉमन लिस्प में यह भी संभव है कि किसी पैकेज में कोई प्रतीक अंकित न हो। ऐसे प्रतीकों को मुद्रित किया जा सकता है, लेकिन जब वापस पढ़ा जाता है, तो एक नया प्रतीक बनाना पड़ता है। चूंकि इसे इंटर्न नहीं किया गया है, इसलिए मूल प्रतीक को किसी पैकेज से पुनर्प्राप्त नहीं किया जा सकता है।

कॉमन लिस्प प्रतीकों में व्हाइटस्पेस सहित किसी भी वर्ण का उपयोग किया जा सकता है, जैसे रिक्त स्थान और न्यूलाइन। यदि किसी प्रतीक में एक रिक्त स्थान वर्ण है तो उसे इस प्रकार लिखा जाना चाहिए |यह एक प्रतीक है|। प्रतीकों का उपयोग किसी भी प्रकार की नामित प्रोग्रामिंग संरचनाओं के लिए पहचानकर्ता के रूप में किया जा सकता है: चर, फ़ंक्शन, मैक्रोज़, कक्षाएं, प्रकार, गोटो टैग और बहुत कुछ। प्रतीकों को एक पैकेज में रखा जा सकता है। कीवर्ड प्रतीक स्व-मूल्यांकन कर रहे हैं और KEYWORD नाम के पैकेज में इंटर्न किया गया।

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

परिशिष्ट भाग
पोस्टस्क्रिप्ट में, नाम वस्तुओं के संदर्भ या तो शाब्दिक या निष्पादन योग्य हो सकते हैं, जो उनका सामना करते समय दुभाषिया के व्यवहार को प्रभावित करते हैं।  ई> और   ऑपरेटरों का उपयोग दो रूपों के बीच कनवर्ट करने के लिए किया जा सकता है। जब नामों का निर्माण स्ट्रिंग्स के माध्यम से किया जाता है   ऑपरेटर, अनुमत वर्णों का सेट अप्रतिबंधित है।

प्रस्तावना
प्रोलॉग (प्रोग्रामिंग भाषा) में, प्रतीक (या परमाणु) संख्याओं के समान प्राथमिक आदिम डेटा प्रकार होते हैं। विभिन्न प्रोलॉग की बोलियों में सटीक संकेतन भिन्न हो सकते हैं। हालाँकि, यह हमेशा काफी सरल होता है (कोई उद्धरण या विशेष आरंभिक वर्ण आवश्यक नहीं हैं)।

अन्य भाषाओं के विपरीत, कुछ प्रोलॉग के तथ्य और/या नियम बनाकर प्रतीकों को कुछ अर्थ देना संभव है।

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

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

उदाहरण
रूबी में शाब्दिक प्रतीक का एक सरल उदाहरण निम्नलिखित है: स्ट्रिंग्स को प्रतीकों में ज़बरदस्ती बनाया जा सकता है, इसके विपरीत: प्रतीक वस्तुएँ हैं  रूबी में कक्षा: प्रतीकों का उपयोग आमतौर पर वस्तुओं को गतिशील रूप से संदेश भेजने (कॉल विधियों पर) के लिए किया जाता है: सहयोगी सरणी की कुंजी के रूप में प्रतीक:

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

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