COBOL - Structure du programme

Une structure de programme COBOL se compose de divisions, comme indiqué dans l'image suivante -

Une brève introduction de ces divisions est donnée ci-dessous -

  • Sectionssont la subdivision logique de la logique du programme. Une section est un ensemble de paragraphes.

  • Paragraphssont la subdivision d'une section ou d'une division. Il s'agit d'un nom défini par l'utilisateur ou prédéfini suivi d'un point et se compose de zéro ou plusieurs phrases / entrées.

  • Sentencessont la combinaison d'une ou de plusieurs instructions. Les phrases n'apparaissent que dans la division Procédure. Une phrase doit se terminer par un point.

  • Statements sont des instructions COBOL significatives qui effectuent certains traitements.

  • Characters sont les plus bas de la hiérarchie et ne peuvent pas être divisibles.

Vous pouvez mettre en relation les termes mentionnés ci-dessus avec le programme COBOL dans l'exemple suivant -

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

Divisions

Un programme COBOL comprend quatre divisions.

Division d'identification

C'est la première et la seule division obligatoire de chaque programme COBOL. Le programmeur et le compilateur utilisent cette division pour identifier le programme. Dans cette division, PROGRAM-ID est le seul paragraphe obligatoire. PROGRAM-ID spécifie le nom du programme qui peut comprendre de 1 à 30 caractères.

Essayez l'exemple suivant en utilisant le Live Demo option en ligne.

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Welcome to Tutorialspoint'.
STOP RUN.

Ci-dessous est le JCL pour exécuter le programme COBOL ci-dessus.

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant -

Welcome to Tutorialspoint

Division de l'environnement

La division d'environnement est utilisée pour spécifier les fichiers d'entrée et de sortie du programme. Il se compose de deux sections -

  • Configuration sectionfournit des informations sur le système sur lequel le programme est écrit et exécuté. Il se compose de deux paragraphes -

    • Ordinateur source - Système utilisé pour compiler le programme.

    • Ordinateur objet - Système utilisé pour exécuter le programme.

  • Input-Output sectionfournit des informations sur les fichiers à utiliser dans le programme. Il se compose de deux paragraphes -

    • Contrôle de fichier - Fournit des informations sur les ensembles de données externes utilisés dans le programme.

    • Contrôle IO - Fournit des informations sur les fichiers utilisés dans le programme.

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.

Division des données

La division des données est utilisée pour définir les variables utilisées dans le programme. Il se compose de quatre sections -

  • File section est utilisé pour définir la structure d'enregistrement du fichier.

  • Working-Storage section est utilisé pour déclarer les variables temporaires et les structures de fichiers qui sont utilisées dans le programme.

  • Local-Storage sectionest similaire à la section Working-Storage. La seule différence est que les variables seront allouées et initialisées chaque fois qu'un programme démarre l'exécution.

  • Linkage section est utilisé pour décrire les noms de données reçus d'un programme externe.

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.

le JCL pour exécuter le programme COBOL ci-dessus est comme suit -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
//INPUT DD DSN = ABC.EFG.XYZ,DISP = SHR

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant -

Executing COBOL program using JCL

Division de la procédure

La division de procédure est utilisée pour inclure la logique du programme. Il se compose d'instructions exécutables utilisant des variables définies dans la division des données. Dans cette division, les noms de paragraphe et de section sont définis par l'utilisateur.

Il doit y avoir au moins une déclaration dans la division de procédure. La dernière instruction pour terminer l'exécution dans cette division est soitSTOP RUN qui est utilisé dans les programmes d'appel ou EXIT PROGRAM qui est utilisé dans les programmes appelés.

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 pour exécuter le programme COBOL ci-dessus -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant -

Hello World
My name is : TutorialsPoint
My ID is : 12345