COBOL - Struttura del programma
Una struttura del programma COBOL è composta da divisioni come mostrato nell'immagine seguente:
Di seguito viene fornita una breve introduzione di queste divisioni:
Sectionssono la suddivisione logica della logica del programma. Una sezione è una raccolta di paragrafi.
Paragraphssono la suddivisione di una sezione o divisione. È un nome definito dall'utente o predefinito seguito da un punto e consiste di zero o più frasi / voci.
Sentencessono la combinazione di una o più dichiarazioni. Le frasi compaiono solo nella divisione Procedura. Una frase deve terminare con un punto.
Statements sono istruzioni COBOL significative che eseguono alcune elaborazioni.
Characters sono i più bassi nella gerarchia e non possono essere divisibili.
È possibile correlare i termini sopra menzionati con il programma COBOL nel seguente esempio:
PROCEDURE DIVISION.
A0000-FIRST-PARA SECTION.
FIRST-PARAGRAPH.
ACCEPT WS-ID - Statement-1 -----|
MOVE '10' TO WS-ID - Statement-2 |-- Sentence - 1
DISPLAY WS-ID - Statement-3 -----|
.
Divisioni
Un programma COBOL è composto da quattro divisioni.
Divisione Identificazione
È la prima e unica divisione obbligatoria di ogni programma COBOL. Il programmatore e il compilatore utilizzano questa divisione per identificare il programma. In questa divisione, PROGRAM-ID è l'unico paragrafo obbligatorio. ID PROGRAMMA specifica il nome del programma che può essere composto da 1 a 30 caratteri.
Prova il seguente esempio usando il Live Demo opzione in linea.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Welcome to Tutorialspoint'.
STOP RUN.
Di seguito è riportato il file JCL per eseguire il programma COBOL di cui sopra.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Quando compili ed esegui il programma sopra, produce il seguente risultato:
Welcome to Tutorialspoint
Divisione Ambiente
La divisione dell'ambiente viene utilizzata per specificare i file di input e output per il programma. Consiste di due sezioni:
Configuration sectionfornisce informazioni sul sistema su cui il programma è scritto ed eseguito. Consiste di due paragrafi:
Computer di origine: sistema utilizzato per compilare il programma.
Computer oggetto: sistema utilizzato per eseguire il programma.
Input-Output sectionfornisce informazioni sui file da utilizzare nel programma. Consiste di due paragrafi:
Controllo file: fornisce informazioni sui set di dati esterni utilizzati nel programma.
Controllo IO - Fornisce informazioni sui file utilizzati nel programma.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. XXX-ZOS.
OBJECT-COMPUTER. XXX-ZOS.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILEN ASSIGN TO DDNAME
ORGANIZATION IS SEQUENTIAL.
Divisione dati
La divisione dei dati viene utilizzata per definire le variabili utilizzate nel programma. Consiste di quattro sezioni:
File section viene utilizzato per definire la struttura dei record del file.
Working-Storage section viene utilizzato per dichiarare variabili temporanee e strutture di file che vengono utilizzate nel programma.
Local-Storage sectionè simile alla sezione Working-Storage. L'unica differenza è che le variabili verranno allocate e inizializzate ogni volta che un programma inizia l'esecuzione.
Linkage section viene utilizzato per descrivere i nomi dei dati ricevuti da un programma esterno.
COBOL Program
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILEN ASSIGN TO INPUT.
ORGANIZATION IS SEQUENTIAL.
ACCESS IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD FILEN
01 NAME PIC A(25).
WORKING-STORAGE SECTION.
01 WS-STUDENT PIC A(30).
01 WS-ID PIC 9(5).
LOCAL-STORAGE SECTION.
01 LS-CLASS PIC 9(3).
LINKAGE SECTION.
01 LS-ID PIC 9(5).
PROCEDURE DIVISION.
DISPLAY 'Executing COBOL program using JCL'.
STOP RUN.
Il JCL per eseguire il programma COBOL di cui sopra è il seguente:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
//INPUT DD DSN = ABC.EFG.XYZ,DISP = SHR
Quando compili ed esegui il programma sopra, produce il seguente risultato:
Executing COBOL program using JCL
Divisione Procedura
La divisione delle procedure viene utilizzata per includere la logica del programma. Consiste in istruzioni eseguibili che utilizzano variabili definite nella divisione dei dati. In questa divisione, i nomi dei paragrafi e delle sezioni sono definiti dall'utente.
Deve essere presente almeno una dichiarazione nella divisione procedura. L'ultima istruzione per terminare l'esecuzione in questa divisione è l'una o l'altraSTOP RUN che viene utilizzato nei programmi chiamanti o EXIT PROGRAM che viene utilizzato nei programmi chiamati.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC A(30).
01 WS-ID PIC 9(5) VALUE 12345.
PROCEDURE DIVISION.
A000-FIRST-PARA.
DISPLAY 'Hello World'.
MOVE 'TutorialsPoint' TO WS-NAME.
DISPLAY "My name is : "WS-NAME.
DISPLAY "My ID is : "WS-ID.
STOP RUN.
JCL per eseguire il programma COBOL di cui sopra -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Quando compili ed esegui il programma sopra, produce il seguente risultato:
Hello World
My name is : TutorialsPoint
My ID is : 12345