COBOL प्रोग्रामिंग की संरचना और सिंटैक्स इसे एक विशिष्ट और समझने में आसान भाषा बनाते हैं। इस खंड में, हम COBOL प्रोग्राम की संरचना, उसके विभिन्न डिवीज़न, और सिंटैक्स के बुनियादी नियमों पर चर्चा करेंगे। COBOL का सिंटैक्स सरल, स्पष्ट, और मानव-पठनीय है, जिससे इसे सीखना और उपयोग करना आसान हो जाता है। यहाँ आप सीखेंगे कि एक COBOL प्रोग्राम कैसे व्यवस्थित किया जाता है और इसके कोड को कैसे लिखा जाता है ताकि वह कार्यान्वित हो सके।
COBOL प्रोग्राम की संरचना (Structure of a COBOL Program)
COBOL प्रोग्रामिंग में, एक प्रोग्राम की संरचना को बहुत ही व्यवस्थित और स्पष्ट रूप से डिज़ाइन किया गया है। COBOL प्रोग्राम को चार मुख्य डिवीज़न में विभाजित किया जाता है: IDENTIFICATION DIVISION, ENVIRONMENT DIVISION, DATA DIVISION, और PROCEDURE DIVISION। प्रत्येक डिवीज़न का एक विशिष्ट उद्देश्य होता है और यह प्रोग्राम के कार्यान्वयन में महत्वपूर्ण भूमिका निभाता है। आइए इन डिवीज़नों को विस्तार से समझें:
1. IDENTIFICATION DIVISION
- उद्देश्य: इस डिवीज़न का मुख्य उद्देश्य प्रोग्राम की पहचान और उसे संबंधित मेटाडेटा प्रदान करना है। यह COBOL प्रोग्राम की शुरुआत को दर्शाता है।
- मुख्य तत्व:
- PROGRAM-ID: इस स्टेटमेंट का उपयोग प्रोग्राम के नाम को परिभाषित करने के लिए किया जाता है। उदाहरण:
IDENTIFICATION DIVISION. PROGRAM-ID. HelloWorld.
- AUTHOR: इस स्टेटमेंट में प्रोग्राम के लेखक का नाम लिखा जाता है।
- DATE-WRITTEN: प्रोग्राम को लिखने की तारीख।
- DATE-COMPILED: प्रोग्राम को कंपाइल करने की तारीख।
- PROGRAM-ID: इस स्टेटमेंट का उपयोग प्रोग्राम के नाम को परिभाषित करने के लिए किया जाता है। उदाहरण:
2. ENVIRONMENT DIVISION
- उद्देश्य: इस डिवीज़न का उपयोग हार्डवेयर और सॉफ्टवेयर वातावरण को परिभाषित करने के लिए किया जाता है जिसमें प्रोग्राम चलेगा। यह विशेष रूप से फाइल्स और उनके स्थान को निर्दिष्ट करता है।
- मुख्य तत्व:
- CONFIGURATION SECTION: यह सेक्शन हार्डवेयर और सॉफ्टवेयर वातावरण को परिभाषित करता है।
- INPUT-OUTPUT SECTION: इस सेक्शन में प्रोग्राम द्वारा उपयोग की जाने वाली फाइल्स और डिवाइस को निर्दिष्ट किया जाता है। उदाहरण:
ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FILE-1 ASSIGN TO 'inputfile.txt'.
3. DATA DIVISION
- उद्देश्य: DATA DIVISION में प्रोग्राम द्वारा उपयोग किए जाने वाले डेटा को परिभाषित किया जाता है। यह प्रोग्राम के लिए आवश्यक सभी वेरिएबल्स और डेटा स्ट्रक्चर्स को शामिल करता है।
- मुख्य तत्व:
- FILE SECTION: इस सेक्शन में फाइल्स के डेटा रिकॉर्ड्स को परिभाषित किया जाता है।
- WORKING-STORAGE SECTION: इस सेक्शन में वेरिएबल्स और कॉन्स्टेंट्स को डिक्लेयर किया जाता है जो प्रोग्राम के निष्पादन के दौरान उपयोग किए जाएंगे। उदाहरण:
DATA DIVISION. WORKING-STORAGE SECTION. 01 TOTAL-AMOUNT PIC 9(5)V99 VALUE 0.
- LINKAGE SECTION: इस सेक्शन का उपयोग सब-प्रोग्राम्स और मेन प्रोग्राम के बीच डेटा शेयर करने के लिए किया जाता है।
4. PROCEDURE DIVISION
- उद्देश्य: यह डिवीज़न प्रोग्राम का मुख्य लॉजिक और कार्यान्वयन हिस्सा होता है। इसमें सभी कोडिंग लॉजिक, डेटा प्रोसेसिंग, और आउटपुट जनरेशन की प्रक्रिया शामिल होती है।
- मुख्य तत्व:
- पैराग्राफ्स और सेक्शंस: PROCEDURE DIVISION में कोड को पैराग्राफ्स और सेक्शंस में विभाजित किया जाता है, जो एक विशेष कार्य या लॉजिक का प्रतिनिधित्व करते हैं। उदाहरण:
PROCEDURE DIVISION. DISPLAY 'Hello, COBOL World!'. STOP RUN.
- CONTROL STRUCTURES: इस डिवीज़न में नियंत्रण संरचनाएँ जैसे
IF
,PERFORM
, औरEVALUATE
का उपयोग किया जाता है। - INPUT/OUTPUT ऑपरेशन्स: यहाँ डेटा को प्रोसेस किया जाता है, फाइल्स से पढ़ा जाता है, और स्क्रीन या फाइल में आउटपुट दिखाया जाता है।
- पैराग्राफ्स और सेक्शंस: PROCEDURE DIVISION में कोड को पैराग्राफ्स और सेक्शंस में विभाजित किया जाता है, जो एक विशेष कार्य या लॉजिक का प्रतिनिधित्व करते हैं। उदाहरण:
COBOL की बेसिक सिंटैक्स (Basic Syntax: Keywords, Sections, Paragraphs, Sentences)
COBOL की बेसिक सिंटैक्स बहुत ही सरल और स्पष्ट है, जो इसे सीखने और समझने में आसान बनाती है। इसका डिज़ाइन इस तरह से किया गया है कि यह मानव-पठनीय हो, जिससे इसे नॉन-टेक्निकल लोग भी समझ सकते हैं। COBOL के कोड को मुख्य रूप से कीवर्ड्स, सेक्शंस, पैराग्राफ्स, और सेंटेंसेस में विभाजित किया जाता है। आइए COBOL की बेसिक सिंटैक्स को विस्तार से समझते हैं:
1. कीवर्ड्स (Keywords)
- परिभाषा: कीवर्ड्स वे रिज़र्व्ड शब्द होते हैं जिनका उपयोग COBOL प्रोग्रामिंग में विशिष्ट कार्यों और निर्देशों को परिभाषित करने के लिए किया जाता है। इन्हें बदला नहीं जा सकता और ये प्रोग्राम के लॉजिक को परिभाषित करते हैं।
- उदाहरण:
- DISPLAY: स्क्रीन पर डेटा या संदेश दिखाने के लिए उपयोग किया जाता है।
- MOVE: एक डेटा आइटम से दूसरे डेटा आइटम में वैल्यू को मूव करने के लिए।
- IF: कंडीशनल लॉजिक लागू करने के लिए।
- PERFORM: किसी कार्य को बार-बार करने के लिए या एक विशेष सेक्शन को कॉल करने के लिए।
- STOP RUN: प्रोग्राम को समाप्त करने के लिए।
उदाहरण:
DISPLAY 'Hello, COBOL World!'. MOVE 100 TO TOTAL-AMOUNT. IF TOTAL-AMOUNT > 5000 DISPLAY 'High Value'. STOP RUN.
2. सेक्शंस (Sections)
- परिभाषा: सेक्शंस एक या एक से अधिक पैराग्राफ्स का समूह होते हैं, जो एक विशेष कार्य या डेटा प्रोसेसिंग से संबंधित लॉजिक को परिभाषित करते हैं।
- उपयोग: सेक्शंस को आमतौर पर PROCEDURE DIVISION में उपयोग किया जाता है, जहाँ वे प्रोग्राम के विभिन्न भागों को व्यवस्थित और नियंत्रित करते हैं।
- उदाहरण:
PROCEDURE DIVISION. MAIN-PROCEDURE SECTION. PERFORM INITIALIZE. PERFORM PROCESS-DATA. PERFORM TERMINATE.
3. पैराग्राफ्स (Paragraphs)
- परिभाषा: पैराग्राफ्स COBOL प्रोग्राम का एक यूनिट होते हैं, जिनमें एक या अधिक सेंटेंसेस होते हैं। प्रत्येक पैराग्राफ का एक नाम होता है, जिसे कॉल करके उस पैराग्राफ के कोड को निष्पादित किया जा सकता है।
- उपयोग: पैराग्राफ्स का उपयोग लॉजिक को छोटे-छोटे हिस्सों में विभाजित करने के लिए किया जाता है, जिससे कोड को पढ़ना और समझना आसान हो जाता है।
- उदाहरण:
INITIALIZE. MOVE 0 TO TOTAL-AMOUNT. PROCESS-DATA. IF AMOUNT > 5000 MOVE 'High' TO STATUS.
4. सेंटेंसेस (Sentences)
- परिभाषा: सेंटेंसेस COBOL प्रोग्राम में एक या अधिक स्टेटमेंट्स का समूह होते हैं, जिन्हें एक साथ निष्पादित किया जाता है। एक सेंटेंस का अंत एक पूर्णविराम (.) के साथ होता है।
- उपयोग: सेंटेंसेस का उपयोग प्रोग्राम के लॉजिक को परिभाषित करने के लिए किया जाता है। प्रत्येक सेंटेंस एक पूरा विचार या कार्य को दर्शाता है।
- उदाहरण:
MOVE 100 TO TOTAL-AMOUNT. DISPLAY 'Total Amount: ' TOTAL-AMOUNT.
उदाहरण प्रोग्राम (Example Program):
IDENTIFICATION DIVISION. PROGRAM-ID. ExampleProgram. PROCEDURE DIVISION. MAIN-PROCEDURE SECTION. INITIALIZE. MOVE 0 TO TOTAL-AMOUNT. PROCESS-DATA. IF AMOUNT > 5000 DISPLAY 'High Value'. ELSE DISPLAY 'Normal Value'. TERMINATE. DISPLAY 'Program Terminated'. STOP RUN.
डेटा डिक्लेरेशन (Data declaration: Data types, PIC clauses, and level numbers)
COBOL प्रोग्रामिंग में डेटा डिक्लेरेशन एक महत्वपूर्ण भूमिका निभाता है। डेटा को सही ढंग से परिभाषित और संरचित करने के लिए, COBOL में विशेष डेटा प्रकार, PIC क्लॉज़, और लेवल नंबर्स का उपयोग किया जाता है। यह आपको डेटा को सही फॉर्मेट में संग्रहित करने और प्रोसेस करने में मदद करता है। आइए इन तत्वों को विस्तार से समझें:
1. डेटा प्रकार (Data Types)
- परिभाषा: COBOL में विभिन्न प्रकार के डेटा को स्टोर करने के लिए विभिन्न डेटा प्रकार होते हैं। ये डेटा प्रकार यह निर्धारित करते हैं कि एक वेरिएबल किस प्रकार की जानकारी को स्टोर कर सकता है।
- प्रमुख डेटा प्रकार:
- नंबरिक (Numeric): संख्या या अंकों को स्टोर करने के लिए उपयोग किया जाता है। उदाहरण: INTEGER, DECIMAL।
- अल्फ़ान्यूमेरिक (Alphanumeric): अक्षरों और संख्याओं के मिश्रण को स्टोर करने के लिए। उदाहरण: STRING, CHAR।
- अल्फाबेटिक (Alphabetic): केवल अक्षरों को स्टोर करने के लिए उपयोग किया जाता है। उदाहरण: A, B, C।
- उदाहरण:
01 TOTAL-AMOUNT PIC 9(5)V99. 01 CUSTOMER-NAME PIC X(30). 01 STATUS-CODE PIC A(3).
2. PIC क्लॉज़ (PIC Clauses)
- परिभाषा: PIC (Picture) क्लॉज़ का उपयोग यह निर्दिष्ट करने के लिए किया जाता है कि डेटा आइटम की संरचना और फॉर्मेट क्या होगा। यह यह भी निर्धारित करता है कि डेटा आइटम कितनी लंबाई का होगा और किस प्रकार का डेटा स्टोर करेगा।
- प्रमुख सिंबल्स और उनके अर्थ:
- 9: एक अंक (0-9) को दर्शाता है।
- X: एक अल्फ़ान्यूमेरिक कैरेक्टर (अक्षर या संख्या) को दर्शाता है।
- A: एक अल्फाबेटिक कैरेक्टर (केवल अक्षर) को दर्शाता है।
- V: दशमलव बिंदु को दर्शाता है, लेकिन इसे स्टोर नहीं किया जाता।
- उदाहरण:
- PIC 9(5): पांच अंकों की संख्या।
- PIC X(10): दस अक्षरों या संख्याओं की स्ट्रिंग।
- PIC 9(3)V99: तीन अंकों की संख्यात्मक वैल्यू जिसमें दो दशमलव स्थान शामिल हैं।
उदाहरण कोड:
01 CUSTOMER-ID PIC 9(5). 01 CUSTOMER-NAME PIC X(30). 01 PRICE PIC 9(3)V99.
3. लेवल नंबर्स (Level Numbers)
- परिभाषा: लेवल नंबर्स का उपयोग डेटा आइटम्स के संबंधों को परिभाषित करने के लिए किया जाता है। वे यह दिखाते हैं कि एक डेटा आइटम किसी अन्य डेटा आइटम का भाग है या नहीं। उच्चतम स्तर 01 होता है, और इसके अंतर्गत आने वाले सब-आइटम्स को 02, 03, आदि लेवल नंबर्स के साथ परिभाषित किया जाता है।
- मुख्य लेवल नंबर्स:
- 01: यह मुख्य डेटा आइटम को दर्शाता है। इसे रूट आइटम भी कहा जा सकता है।
- 02-49: यह लेवल नंबर्स मुख्य डेटा आइटम के सब-आइटम्स को परिभाषित करते हैं।
- 66: रीनाम क्लॉज़ के लिए उपयोग किया जाता है, जिससे डेटा आइटम्स को एक नए नाम से संदर्भित किया जा सकता है।
- 88: कंडीशनल वैल्यूज को परिभाषित करने के लिए उपयोग किया जाता है, जो कि एक विशिष्ट वैल्यू के आधार पर एक कंडीशन को सत्यापित करने के लिए उपयोगी होते हैं।
- उदाहरण:
01 CUSTOMER-DETAILS. 05 CUSTOMER-ID PIC 9(5). 05 CUSTOMER-NAME PIC X(30). 05 CUSTOMER-ADDRESS. 10 STREET PIC X(20). 10 CITY PIC X(15). 10 ZIP-CODE PIC 9(5).
उदाहरण (Example):
DATA DIVISION. WORKING-STORAGE SECTION. 01 CUSTOMER-DETAILS. 05 CUSTOMER-ID PIC 9(5). 05 CUSTOMER-NAME PIC X(30). 05 CUSTOMER-ADDRESS. 10 STREET PIC X(20). 10 CITY PIC X(15). 10 ZIP-CODE PIC 9(5). 01 TOTAL-AMOUNT PIC 9(6)V99 VALUE 0. 01 STATUS-CODE PIC X(3) VALUE 'NEW'.