कोबोल
ID DIVISION
DATA DIVISION
01 HELLOWORLDBINARY
05 HE COMP PIC 9999
05 LL COMP PIC 9999
05 OCOMMA COMP PIC 9999
05 SPACEW COMP PIC 9999
05 ORTEXT COMP PIC 9999
05 LD COMP PIC 9999
05 EXCLAMATION COMP PIC 9999
01 FILLER REDEFINES HELLOWORLDBINARY
05 HELLOWORLDTEXT PIC XXXXXXXXXXXXX
05 FILLER PIC X
PROCEDURE DIVISION
MOVE 51333 TO HE
MOVE 37779 TO LL
MOVE 38507 TO OCOMMA
MOVE 16614 TO SPACEW
MOVE 38553 TO ORTEXT
MOVE 37764 TO LD
MOVE 23104 TO EXCLAMATION
DISPLAY HELLOWORLDTEXT
GOBACK
वास्तव में अल्फ़ान्यूमेरिक स्रोत बनने के लिए कुछ बदलावों की आवश्यकता है।
PROGRAM-ID को छोड़ा जा सकता है। आपको एक उत्पन्न प्रोग्राम नाम मिलता है (संदेश देखें)।
वर्किंग-स्टोरेज को गिराया जा सकता है। फिर से कंपाइलर कराहता है।
चूँकि इन दोनों पंक्तियों में पहले फुल-स्टॉप / पीरियड्स गायब थे, जो अब प्रासंगिक नहीं हैं कि विवरण पूरी तरह से गायब हैं, त्रुटि संदेशों की संख्या पहले की तरह ही है, और फिर भी प्रोग्राम के लिए उत्पन्न कोड को प्रभावित नहीं करता है।
COMP-5 को COMP में बदलने के लिए, VALUE क्लॉस की अनुमति नहीं है, क्योंकि COMP 9999 केवल चार दशमलव अंक हैं, जबकि COMP-5 एक बिट-बाइट है जिसमें सभी बिट-वैल्यू उपलब्ध हैं।
MOVEs में मान दशमलव मान हैं जो द्विआधारी मान देते हैं जो वर्णों के जोड़े देते हैं।
भले ही COMP फ़ील्ड्स में चार अंक हों, और चार से अधिक अंकों के साथ VALUE खंडों की अनुमति न दें, आप उस बिंदु पर बिना किसी क्रम के मूल्य के मूल्य के मूल्य में अधिक अंकों का उपयोग कर सकते हैं ... मुझसे क्यों न पूछें। कंपाइलर विकल्प DIAGTRUNC (जिसे मैंने बंद कर दिया है) इनके लिए चेतावनी निदान का उत्पादन करेगा।
कंपाइलर विकल्प TRUNC (BIN) का उपयोग COMP-5 के रूप में COMP के इलाज के लिए किया जा सकता है, लेकिन MOVEs इसे करने का एक और तरीका है।
चूंकि यह COBOL है, इसलिए आउटपुट UPPER CASE (एक झूठ, लेकिन सिर्फ मनोरंजन के लिए) में होना चाहिए।
HELLO WORLD!
ठीक है, relented, अब उत्पादन:
Hello, World!
एक विषम संख्या में वर्णों के होने के कारण, हमें कुछ और बदलावों की आवश्यकता है, क्योंकि हम इस संकलक के साथ विषम संख्या-बाइट बाइनरी फ़ील्ड नहीं रख सकते हैं। 13 एक्स की उस लाइन को देखो! यह सामान्य रूप से एक्स (13) के रूप में लिखा जाएगा, लेकिन जैसा कि मैंने दिखाया है ...
और ORTEXT को एक नाम के रूप में (या नहीं, वैसे भी) की आवश्यकता है क्योंकि या संकलक के लिए एक आरक्षित शब्द है (इसका अर्थ है या, निश्चित रूप से)।
ये EBCDIC मान हैं, ASCII नहीं, क्योंकि यह EBCDIC- जागरुक और बिग एंडियन बॉक्स पर चल रहा है।
ओह, COBOL को पूर्ण-स्टॉप / अवधियों की बहुत आवश्यकता होती है। मैंने उन्हें छोड़ दिया (वे प्रतिबंधित हैं) इसलिए ढेर सारे संकलित संदेश मिले। वैसे भी कोड उत्पन्न करने के लिए संकलक को बताया गया है (कोई भी संदेश ऑब्जेक्ट कोड से संबंधित नहीं है)।
DIAGTRUNC के बिना भी, संदेश अब 17 तक हैं ...
1 IGYDS1003-E A "PROGRAM-ID" paragraph was not found.
Program-name "CBLNAM01" was assumed.
2 IGYDS1082-E A period was required. A period was assumed
before "DATA".
3 IGYDS1082-E A period was required. A period was assumed
before "01".
Same message on line: 11
3 IGYDS1040-E A data item was found in the "DATA DIVISION"
before a section header was encountered.
"WORKING-STORAGE SECTION" was assumed.
4 IGYDS1082-E A period was required. A period was assumed
before "05".
Same message on line: 5 6 7 8
9 10 12 13
14 IGYDS1082-E A period was required. A period was assumed
before "PROCEDURE".
15 IGYPS2145-E A period was required. A period was assumed
before "MOVE".
23 IGYSC1082-E A period was required. A period was assumed
before "END OF PROGRAM".