नेमस्पेस

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

अलग-अलग संदर्भों में नामों के पुन: उपयोग की अनुमति देने के लिए नामस्थानों को आमतौर पर पदानुक्रम के रूप में संरचित किया जाता है। सादृश्य के रूप में, नृविज्ञान की प्रणाली पर विचार करें जहां प्रत्येक व्यक्ति का दिया गया नाम है, साथ ही परिवार का नाम उनके रिश्तेदारों के साथ साझा किया जाता है। यदि परिवार के सदस्यों के पहले नाम केवल प्रत्येक परिवार के भीतर अद्वितीय हैं, तो प्रत्येक व्यक्ति को पहले नाम और परिवार के नाम के संयोजन से विशिष्ट रूप से पहचाना जा सकता है; केवल जेन डो है, हालांकि कई जेन हो सकते हैं। डो परिवार के नाम स्थान के भीतर, सिर्फ जेन इस व्यक्ति को स्पष्ट रूप से नामित करने के लिए पर्याप्त है, जबकि सभी लोगों के वैश्विक नाम स्थान के भीतर, पूरा नाम इस्तेमाल किया जाना चाहिए।

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

इसी तरह, डायरेक्टरी (कंप्यूटिंग) फाइलों को डायरेक्टरी में व्यवस्थित करती है। प्रत्येक निर्देशिका अलग नामस्थान है, ताकि निर्देशिका पत्र और चालान दोनों में to_jane फ़ाइल हो सकती है।

कंप्यूटर प्रोग्रामिंग में, नामस्थान आमतौर पर विशेष कार्यक्षमता के आसपास प्रतीकों और पहचानकर्ताओं को समूहीकृत करने के उद्देश्य से और ही नाम साझा करने वाले कई पहचानकर्ताओं के बीच नाम टकराव से बचने के लिए नियोजित होते हैं।

नेटवर्किंग में, डोमेन की नामांकन प्रणाली वेबसाइटों (और अन्य संसाधनों) को श्रेणीबद्ध नामस्थानों में व्यवस्थित करता है।

नाम विरोध
तत्व के नाम डेवलपर द्वारा परिभाषित किए गए हैं। विभिन्न XML अनुप्रयोगों से XML दस्तावेज़ों को मिलाने का प्रयास करते समय यह अक्सर विरोध का कारण बनता है।

इस XML में HTML टेबल की जानकारी होती है:

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

XML पार्सर को यह नहीं पता होगा कि इन अंतरों को कैसे हैंडल किया जाए।

उपसर्ग के माध्यम से समाधान
XML में नाम के विरोध को नाम उपसर्ग के प्रयोग से आसानी से टाला जा सकता है।

निम्नलिखित एक्सएमएल तत्वों की शुरुआत में एच और एफ उपसर्ग करके एचटीएमएल तालिका और फर्नीचर के बारे में जानकारी के बीच अंतर करता है।

नामकरण प्रणाली
नाम स्थान में नाम में नाम स्थान का नाम और स्थानीय नाम होता है। नामस्थान नाम आमतौर पर स्थानीय नाम के लिए उपसर्ग (कंप्यूटर विज्ञान) के रूप में लागू किया जाता है।

संवर्धित बैकस-नौर रूप में: name = separator

जब स्थानीय नामों का स्वयं उपयोग किया जाता है, तो नाम संकल्प (प्रोग्रामिंग भाषा) का उपयोग यह तय करने के लिए किया जाता है कि कौन सा (यदि कोई है) विशेष नाम किसी विशेष स्थानीय नाम से संकेतित है।

प्रतिनिधिमंडल
पार्टियों के बीच जिम्मेदारियों का प्रतिनिधिमंडल वास्तविक दुनिया के अनुप्रयोगों में महत्वपूर्ण है, जैसे वर्ल्ड वाइड वेब की संरचना। नामस्थान वैश्विक विशिष्टता को बनाए रखते हुए कई नाम जारी करने वाले संगठनों को पहचानकर्ता असाइनमेंट के प्रतिनिधिमंडल की अनुमति देते हैं। केंद्रीय पंजीकरण प्राधिकरण राष्ट्रीय इंटरनेट रजिस्ट्री को पंजीकृत करता है। प्रत्येक नेमस्पेस नाम संगठन को आवंटित किया जाता है जो बाद में उनके आवंटित नेमस्पेस में नामों के असाइनमेंट के लिए जिम्मेदार होता है। यह संगठन नाम जारी करने वाला संगठन हो सकता है जो खुद मेटाडेटा रजिस्ट्री करता है, या कोई अन्य पंजीकरण प्राधिकरण जो अपने नामस्थान के कुछ हिस्सों को अलग-अलग संगठनों को सौंपता है।

