COBOL/Structure du programme

Une page de Wikiversité.

COBOL/Structure du programme est une ébauche concernant l'informatique. Vous pouvez aider le projet Wikiversité en l'améliorant.

Structure du programme
Chapitre 2
Leçon : COBOL
Chap. préc. : Introduction au COBOL
Chap. suiv. : Mots Réservé

En raison de limitations techniques, la typographie souhaitable du titre, « COBOL : Structure du programme
COBOL/Structure du programme
 », n'a pu être restituée correctement ci-dessus.

[modifier] Introduction

Ce chapitre vous presente la structure de tous les programmes COBOL que vous rencontrerez.

[modifier] Le fichier du programme

Le fichier est de format fixe de 80 de long. La saisie d'un programme COBOL s'effectue suivant un colonnage précis:

  • Les colonnes 1 à 6, peu utilisées, peuvent contenir une numérotation COBOL ou des annotations permettant de commenter le code (date de modification, référence de l'évolution, trigramme du développeur...).
  • La colonne 7 est réservée aux caractères particuliers suivants :
    • * : ce qui suit doit être considéré comme un commentaire.
    • d : indique que la phrase COBOL de cette ligne n'est à exécuter qu'en DEBBUGING-MODE.
    • / : caractère reconnaissable par l'imprimante et commandant un saut de page dans le listing issu de la compilation.
    • - : caractère de continuation d'un libellé (uniquement en WORKING-STORAGE SECTION).
    • Space : dans tous les autres cas.
  • Les colonnes 8 à 11 incluses sont réservés commencer les noms de divisions, de sections et de paragraphes ainsi que certaines descriptions de données.
  • Les colonnes 12 à 72 contiennent tous les autres verbes COBOL.
  • Les colonnes 73 à 80 ne sont pas interprétées par le compilateur.

[modifier] La structure du programme

Le langage COBOL qui date des années 1960-70, nécessite des contraintes de formalisme et de syntaxe beaucoup plus rigoureuses que les langages récents.

Ainsi un certain nombre de mots-clés identifient les principales parties du programme et sont obligatoires.

  • Les DIVISION
  • Les SECTION
  • Les paragraphes
  1. IDENTIFICATION DIVISION

Elle permet d'identifier le programme. Dans l'exemple ci-dessous les commentaires sont en bleu, et les mots réservés en rouge. Vous remarquerez que j'ai commencé par un bloc de commentaire comme tout bon programmeur :-). Elle permet de faire l'historique des évolutions.

     7    12                                                          72
-----|----|-----------------------------------------------------------|---
     *================================================================*
     *  PROJET      :                                                 *
     *  APPLICATION :                                                 *
     *  PROGRAMME   : NOM, OBJET                                      *
     *================================================================*
     *  PERIODICITE D'EXECUTION : HEBDOMADAIRE,MENSUELLE,TRIM ETC..   *
     *  ENTREE :                                                      *
     *           nomtable (TABLE ..........)                          *
     *           nomfichier (FICHIER.........)                        *
     *  SORTIE :                                                      *
     *           nomtable (TABLE ..........)                          *
     *           nomfichier (FICHIER.........)                        *
     *           log  (COMPTE RENDU D'EXECUTION)                      *
     *================================================================*
     *                    JOURNAL DES MISES A JOUR                    *
     *                    ------------------------                    *
     *-------+---------------------------------------+--------+-------*
     *DEMANDE!     DESCRIPTION                       !  LE    !   PAR *
     *-------+---------------------------------------+--------+-------*
     *       ! CREATION......................        !../../..!.......*
     *-------+---------------------------------------+--------+-------*
     *================================================================*
      IDENTIFICATION DIVISION. 
     *----------------------- 
      PROGRAM-ID. $$$$$$.
      AUTHOR..     NOM  PRENOM.

  1. ENVIRONMENT DIVISION

Elle décrit l'environnement logique sur lequel va travailler le programme : sur quel type de machine, de fichier(s), etc.

On y trouve les deux sections suivantes :

  • CONFIGURATION SECTION.
  • INPUT-OUTPUT SECTION.
    1. CONFIGURATION SECTION

Voici quelques exemples de paramétrage. En générale, vous devrez utiliser les normes du site.

DECIMAL-POINT IS COMMA :

- Permet d'indiquer que l'on utilise la virgule au lieu du point décimal lors des éditions.

CURRENCY SIGN IS "F" :

- Permet d'indiquer au programme que l'unité monétaire, $ par défaut, sera remplacée par le "F" lors des éditions. La valeur du caractère euros est X'9F'


    1. INPUT-OUTPUT SECTION

L'INPUT-OUTPUT SECTION précise, dans le paragraphe FILE-CONTROL, la description logique des fichiers utilisés dans le programme.

     7    12                                                          72
-----|----|-----------------------------------------------------------|--- 
      ENVIRONMENT DIVISION. 
     *----------------------- 
      CONFIGURATION SECTION.
           DECIMAL-POINT IS COMMA. 
           CURRENCY SIGN IS X'9F'. 
      SPECIAL-NAMES.
      INPUT-OUTPUT SECTION.
      FILE-CONTROL.  
     *===============================================================*
     * FICHIER ===>   C R E X E C     (FICHIER COMPTE RENDU)         *
     *===============================================================*  
          SELECT CREXEC  ASSIGN TO PHY_CREXEC
                         FILE STATUS  IS WW-STATUS1.
     *===============================================================*
     * FICHIER ===>   F $ $ $ $ $ $   (FICHIER F$$$$$$ ............) *
     *===============================================================* 
          SELECT FICHIER1 ASSIGN TO PHY_FICHIER1
                         ORGANIZATION IS <type organisation>
                         ACCESS MODE IS <type d'accès>
                         <type de clé>KEY IS <nom de la clé>
                         FILE STATUS  IS WW-STATUS2.

Dans l'exmple ci-dessus, nous definition l'euro comme monnaie et la virgule comme séparateur d'affichage des décimales.

Deux fichiers seront utilisés dans le programme.

Le fichier logique CREXEC est rattaché à un fichier physique PHY_CREXEC. Celui-ci sera nommé dans le JCL.

Le deuxième fichier logique est FICHIER1.

En COBOL, il est possible de traiter plusieurs types de fichier. C'est ce qui est précisé dans le paragraphe FILE-CONTROL. Les différents types de fichier seront développés dans un prochain chapitre.


Introduction au COBOL