Cobol ANS 74/Généralités

Historique

modifier

Le langage COBOL (COmmon Business Oriented Language) a été créé par un comité de délégués de constructeurs et utilisateurs d'ordinateurs réunis à l'initiative du gouvernement américain. Ce comité de normalisation, la CODASYL (Conference On DAta SYstems Languages), s'est rassemblé pour la première fois en 1958. Il avait pour mission de définir un langage standard pour la programmation des ordinateurs en vue de résoudre les problèmes commerciaux et administratifs. En avril 1960, le comité publiait une première version du langage connu sous le nom de COBOL 60. Le langage fut ensuite revu, amélioré et complété en 61, 65 et 68. C'est en 1968 que fut défini l'USA Standard COBOL suite à une tentative de normalisation sous l'autorité de l'USASI (United States of America Standards Institute). De nouveau modifié en 1970, le COBOL USA porte maintenant le nom ANS COBOL spécifié par l'ANSI (American National Standards Institute). De nombreuses améliorations ont encore été apportées en 1974 et en 1985. Loin d'être un langage désuet et obsolète (il suffit de prendre connaissance de l'important nombre de grands comptes, publics ou privés, à maintenir à jour un ou plusieurs systèmes d'informations basés sur ce langage), le COBOL a fait l'objet d'une modernisation en 2002, implémentant la programmation orientée objet. Les normes ANS COBOL 1974 sont celles que nous étudierons dans ce cours.

Objectifs du COBOL

modifier

Le langage COBOL a été conçu pour produire des programmes :

standardisés
Le COBOL utilise des instructions standards dans une structure de programme standardisée.
Le COBOL est un essai d'utilisation d'un langage commun à tous les ordinateurs : il subsiste des différences d'un constructeur à l'autre, mais ces différences sont minimes.
faciles à comprendre
Parce qu'ils sont écrits en anglais, c'est-à-dire en un langage compréhensible des programmeurs, mais aussi ses non-programmeurs.
orientés vers le traitement des affaires
orientés vers les problèmes administratifs et commerciaux

Quelques termes de programmation COBOL

modifier
La source d'un programme
est le programme tel qu'il a été écrit par le programmeur.
Compiler un programme
est utiliser l'ordinateur pour traduire la source d'un programme COBOL en un programme écrit en langage machine. Durant la compilation, une liste des instructions de la source et de l'objet sont imprimés, de même que des messages indiquant les erreurs d'écriture que le compilateur a découvert dans le programme COBOL.
Le programme objet
est le programme obtenu par la traduction du programme source en langage machine.
Le pré-compilateur
est un programme qui traduit les instructions non COBOL (ex: SQL, CICS) en instruction COBOL pour être interprété par le compilateur.
Le compilateur COBOL
est un programme fourni par le constructeur qui dirige l'ordinateur durant la traduction de la source du programme en un programme objet.
Le « source computer »
est l'ordinateur utilisé pour compiler le programme source.
L' « object computer »
est l'ordinateur utilisé pour exécuter le programme objet.

Un exemple de programme COBOL

modifier
         1         2         3         4         5         6         7
123456789012345678901234567890123456789012345678901234567890123456789012

       IDENTIFICATION DIVISION.
        PROGRAM-ID. EXEMPLE.
        AUTHOR. SMITH.
        DATE-WRITTEN. 25 SEP 1988.

       ENVIRONMENT DIVISION.
        CONFIGURATION SECTION.
         SOURCE-COMPUTER. MINTA.
         OBJECT-COMPUTER. MINTA.
        INPUT_OUTPUT SECTION.
         FILE_CONTROL.
          SELECT FICHIER1 ASSIGN TO CARD-READER.
          SELECT FICHIER2 ASSIGN TO PRINTER.

       DATA DIVISION.
        FILE SECTION.
         FD FICHIER1 LABEL RECORD IS OMITTED
            DATA RECORD IS COMMERCE.
         01  COMMERCE.
             02 IMPORT.
                03 MECANIQUE    PICTURE 9(5).
                03 ELECTRIQUE   PICTURE 9(5).
             02 EXPORT.
                03 ALIMENTAIRE  PICTURE 9(5).
                03 DIVERS       PICTURE 9(5).
         FD FICHIER2 LABEL RECORD IS OMITTED
            DATA RECORD IS STAT_COMMERCE.
         01 STAT°COMMERCE.
            02 FILLER           PICTURE X(3); VALUE SPACE.
            02 EXP_IMP          PICTURE 9(5).
            02 PCT_MECA         PICTURE 9.99.
            02 PCT_ALIM         PICTURE 9.99.
        WORKING-STORAGE SECTION.
         77 FLAG                PICTURE 9.

       PROCEDURE DIVISION.
        PROG.
           PERFORM D-PROG.
           PERFORM LECTURE-CALCUL-ECRITURE UNTIL FLAG = 1.
           PERFORM F-PROG;
           STOP RUN.
        D-PROG.
           OPEN INPUT FICHIER1.
           OPEN OUTPUT FICHIER2.
           MOVE 0 TO FLAG.
           READ FICHIER1 AT END MOVE 1 TO FLAG.
        LECTURE-CALCUL-ECRITURE.
           COMPUTE EXP-IMP = ALIMENTAIRE + DIVERS - MECANIQUE -
                             ELECTRIQUE.
           COMPUTE PCT_MECA = MECANIQUE / (MECANIQUE + ELECTRIQUE).
           COMPUTE PCT-COMMERCE AFTER ADVANCING 1 LINE.
           WRITE STAT-COMMERCE AFTER ADVANCING 1 LINE.
           READ FICHIER1 AT END MOVE 1 TO FLAG.
        F-PROG.
           CLOSE FICHIER1, FICHIER2.