पदानुक्रम
नामकरण योजना जो तृतीय पक्षों को नामस्थानों के उप-प्रत्यायोजन की अनुमति देती है, श्रेणीबद्ध नामस्थान है।

पदानुक्रम पुनरावर्ती है यदि नामस्थान नामों के लिए सिंटैक्स प्रत्येक उप-प्रतिनिधि के लिए समान है। पुनरावर्ती पदानुक्रम का उदाहरण डोमेन नाम है।

गैर-पुनरावर्ती पदानुक्रम का उदाहरण समान संसाधन का नाम है जो इंटरनेट असाइन किए गए नंबर अथॉरिटी (IANA) नंबर का प्रतिनिधित्व करता है।

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

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

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

साथ ही इसके सार भाषा तकनीकी उपयोग जैसा कि ऊपर वर्णित है, कुछ भाषाओं में अन्य उपयोगों के साथ स्पष्ट नाम स्थान नियंत्रण के लिए विशिष्ट कीवर्ड का उपयोग किया जाता है। नीचे C++ में नाम स्थान का उदाहरण दिया गया है:

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

इस अवधारणा को सादृश्य द्वारा चित्रित किया जा सकता है। कल्पना कीजिए कि दो कंपनियां, एक्स और वाई, प्रत्येक अपने कर्मचारियों को आईडी नंबर प्रदान करती हैं। X के पास ही आईडी नंबर वाले दो कर्मचारी नहीं होने चाहिए, और इसी तरह Y के लिए; लेकिन दोनों कंपनियों में ही आईडी नंबर का इस्तेमाल करना कोई समस्या नहीं है। उदाहरण के लिए, यदि बिल कंपनी X के लिए काम करता है और जेन कंपनी Y के लिए काम करता है, तो उनमें से प्रत्येक के लिए कर्मचारी #123 होना कोई समस्या नहीं है। इस समानता में, आईडी नंबर पहचानकर्ता है, और कंपनी नेमस्पेस के रूप में कार्य करती है। यह ही पहचानकर्ता के लिए प्रत्येक नामस्थान में अलग व्यक्ति की पहचान करने में समस्या पैदा नहीं करता है।

