Cobol ANS 74/Généralités
Historique
[modifier | modifier le wikicode]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 | modifier le wikicode]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 | modifier le wikicode]- 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 | modifier le wikicode]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.