Declaration (computer programming)
કોમ્પ્યુટર પ્રોગ્રામિંગમાં, ઘોષણા એ ઓળખકર્તાના ગુણધર્મોને સ્પષ્ટ કરતી ભાષાની રચના છેઃ તે શબ્દનો (ઓળખકર્તાનો) અર્થ જાહેર કરે છે. ઘોષણાઓનો ઉપયોગ સામાન્ય રીતે કાર્યો, ચલ, અચળાંકો અને વર્ગો માટે થાય છે, પરંતુ તેનો ઉપયોગ અન્ય ઘટકો જેમ કે ગણતરીઓ અને પ્રકારની વ્યાખ્યાઓ માટે પણ થઈ શકે છે. નામ (ઓળખકર્તા પોતે) અને અસ્તિત્વના પ્રકાર (કાર્ય, ચલ, વગેરે) થી આગળ. ), ઘોષણાઓ સામાન્ય રીતે ડેટા પ્રકાર (ચલ અને સ્થિરાંકો માટે), અથવા પ્રકાર સહી (કાર્યો માટે) નો ઉલ્લેખ કરે છે; પ્રકારોમાં પરિમાણો પણ શામેલ હોઈ શકે છે, જેમ કે એરે માટે. ઘોષણાનો ઉપયોગ સંકલનકર્તાને અસ્તિત્વના અસ્તિત્વની જાહેરાત કરવા માટે થાય છે; આ તે મજબૂત રીતે ટાઇપ કરેલી ભાષાઓમાં મહત્વપૂર્ણ છે જેમાં કાર્યો, ચલ અને સ્થિરાંકોની જરૂર હોય છે, અને તેમના પ્રકારોને ઉપયોગ કરતા પહેલા ઘોષણા સાથે સ્પષ્ટ કરવાની જરૂર હોય છે, અને તેનો ઉપયોગ આગળની ઘોષણામાં થાય છે. "ઘોષણા" શબ્દ વારંવાર "વ્યાખ્યા" શબ્દ સાથે વિપરિત છે, પરંતુ અર્થ અને ઉપયોગ ભાષાઓ વચ્ચે નોંધપાત્ર રીતે બદલાય છે; નીચે જુઓ. ઘોષણાઓ ખાસ કરીને એ. એલ. જી. ઓ. એલ. પરંપરામાં ભાષાઓમાં અગ્રણી છે, જેમાં બી. સી. પી. એલ. પરિવાર, મુખ્યત્વે સી અને સી + +, અને પાસ્કલનો પણ સમાવેશ થાય છે. જાવા "ઘોષણા" શબ્દનો ઉપયોગ કરે છે, જોકે જાવાને અલગ ઘોષણાઓ અને વ્યાખ્યાઓની જરૂર નથી. ઘોષણા વિ. વ્યાખ્યા એક મૂળભૂત દ્વિભાજન એ છે કે ઘોષણામાં વ્યાખ્યા હોય કે ન હોયઃ ઉદાહરણ તરીકે, ચલ અથવા સતત ઘોષણા તેના મૂલ્યને સ્પષ્ટ કરે છે કે નહીં, અથવા માત્ર તેના પ્રકારને; અને તેવી જ રીતે કાર્યની ઘોષણા કાર્યના મુખ્ય (અમલીકરણ) ને સ્પષ્ટ કરે છે કે નહીં, અથવા માત્ર તેના પ્રકારની સહી કરે છે. બધી ભાષાઓ આ તફાવત કરતી નથીઃ ઘણી ભાષાઓમાં, ઘોષણાઓમાં હંમેશા વ્યાખ્યાનો સમાવેશ થાય છે, અને ભાષાના આધારે તેને "ઘોષણાઓ" અથવા "વ્યાખ્યાઓ" તરીકે ઓળખવામાં આવે છે. જો કે, આ વિભાવનાઓ એવી ભાષાઓમાં અલગ પડે છે જેમાં ઉપયોગ કરતા પહેલા ઘોષણાની જરૂર પડે છે (જેના માટે આગળની ઘોષણાઓનો ઉપયોગ થાય છે), અને એવી ભાષાઓમાં જ્યાં ઈન્ટરફેસ અને અમલીકરણ અલગ પડે છેઃ ઈન્ટરફેસમાં ઘોષણાઓ હોય છે, અમલીકરણમાં વ્યાખ્યાઓ હોય છે. અનૌપચારિક ઉપયોગમાં, "ઘોષણા" એ માત્ર શુદ્ધ ઘોષણાનો સંદર્ભ આપે છે (ફક્ત પ્રકારો, કોઈ મૂલ્ય અથવા મુખ્ય), જ્યારે "વ્યાખ્યા" એ ઘોષણાનો સંદર્ભ આપે છે જેમાં મૂલ્ય અથવા મુખ્ય ભાગનો સમાવેશ થાય છે. જો કે, ઔપચારિક ઉપયોગમાં (ભાષાના સ્પષ્ટીકરણોમાં), "ઘોષણા" માં આ બંને ઇન્દ્રિયોનો સમાવેશ થાય છે, જેમાં ભાષા દ્વારા વધુ સૂક્ષ્મ તફાવત છેઃ સી અને સી + + માં, કાર્યની ઘોષણામાં જેમાં શરીરનો સમાવેશ થતો નથી તેને કાર્ય પ્રોટોટાઇપ કહેવામાં આવે છે, જ્યારે કાર્યની ઘોષણામાં જેમાં શરીરનો સમાવેશ થાય છે તેને "કાર્ય વ્યાખ્યા" કહેવામાં આવે છે. જાવામાં ઘોષણાઓ બે સ્વરૂપોમાં થાય છે. જાહેર પદ્ધતિઓ માટે તેમને પદ્ધતિ સહી તરીકે ઇન્ટરફેસમાં રજૂ કરી શકાય છે, જેમાં પદ્ધતિના નામો, ઇનપુટ પ્રકારો અને આઉટપુટ પ્રકારનો સમાવેશ થાય છે. અમૂર્ત પદ્ધતિઓની વ્યાખ્યામાં સમાન સંકેતનો ઉપયોગ કરી શકાય છે, જેમાં કોઈ વ્યાખ્યા નથી. સંલગ્ન વર્ગને તાત્કાલિક કરી શકાય છે, તેના બદલે એક નવો વ્યુત્પન્ન વર્ગ, જે પદ્ધતિની વ્યાખ્યા પ્રદાન કરે છે, તેને વર્ગનું ઉદાહરણ બનાવવા માટે બનાવવાની જરૂર પડશે. જાવા 8 થી શરૂ કરીને, લેમ્બડા અભિવ્યક્તિ ભાષામાં સામેલ કરવામાં આવી હતી, જેને કાર્ય ઘોષણા તરીકે જોઈ શકાય છે. ઘોષણાઓ અને વ્યાખ્યાઓ પ્રોગ્રામિંગ ભાષાઓના સી-પરિવારમાં, ઘોષણાઓ ઘણીવાર હેડર ફાઇલોમાં એકત્રિત કરવામાં આવે છે, જે અન્ય સ્રોત ફાઇલોમાં શામેલ હોય છે જે આ ઘોષણાઓનો સંદર્ભ આપે છે અને તેનો ઉપયોગ કરે છે, પરંતુ વ્યાખ્યાની ઍક્સેસ નથી. હેડર ફાઇલમાંની માહિતી કોડ વચ્ચેનું ઇન્ટરફેસ પ્રદાન કરે છે જે ઘોષણાનો ઉપયોગ કરે છે અને જે તેને વ્યાખ્યાયિત કરે છે, માહિતી છુપાવવાનું એક સ્વરૂપ. ઘોષણાનો ઉપયોગ ઘણીવાર વિવિધ સ્રોત ફાઇલોમાં અથવા પુસ્તકાલયમાં વ્યાખ્યાયિત કાર્યો અથવા ચલોનો ઉપયોગ કરવા માટે થાય છે. વ્યાખ્યા પ્રકાર અને ઘોષણા પ્રકાર વચ્ચે મેળ ખાતો નથી તે સંકલન ભૂલ પેદા કરે છે. ચલ માટે, વ્યાખ્યાઓ મેમરીના વિસ્તારને મૂલ્યો સોંપે છે જે ઘોષણા તબક્કા દરમિયાન અનામત રાખવામાં આવ્યા હતા. ફંક્શન્સ માટે, વ્યાખ્યાઓ ફંક્શન બોડી પૂરી પાડે છે. જ્યારે ચલ અથવા કાર્યને ઘણી વખત જાહેર કરી શકાય છે, તે સામાન્ય રીતે એકવાર વ્યાખ્યાયિત કરવામાં આવે છે (સી + + માં, આ એક વ્યાખ્યા નિયમ અથવા ઓડીઆર તરીકે ઓળખાય છે). જાવાસ્ક્રિપ્ટ અથવા પાયથોન જેવી ગતિશીલ ભાષાઓ સામાન્ય રીતે કાર્યોને પુનઃવ્યાખ્યાયિત કરવાની મંજૂરી આપે છે, એટલે કે, ફરીથી બંધાયેલ; કાર્ય એ નામ અને મૂલ્ય (વ્યાખ્યા) સાથે અન્ય કોઈપણ કાર્યની જેમ ચલ છે. અહીં ઘોષણાઓના કેટલાક ઉદાહરણો છે જે વ્યાખ્યાઓ નથી, C: બાહ્ય ચાર ઉદાહરણ 1; બાહ્ય પૂર્ણાંક ઉદાહરણ 2; રદબાતલ ઉદાહરણ 3 (રદબાતલ); અહીં ઘોષણાઓના કેટલાક ઉદાહરણો છે જે વ્યાખ્યાઓ છે, ફરીથી C: ચાર ઉદાહરણ 1 માં;/* કાર્ય વ્યાખ્યાની બહાર તેને શૂન્યથી શરૂ કરવામાં આવશે. */પૂર્ણાંક ઉદાહરણ 2 = 5; રદબાતલ ઉદાહરણ 3 (રદબાતલ) {/* કૌંસ વચ્ચેની વ્યાખ્યા */} અવ્યાખ્યાયિત ચલ કેટલીક પ્રોગ્રામિંગ ભાષાઓમાં, એક ગર્ભિત ઘોષણા પૂરી પાડવામાં આવે છે જ્યારે સંકલન સમયે પ્રથમ વખત આવા ચલનો સામનો કરવામાં આવે છે. અન્ય ભાષાઓમાં, આવા ઉપયોગને ભૂલ માનવામાં આવે છે, જે નિદાન સંદેશમાં પરિણમી શકે છે. કેટલીક ભાષાઓએ ગર્ભિત ઘોષણા વર્તન સાથે શરૂઆત કરી છે, પરંતુ જેમ જેમ તેઓ પરિપક્વ થાય છે તેમ તેમ તેઓએ તેને નિષ્ક્રિય કરવાનો વિકલ્પ પ્રદાન કર્યો છે (દા. ત. પર્લનો "યુઝ સ્ટ્રિક્ટ" અથવા વિઝ્યુઅલ બેઝિકનો "ઓપ્શન એક્સપ્લિસિટ"). ફંક્શન પ્રોટોટાઇપ સ્કોપ (પ્રોગ્રામિંગ) નોંધો સંદર્ભો બાહ્ય કડીઓ C અને C + +, એલેક્સ એલેન 8.2 માં ડિક્લેયર વિ ડિફાઇન જુઓ. ઘોષણાઓ, વ્યાખ્યાઓ અને સુલભતા, ધ સી બુક, જીબીડાયરેક્ટ ઘોષણાઓ અને વ્યાખ્યાઓ (સી + +), એમએસડીએન ઘોષણાઓ કમ્પાઇલરને કહે છે કે પ્રોગ્રામ તત્વ અથવા નામ અસ્તિત્વમાં છે. વ્યાખ્યાઓ સ્પષ્ટ કરે છે કે નામ કયા કોડ અથવા ડેટાનું વર્ણન કરે છે. પ્રોગ્રામિંગ ભાષાની વિભાવનાઓ ઉદાહરણ સી કોડ સાથેના લેખો