बड़े कंप्यूटर प्रोग्राम या दस्तावेजों में सैकड़ों या हजारों पहचानकर्ताओं का होना आम बात है। नामस्थान (या इसी तरह की तकनीक, #Emulating नामस्थान देखें) स्थानीय पहचानकर्ताओं को छिपाने के लिए तंत्र प्रदान करते हैं। वे तार्किक रूप से संबंधित पहचानकर्ताओं को संबंधित नामस्थानों में समूहीकृत करने का साधन प्रदान करते हैं, जिससे सिस्टम अधिक प्रतिरूपकता (प्रोग्रामिंग) बन जाता है।

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

सी
C99 के बाद से C (प्रोग्रामिंग लैंग्वेज) में नामस्थान के रूप में अनाम स्ट्रक्चर्स का उपयोग करना संभव है।

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

पहचानकर्ता जिन्हें स्पष्ट रूप से किसी नामस्थान में घोषित नहीं किया जाता है, उन्हें वैश्विक नामस्थान में माना जाता है। इन पहचानकर्ताओं का उपयोग ठीक उसी तरह किया जा सकता है जैसे वे घोषित किए गए हैं, या, चूंकि वैश्विक नाम स्थान का नाम नहीं है, नामस्थान विनिर्देशक  उपसर्ग किया जा सकता है। उदाहरण के लिए,   भी लिखा जा सकता है.

सी ++ में नेमस्पेस रिज़ॉल्यूशन पदानुक्रमित है। इसका मतलब है कि काल्पनिक नाम स्थान के भीतर, पहचानकर्ता   का अर्थ है. अगर  मौजूद नहीं है, यह तब संदर्भित करता है. यदि कोई नहीं  और न   अस्तित्व,   का अर्थ है , वैश्विक नाम स्थान में पहचानकर्ता।

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

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

सी ++ के विपरीत, जावा में नामस्थान श्रेणीबद्ध नहीं हैं जहां तक ​​​​भाषा के वाक्य-विन्यास का संबंध है। हालाँकि, संकुल को पदानुक्रमित तरीके से नामित किया गया है। उदाहरण के लिए, से शुरू होने वाले सभी पैकेज  जावा मंच का हिस्सा हैं—पैकेज  भाषा के लिए कक्षाएं कोर शामिल हैं, और  विशेष रूप से प्रतिबिंब से संबंधित मुख्य वर्ग शामिल हैं।

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

फ़ंक्शन (प्रोग्रामिंग) और क्लास (कंप्यूटर साइंस) गुंजाइश (प्रोग्रामिंग) को अंतर्निहित नामस्थान के रूप में देखा जा सकता है जो कि दृश्यता, पहुंच और वस्तु जीवनकाल के साथ अटूट रूप से जुड़ा हुआ है।

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

पायथन
पायथन (प्रोग्रामिंग लैंग्वेज) में, नेमस्पेस को अलग-अलग मॉड्यूल द्वारा परिभाषित किया जाता है, और चूंकि मॉड्यूल को पदानुक्रमित पैकेजों में समाहित किया जा सकता है, तो नामस्थान भी पदानुक्रमित होते हैं। सामान्य तौर पर जब मॉड्यूल आयात किया जाता है तो मॉड्यूल में परिभाषित नाम उस मॉड्यूल के नामस्थान के माध्यम से परिभाषित किए जाते हैं, और पूरी तरह से योग्य नाम का उपयोग कर कॉलिंग मॉड्यूल से एक्सेस किए जाते हैं।  e> स्टेटमेंट का उपयोग प्रासंगिक नामों को सीधे कॉलिंग मॉड्यूल के नेमस्पेस में सम्मिलित करने के लिए किया जा सकता है, और उन नामों को कॉलिंग मॉड्यूल से योग्य नाम के बिना एक्सेस किया जा सकता है: चूंकि यह सीधे नामों का आयात करता है (योग्यता के बिना) यह मौजूदा नामों को बिना किसी चेतावनी के अधिलेखित कर सकता है।

कथन का विशेष रूप है  जो नामित पैकेज में परिभाषित सभी नामों को सीधे कॉलिंग मॉड्यूल के नेमस्पेस में आयात करता है। आयात के इस रूप का उपयोग, हालांकि भाषा के भीतर समर्थित है, आम तौर पर हतोत्साहित किया जाता है क्योंकि यह कॉलिंग मॉड्यूल के नाम स्थान को प्रदूषित करता है और नाम की गड़बड़ी के मामले में पहले से परिभाषित नामों को अधिलेखित कर देगा।

पायथन भी समर्थन करता है  कॉलिंग मॉड्यूल द्वारा उपयोग के लिए उपनाम या वैकल्पिक नाम प्रदान करने के तरीके के रूप में:

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

पीएचपी
नेमस्पेस को संस्करण 5.3 के बाद से Php में पेश किया गया था। कक्षाओं, कार्यों और चरों के नामकरण टकराव से बचा जा सकता है। PHP में, नेमस्पेस को नेमस्पेस ब्लॉक के साथ परिभाषित किया गया है। हम निम्नलिखित विभिन्न तरीकों से PHP नेमस्पेस का संदर्भ दे सकते हैं:

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

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

कई फायदे हैं:
 * स्रोत-कोड फ़ाइलों में नामों का पता लगाने के लिए किसी विशेष सॉफ़्टवेयर टूल की आवश्यकता नहीं होती है। पकड़ की तरह साधारण कार्यक्रम पर्याप्त है।
 * कोई नामस्थान नाम विरोध नहीं है।
 * नाम-परेशान करने की कोई आवश्यकता नहीं है, और इस प्रकार संभावित असंगति की कोई समस्या नहीं है।

यह भी देखें

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