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