COBOL

Retour histoire langages
mise à jour 05-Jan-2003
en construction

COBOL est un langage introduit en 1959 comme common-language for business. Ce fut un langage créé par un comité, le CODASYL, réuni par le Département de la Défense et organisé par Charles Phillips. Les constructeurs initialement représentés étaient Burroughs Corporation, IBM, Minneapolis-Honeywell, RCA, Sperry Rand et Sylvania Electric Products. Trois représentants du Gouvernement y assistaient le DoD, le Basin des Carènes David Taylor le NBS (National Bureau of Standards).

La contribution principale de FLOWMATIC I développé par Grace Hopper chez Univac fut les conventions de noms symboliques composés et l'adoption de noms anglais pour les opérateurs arithmétiques (DIVIDE, SUBTRACT, MULTIPLY)

En pratique, l'usage du COBOL sous-entend un modèle d'ordinateur des années 1950 et non pas un système plus récent. Les développeurs de logiciel sont parvenus à exécuter des programmes COBOL en les faisant rentrer au chausse-pied dans le modèle des programmes batch qui est resté maintenu depuis l'aube de l'informatique. Cette opération s'est parfois faite en jouant sur les despositifs définis dans le standard comme "implementor defined" qui de fait violait le prinicpe d'inter-opérabilité que devaient avoir les programmes COBOL. De gros clients (par exemple EDF) sont parvenu à assurer cette inter-opérabilité en interdisant l'usage de certaines instructions et/ou en traitant au préallable le programme par un preé-processeur qui en vérifait la syntaxe et corrigeait certaines portions.

Versions

COBOL60
Le comité à court-terme du Codasyl produisit les spécifications en janvier 1960. Les constructeurs RCA (sur RCA 5011) et Sperry (sur Univac II) démontrèrent es compilateurs et des programmes inter-opérables en décembre 1960.

COBOL64

COBOL68

COBOL74

COBOL85

Syntaxe

000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID.  HELLOWORLD.
000300
000400*
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. MYCOBOLSOFTWAREDEVCOMPUTER.
000800 OBJECT-COMPUTER. MYCOBOLCOMPUTER.
000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400     DISPLAY " " LINE 1 POSITION 1 .
100500     DISPLAY "Hello world!" LINE 15 POSITION 10.
100600     STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800     EXIT.

On notera les points en fin de ligne source d'erreurs fréquentes. COBOL ne possédait pas le concept de structuration en blocs. L'allocation des variables était globale (à l'intérieur d'un "programme" ou d'un overlay). Le souci de ressembler à l'anglais faisait qu'on risque de donner à une donnée un nom réservé ce qui entraînait des messages d'erreurs pour tous les mots suivants du programme.

 

ACCEPT/DISPLAY

PERFORM, PERFORM N TIMES

SORT

PROCEDURE DIVISION.
 Begin.
 SORT WorkFile ON ASCENDING KEY i-file INPUT PROCEDURE IS i-method GIVING o-file.
 STOP RUN.

CALL/CANCEL

PICTURE

ALTER

ALTER X TO PROCEED TO Y

code auto-modifié

INSPECT

INSPECT MYSTRING TALLYING CharCount FOR LEADING SPACES