Declaration (computer programming)
कंप्यूटर प्रोग्रामिंग में, एक घोषणा एक भाषा निर्माण है जो पहचानकर्ता गुणों को निर्दिष्ट करती हैः यह एक शब्द (पहचानकर्ता) के अर्थ की घोषणा करती है। घोषणाओं का उपयोग आमतौर पर कार्यों, चर, स्थिरांक और वर्गों के लिए किया जाता है, लेकिन इसका उपयोग अन्य संस्थाओं जैसे गणना और प्रकार परिभाषाओं के लिए भी किया जा सकता है। नाम (स्वयं पहचानकर्ता) और इकाई के प्रकार (कार्य, चर, आदि) से परे। ), घोषणाएं आम तौर पर डेटा प्रकार (चर और स्थिरांक के लिए), या प्रकार हस्ताक्षर (कार्यों के लिए) को निर्दिष्ट करती हैं; प्रकारों में आयाम भी शामिल हो सकते हैं, जैसे कि सरणी के लिए। संकलक को इकाई के अस्तित्व की घोषणा करने के लिए एक घोषणा का उपयोग किया जाता है; यह उन दृढ़ता से टाइप की गई भाषाओं में महत्वपूर्ण है जिनके लिए कार्यों, चर और स्थिरांक की आवश्यकता होती है, और उनके प्रकारों को उपयोग से पहले एक घोषणा के साथ निर्दिष्ट किया जाना चाहिए, और आगे की घोषणा में उपयोग किया जाता है। "घोषणा" शब्द अक्सर "परिभाषा" शब्द के विपरीत होता है, लेकिन भाषाओं के बीच अर्थ और उपयोग काफी भिन्न होता है; नीचे देखें। घोषणाएं विशेष रूप से ए. एल. जी. ओ. एल. परंपरा में भाषाओं में प्रमुख हैं, जिसमें बी. सी. पी. एल. परिवार, सबसे प्रमुख रूप से सी और सी + + और पास्कल भी शामिल हैं। जावा "घोषणा" शब्द का उपयोग करता है, हालांकि जावा को अलग-अलग घोषणाओं और परिभाषाओं की आवश्यकता नहीं है। घोषणा बनाम परिभाषा एक बुनियादी द्विभाजन यह है कि क्या एक घोषणा में एक परिभाषा होती है या नहींः उदाहरण के लिए, क्या एक चर या स्थिर घोषणा इसके मूल्य को निर्दिष्ट करती है, या केवल इसके प्रकार को; और इसी तरह क्या किसी कार्य की घोषणा कार्य के मुख्य भाग (कार्यान्वयन) को निर्दिष्ट करती है, या केवल इसके प्रकार के हस्ताक्षर को। सभी भाषाएँ यह अंतर नहीं करती हैंः कई भाषाओं में, घोषणाओं में हमेशा एक परिभाषा शामिल होती है, और भाषा के आधार पर इन्हें "घोषणाएँ" या "परिभाषाएँ" के रूप में संदर्भित किया जा सकता है। हालांकि, इन अवधारणाओं को उन भाषाओं में अलग किया जाता है जिनके उपयोग से पहले घोषणा की आवश्यकता होती है (जिसके लिए आगे की घोषणाओं का उपयोग किया जाता है), और उन भाषाओं में जहां इंटरफेस और कार्यान्वयन को अलग किया जाता हैः इंटरफेस में घोषणाएं होती हैं, कार्यान्वयन में परिभाषाएं होती हैं। अनौपचारिक उपयोग में, एक "घोषणा" केवल एक शुद्ध घोषणा को संदर्भित करता है (केवल प्रकार, कोई मूल्य या निकाय नहीं), जबकि एक "परिभाषा" एक घोषणा को संदर्भित करती है जिसमें एक मूल्य या निकाय शामिल होता है। हालांकि, औपचारिक उपयोग में (भाषा विनिर्देशों में), "घोषणा" में भाषा द्वारा सूक्ष्म अंतर के साथ ये दोनों इंद्रियां शामिल हैंः सी और सी + + में, एक कार्य की घोषणा जिसमें एक शरीर शामिल नहीं है, उसे कार्य प्रोटोटाइप कहा जाता है, जबकि एक कार्य की घोषणा जिसमें एक शरीर शामिल होता है, उसे "कार्य परिभाषा" कहा जाता है। जावा में घोषणाएँ दो रूपों में होती हैं। सार्वजनिक विधियों के लिए उन्हें विधि हस्ताक्षर के रूप में इंटरफेस में प्रस्तुत किया जा सकता है, जिसमें विधि के नाम, इनपुट प्रकार और आउटपुट प्रकार शामिल होते हैं। अमूर्त विधियों की परिभाषा में एक समान संकेतन का उपयोग किया जा सकता है, जिसमें कोई परिभाषा नहीं होती है। संलग्न वर्ग को तत्काल किया जा सकता है, बल्कि एक नया व्युत्पन्न वर्ग, जो विधि की परिभाषा प्रदान करता है, वर्ग का एक उदाहरण बनाने के लिए बनाया जाना चाहिए। जावा 8 से शुरू करते हुए, लैम्ब्डा अभिव्यक्ति को भाषा में शामिल किया गया था, जिसे एक कार्य घोषणा के रूप में देखा जा सकता है। घोषणाएँ और परिभाषाएँ प्रोग्रामिंग भाषाओं के सी-परिवार में, घोषणाओं को अक्सर हेडर फ़ाइलों में एकत्र किया जाता है, जो अन्य स्रोत फ़ाइलों में शामिल होती हैं जो इन घोषणाओं का संदर्भ देती हैं और उनका उपयोग करती हैं, लेकिन परिभाषा तक उनकी पहुंच नहीं होती है। हेडर फाइल में जानकारी कोड के बीच इंटरफेस प्रदान करती है जो घोषणा का उपयोग करती है और जो इसे परिभाषित करती है, जानकारी छिपाने का एक रूप है। एक घोषणा का उपयोग अक्सर विभिन्न स्रोत फ़ाइलों में या एक पुस्तकालय में परिभाषित कार्यों या चर तक पहुँचने के लिए किया जाता है। परिभाषा प्रकार और घोषणा प्रकार के बीच एक बेमेल एक संकलक त्रुटि उत्पन्न करता है। चर के लिए, परिभाषाएँ स्मृति के एक क्षेत्र को मान निर्धारित करती हैं जो घोषणा चरण के दौरान आरक्षित था। कार्यों के लिए, परिभाषाएँ कार्य निकाय की आपूर्ति करती हैं। जबकि एक चर या फलन को कई बार घोषित किया जा सकता है, इसे आम तौर पर एक बार परिभाषित किया जाता है (सी + + में, इसे एक परिभाषा नियम या ओडीआर के रूप में जाना जाता है)। जावास्क्रिप्ट या पायथन जैसी गतिशील भाषाएं आम तौर पर कार्यों को फिर से परिभाषित करने की अनुमति देती हैं, यानी, पुनः बाध्य; एक फ़ंक्शन किसी भी अन्य की तरह एक चर है, जिसमें एक नाम और एक मूल्य (परिभाषा) होता है। यहाँ घोषणाओं के कुछ उदाहरण दिए गए हैं जो परिभाषाएँ नहीं हैं, सीः एक्सटर्न चार उदाहरण 1; एक्सटर्न इंट उदाहरण 2; शून्य उदाहरण 3 (शून्य); यहाँ घोषणाओं के कुछ उदाहरण दिए गए हैं जो परिभाषाएँ हैं, फिर से सीः चार उदाहरण 1 में;/* एक फ़ंक्शन परिभाषा के बाहर इसे शून्य से आरंभ किया जाएगा। */पूर्णांक उदाहरण 2 = 5; शून्य उदाहरण 3 (शून्य) {/* ब्रेसिज़ के बीच परिभाषा */} कुछ प्रोग्रामिंग भाषाओं में, एक अंतर्निहित घोषणा प्रदान की जाती है जब पहली बार संकलन समय पर इस तरह के चर का सामना किया जाता है। अन्य भाषाओं में, इस तरह के उपयोग को एक त्रुटि माना जाता है, जिसके परिणामस्वरूप एक नैदानिक संदेश हो सकता है। कुछ भाषाओं ने अंतर्निहित घोषणा व्यवहार के साथ शुरुआत की है, लेकिन जैसे-जैसे वे परिपक्व होती हैं, उन्होंने इसे अक्षम करने का विकल्प प्रदान किया (जैसे। पर्ल का "उपयोग सख्त" या विजुअल बेसिक का "विकल्प स्पष्ट")। फंक्शन प्रोटोटाइप स्कोप (प्रोग्रामिंग) नोट्स संदर्भ बाहरी लिंक सी और सी + +, एलेक्स एलेन 8.2 में डिक्लेयर बनाम डिफाइन देखें। घोषणाएँ, परिभाषाएँ और अभिगम्यता, द सी बुक, जीबीडायरेक्ट घोषणाएँ और परिभाषाएँ (सी + +), एमएसडीएन घोषणाएँ संकलक को बताती हैं कि एक प्रोग्राम तत्व या नाम मौजूद है। परिभाषाएँ निर्दिष्ट करती हैं कि नाम किस कोड या डेटा का वर्णन करता है। प्रोग्रामिंग भाषा अवधारणाएँ उदाहरण सी कोड के साथ लेख