Le COBOL

L'origine du COBOL

COBOL est l'acronyme de common business oriented language. Développé dans les années 1950 et au début des années 1960, le COBOL est le deuxième plus vieux langage de programmation de haut niveau, le plus ancien étant le FORTRAN. Le COBOL est particulièrement populaire en informatique de gestion et les applications qui s'exécutent sur systèmes mainframe (grands ordinateurs centraux).

Un langage procédural

Le COBOL est un langage verbeux. Il s'agit d'un langage descriptif et procédural. Les programmes écrits en COBOL ont tendance à être beaucoup plus longs que les mêmes programmes écrits dans d'autres langages informatiques. Cela peut être gênant lorsque vous programmez en COBOL, mais la syntaxe est facile à comprendre. Les données sont décrites précisément et la forme procédurale des instructions correspond à coder chaque ordre qui sera exécuté ensuite par la machine en séquence.

Les instructions de contrôle d'exécution sont relativement simples :
- opérations logiques unitaires qui s'exécutent en séquence (MOVE, COMPUTE, DISPLAY, READ, WRITE, ...)
- instructions conditionnelles (IF, EVALUATE, ...)
- instructions répétitives (PERFORM ... UNTIL)

Les structures répétitives permettent d'effectuer des boucles. Ces structures itératives permettent de répéter une certaine séquence d'instructions un certain nombre de fois ou jusqu'à ce qu'une condition précise soit vérifiée. La condition peut être testée au début ou à la fin du bloc d'instructions. Si le test est effecté à la fin ça signifie que le bloc d'instructions s'exécute au moins une fois.
Ruptures de séquence en COBOL
Il existe également une structure de programmation par paragraphes avec des instructions de débranchement direct (GO TO) ou d'appel de sous-programmes (PERFORM ... THRU ...).

L'instruction GO TO transfert l'exécution du programme à un paragraphe précis sans l'intention de revenir.

L'instruction PERFORM, lorsqu'elle est suivie d'une étiquette de paragraphe, transfert l'exécution du programme à un paragraphe précis et jusqu'à un autre paragraphe indiqué par l'adjectif THRU. L'exécution du programme revient ensuite à l'instruction qui suit immédiatement le mot PERFORM. C'est ainsi que l'on peut écrire ce qu'on appelle des "sous-programmes performés" qui sont des séries d'instructions faisant partie du programme mais pouvant être appelées depuis plusieurs endroits du même programme COBOL.

L'instruction CALL permet un débranchement vers un autre programme. Quand ce dernier est terminé, l'exécution du programme appelant reprend à l'instruction qui suit l'ordre CALL.

Chaque instruction COBOL comporte toute une série d'opérandes et de paramètres dont certains sont optionnels.

Chaque bloc d'instruction se termine par un point. Ceci a été la cause d'innombrables erreurs de programmation qui étaient simplement dues à des points oubliés.
Exemple :
MOVE      ZERO     TO         WCOMPTEUR.
MOVE      WMOIS    TO         A.
MOVE      30       TO         B.
IF        A        =          2
          MOVE     28         TO           B.
ADD       1        TO         WCOMPTEUR.

A l'exécution de cette partie de code la variable WCOMPTEUR se retrouve incrémentée de 1. Mais imaginez maintenant que le point à la fin de l'avant dernière ligne soit oublié. L'instruction ADD ne sera exécutée que dans le cas où la variable A vaut 2. Le résultat sera donc totalement différent.

Les évolutions du COBOL

Plusieurs évolutions du COBOL ont eu lieu depuis sa naissance. La plus marquante a été l'introduction de COBOL II qui a apporté tout un lot d'instructions concernant la structuration des programmes. Il est possible avec COBOL II de terminer les instructions IF par END-IF et les instructions PERFORM par END-PERFORM, ce qui n'oblige plus de mettre un point à la fin des blocs d'instructions conditionnés par IF. On peut donc écrire un programme tout entier avec un seul point à la fin et l'exemple si dessus pourrait être écrit à l'intérieur d'une instruction PERFORM comme ceci :
MOVE    ZERO      TO       WCOMPTEUR
PERFORM UNTIL     WCOMPTEUR   =    10
    MOVE      WMOIS    TO         A
    MOVE      30       TO         B
    IF        A        =          2
          MOVE     28         TO           B
    END-IF
    ADD       1        TO         WCOMPTEUR
END-PERFORM
DISPLAY WCOMPTEUR
STOP RUN.

Bien que décrié par de nombreux programmeurs comme étant un langage dépassé, le COBOL est toujours le plus utilisé des langages de programmation dans le monde. Une étude récemment menée aux Etats-Unis montre que plus de la moitié des prochaines applications métier dans les grandes entreprises seront encore écrites en COBOL. Le langage COBOL se révèlerait toujours plus efficace que le C# et Java pour exécuter des tâches automatiques en très grand nombre. Il est également plus simple et moins coûteux de mettre à jour ses COBOL pour faire évoluer son parc applicatif plutôt que de tout réécrire dans un autre langage.

Même si la majorité des utilisateurs considèrent ce langage désuet, le nombre de lignes de codes écrites en COBOL dans le monde n'a baissé, en cinq ans, que de 5 %.

Le problème est que le personnel compétent pour développer en COBOL ne se renouvelle pas. Et tous ceux en place devraient partir à la retraite dans les dix prochaines années.

Evolution du Langage COBOL

Mis sur le marché il y a plus de cinquante ans, le COBOL est le langage de programmation principal des ordinateurs mainframes. Ces ordinateurs grands systèmes sont résolument incompatibles avec les serveurs x86 usuels, sur lesquels les jeunes générations sont formées. On trouve les mainframes dans les entreprises où il est nécessaire de gérer au quotidien des transactions d'un très grand nombre de clients. Les banques et les compagnies d'assurance en sont les principaux exemples mais il existe également beaucoup de très grosses entreprises dans l'industrie ou la distribution qui utilisent des systèmes mainframe.

Migrer est possible, mais la puissance de traitement ne suivrait pas. Toutes les solutions pour remplacer le COBOL pourraient fort bien fonctionner dans la mesure où elles ne dépassent pas 3 000 MIPS (3 000 millions d'instructions par seconde). Dans les banques, on trouve des ordinateurs qui délivrent une puissance 52 000 MIPS. Le COBOL a donc encore une longue vie assurée pour les dizaines d'années à venir et c'est pourquoi IBM a fait évoluer le langage COBOL encore récemment pour lui apporter de nouvelles instructions permettant de gérer le XML.

Glossaire informatique... Cette page est listée dans le Glossaire Informatique      Plus...