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

From Vigyanwiki
Line 54: Line 54:
       (print 'done)))
       (print 'done)))
</syntaxhighlight>
</syntaxhighlight>
एक दूसरी विधि पाठक मैक्रोज़ का उपयोग करती है <code>#''n''=</code> और <code>#''n''#</code>, जिनमें से पूर्व वस्तु को उसके तुरंत बाद लेबल करता है, बाद वाला उसके मूल्यांकित मूल्य को संदर्भित करता है।<ref>{{cite web|url=http://www.lispworks.com/documentation/HyperSpec/Body/02_dh.htm|title=CLHS: Section 2.4.8|date=|accessdate=2020-08-18|author=Kent Pitman}}</ref> इस अर्थ में लेबल चर के बजाय एक विकल्प का गठन करते हैं <code>#''n''=</code> एक "वैरिएबल" घोषित करना और आरंभ करना और <code>#''n''#</code> इसे एक्सेस करना। प्लेसहोल्डर n लेबल की पहचान करने वाले चुने हुए अहस्ताक्षरित दशमलव पूर्णांक को निर्दिष्ट करता है।
एक दूसरी विधि पाठक मैक्रोज़ का उपयोग करती है <code>''n''</code> और <code>''n''</code> जिनमें से पूर्व वस्तु को उसके तुरंत बाद लेबल करता है बाद वाला उसके मूल्यांकित मूल्य को संदर्भित करता है <ref>{{cite web|url=http://www.lispworks.com/documentation/HyperSpec/Body/02_dh.htm|title=CLHS: Section 2.4.8|date=|accessdate=2020-08-18|author=Kent Pitman}}</ref> इस अर्थ में लेबल चर के बजाय एक विकल्प का गठन करते हैं <code>''n''</code> एक "वैरिएबल" घोषित करना और आरंभ करना और <code>#''n''#</code> इसे एक्सेस करना। प्लेसहोल्डर n लेबल की पहचान करने वाले चुने हुए अहस्ताक्षरित दशमलव पूर्णांक को निर्दिष्ट करता है।


<syntaxhighlight lang="lisp">
<syntaxhighlight lang="lisp">

Revision as of 22:10, 25 June 2023

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

सी

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

समारोह लेबल

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

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

स्विच लेबल

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


स्विच { डिफ़ॉल्ट : प्रिंटफ ( "अमान्य \n " ); टूटना ; केस 1 : केस 3 : केस 5 : प्रिंटफ ( "विषम \n " ); टूटना ; केस 2 : केस 4 : केस 6 : प्रिंटफ ( "यहां तक ​​कि \n " ); टूटना ; }

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

उदाहरण

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

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

शीर्ष: // सबसे बाहरी फॉर-लूप को लेबल करें।
के लिए (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 जो एक नामकरण निर्धारित करता है, और loop मैक्रो जिसे ए द्वारा पहचाना जा सकता है named खंड। के उपयोग से नामित फॉर्म से तत्काल प्रस्थान संभव है return-from विशेष संचालिका।

(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.