COBOL (IBM मेनफ्रेम)
ID DIVISION.
PROGRAM-ID. USELESS.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 W-WHEN-COMPILED PIC X(8)BX(8) VALUE SPACE.
PROCEDURE DIVISION.
IF W-WHEN-COMPILED EQUAL TO SPACE
NEXT SENTENCE
END-IF
MOVE SPACE TO W-WHEN-COMPILED.
MOVE WHEN-COMPILED TO W-WHEN-COMPILED
DISPLAY W-WHEN-COMPILED " HELLO WORLD!"
GOBACK
.
यदि आप उपरोक्त प्रोग्राम (किसी भी IBM मेनफ्रेम COBOL को COBOL II के बाद से चलाते हैं (पहला IBM कंपाइलर 1985 के मानक के लिए, शायद अन्य IBM COBOLs के साथ ही) आउटपुट है:
02/22/14 13.11.02 हेलो वर्ल्ड!
हालाँकि, यदि आप त्रिकोणीय-बेकार रेखा को हटाते हैं, "WOW-WHEN-COMPILED के लिए SPACE SPACE।" (फ़ील्ड में अंतरिक्ष का एक प्रारंभिक मूल्य है, और अगले निर्देश में इसमें अन्य सामग्री रखी गई है, और यह वैसे भी शाखित है) कार्यक्रम कोई आउटपुट नहीं देता है और वास्तव में निम्नलिखित संदेश के साथ Abends (U4038) (इसका मतलब है कि यह दुर्घटनाग्रस्त हो जाता है) :
IGZ0037S The flow of control in program USELESS proceeded beyond the
last line of the program. From compile unit USELESS at entry
point USELESS at compile unit offset +000003AC at entry offset
+000003AC at address 119003AC.
(संदेश कोड और पाठ संकलक के बीच अलग-अलग होंगे, ऑफ़सेट वास्तविक संकलक के उपयोग और संकलन के विकल्प पर निर्भर करते हैं, पता इस बात पर निर्भर करता है कि EXECuted होने पर प्रोग्राम कहाँ लोड होता है)।
कारण है NEXT SENTENCE
। यह ए Secret GO TO
। संकलक स्रोत में अगले पूर्ण-विराम / अवधि का शिकार करता है, और निम्नलिखित अनुदेश के लिए एक शाखा उत्पन्न करता है। COBOL II से, पूर्ण विराम / अवधियों के उपयोग में ढील दी गई। एक कार्यक्रम को पूर्ण विराम / अवधि के साथ समाप्त होना चाहिए। इस मामले में, शाखा कार्यक्रम के अंत से दूर है।
दोनों कार्यक्रम 100% स्वच्छ (कोई नैदानिक संदेश, शून्य का रिटर्न कोड) संकलित करते हैं।
यह व्यवहार COBOL के लिए एक गूंगा "आईबीएम एक्सटेंशन" है। 1985 मानक / के NEXT SENTENCE
भीतर अनुमति नहीं देता है ( इसके बजाय इसका उपयोग किया जाता है, जो कि एक नो-ऑप है)। आईबीएम ने इसे अनुमति दी - समय-समय पर भयानक गोचकों के कारण।IF
END-IF
CONTINUE