लेबल (कंप्यूटर विज्ञान)

From Vigyanwiki
Revision as of 17:47, 19 September 2023 by Manidh (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

प्रोग्रामिंग भाषाओं में एक लेबल वर्णों का एक क्रम होता है जो स्रोत सांकेतिक चिन्ह के भीतर एक स्थान की पहचान करता है अधिकांश भाषाओं में लेबल एक पहचानकर्ता कंप्यूटर भाषा का रूप लेते हैं जिसके बाद अधिकतर एक विराम चिह्न जैसे एक कोलन विराम चिह्न होता है कई उच्च स्तरीय प्रोग्रामिंग भाषाओं व उच्च स्तरीय भाषाओं में एक लेबल का उद्देश्य एक गंतव्य के रूप में कार्य करना है GOTO कथन [1][2] सभा की भाषा में लेबल का उपयोग कहीं भी किया जा सकता है एक स्मृति पता उदाहरण के लिए एक चालक के रूप में JMP या MOV निर्देश हैं[3] पास्कल (प्रोग्रामिंग भाषा) और इसकी व्युत्पन्न विविधताओं में भी कुछ भाषाएँ जैसे फोरट्रान और बुनियादी संख्यात्मक लेबल का समर्थन करती हैं [4] लेबल का उपयोग बयानों के संकलक अनुक्रम में प्रवेश बिंदु की पहचान करने के लिए भी किया जाता है उदाहरण के लिए डिबगिंग के दौरान।

सी

C प्रोग्रामिंग भाषा में एक लेबल सांकेतिक चिन्ह में एक बयान की पहचान करता है एक ही बयान में कई लेबल हो सकते हैं लेबल केवल सांकेतिक चिन्ह में स्थान इंगित करते हैं और लेबल तक पहुंचने का वास्तविक निष्पादन पर कोई प्रभाव नहीं पड़ता है।

समारोह लेबल

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

यह त्रुटि लेबल है जो प्रस्तुत बयान के लिए जाओ का उपयोग सांकेतिक चिन्ह में लेबल किए गए बयान पर जाने के लिए किया जा सकता है बाद एक जाओ कार्यक्रम निष्पादन लेबल के बाद कथन के साथ जारी रहता है।

स्विच लेबल

स्विच लेबल में दो तरह के लेबल लगाए जा सकते हैं एक केस लेबल में एक कुंजी शब्द होता है जो एक व्यंजक जो पूर्णांक स्थिरांक का मूल्यांकन करता है तथा यह एक गलत लेबल में की वर्ड होता है गलत सांकेतिक चिन्ह में किसी कथन के साथ पूर्णांक मान को संबद्ध करने के लिए केस लेबल का उपयोग किया जाता है जब एक स्विच बयान पहुंच जाता है तो केस लेबल के बाद बयान के साथ प्रोग्राम का निष्पादन जारी रहता है जो स्विच के कोष्ठक में मान से मेल खाता है यदि ऐसा कोई केस लेबल नहीं है लेकिन एक गलत लेबल है तो लेबल के बाद बयान के साथ कार्यक्रम का निष्पादन जारी रहता है यदि कोई गलत लेबल नहीं है तो स्विच के बाद कार्यक्रम का निष्पादन जारी रहता है।

switch (die)
{
default:
    printf("invalid\n");
    break;

case 1:
case 3:
case 5:
    printf("odd\n");
    break;

case 2:
case 4:
case 6:
    printf("even\n");
    break; 



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

उदाहरण

जावास्क्रिप्ट

जावास्क्रिप्ट भाषा में जावास्क्रिप्ट बयान लेबल से पहले हो सकते हैं

शीर्ष: // सबसे बाहरी फॉर-लूप को लेबल करें।
के लिए (var i = 0; i <4; i++) {
    के लिए (var j = 0; j <4; j++) {
        अगर (जे

== [[सामान्य लिस्प]] ==

सामान्य लिस्प में लेबल परिभाषित करने के दो तरीके मौजूद हैं। पहले में शामिल है <code>tagbody</code> विशेष संचालिका। वैश्विक नेविगेशन की अनुमति देने वाली कई अन्य प्रोग्रामिंग भाषाओं से इसके उपयोग को अलग करते हुए, जैसे सी (प्रोग्रामिंग भाषा), लेबल केवल इस ऑपरेटर के संदर्भ में ही पहुंच योग्य हैं। ए के अंदर <code>tagbody</code> लेबल को एक प्रतीक से शुरू होने वाले रूपों के रूप में परिभाषित किया गया है; <code>go</code> विशेष प्रपत्र इन लेबलों के बीच नियंत्रण के हस्तांतरण की अनुमति देता है।<ref>{{cite web|url=http://www.lispworks.com/documentation/HyperSpec/Body/s_tagbod.htm|title=CLHS: Special Operator TAGBODY|date=|accessdate=2020-08-18|author=Kent Pitman}}</ref>

<syntaxhighlight lang="lisp">
(let ((iteration NIL))
  (tagbody
    start
      (print 'started)
      (setf  iteration 0)
    increase
      (print iteration)
      (incf  iteration 1)
      (go    check)
    check
      (if (>= iteration 10)
        (go end)
        (go increase))
    end
      (print 'done)))

एक दूसरी विधि पाठक लाभ का उपयोग करती है n और n जिनमें से पूर्व वस्तु को उसके तुरंत बाद लेबल करता है बाद वाला उसके मूल्यांकित मूल्य को संदर्भित करता है [5] तथा इस अर्थ में लेबल चर के जगह एक विकल्प का गठन करते हैं n एक अस्थिर घोषित करना और आरंभ करना वnइसे एक्सेस करना n लेबल की पहचान करने वाले चुने हुए अहस्ताक्षरित दशमलव पूर्णांक को निर्दिष्ट करता है।

(progn
  #1="hello"
  (print #1#))

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

(block myblock
  (loop for iteration from 0 do
    (if (>= iteration 10)
      (return-from myblock 'done)
      (print iteration))))
(loop
  named myloop
  for   iteration from 0
  do    (if (>= iteration 10)
          (return-from myloop 'done)
          (print iteration)))

सी के समान फैशन में मैक्रोज़ case, ccase, ecase,[6] typecase, ctypecase और etypecase स्विच संबंधित परिभाषित करें।[7]

(let ((my-value 5))
  (case my-value
    (1         (print "one"))
    (2         (print "two"))
    ((3 4 5)   (print "three four or five"))
    (otherwise (print "any other value"))))
(let ((my-value 5))
  (typecase my-value
    (list      (print "a list"))
    (string    (print "a string"))
    (number    (print "a number"))
    (otherwise (print "any other type"))))


यह भी देखें

संदर्भ

  1. "C Standard section 6.8.6.1 The goto statement". Archived from the original on 2007-12-24. Retrieved 2008-07-03.
  2. "गोटो स्टेटमेंट क्विकस्क्रीन". Microsoft. 1988. Archived from the original on 2009-07-25. Retrieved 2008-07-03.
  3. O. Lawlor. "nasm x86 Assembly". Retrieved 2008-07-03.
  4. "GW-बेसिक और QBasic के बीच अंतर". Archived from the original on 2010-02-10.
  5. Kent Pitman. "CLHS: Section 2.4.8". Retrieved 2020-08-18.
  6. Kent Pitman. "CLHS: Macro CASE, CCASE, ECASE". Retrieved 2020-08-20.
  7. Kent Pitman. "CLSH: Macro TYPECASE, CTYPECASE, ETYPECASE". Retrieved 2020-08-20.