COBOL : Un Langage Ancien au Cœur des Systèmes Modernes


illustration
illustration


Introduction à COBOL

Common Business-Oriented Language, créé en 1959 par CODASYL et s’appuyait en partie sur le langage de programmation FLOW-MATIC, conçu par Grace Hopper. est un langage de programmation conçu pour répondre aux besoins des entreprises en matière de traitement de données. Son objectif principal est la lisibilité, ce qui le rend accessible à des utilisateurs non techniques. COBOL est encore aujourd’hui largement utilisé dans les secteurs critiques tels que la finance, les assurances et l’administration publique, gérant des milliards de transactions chaque jour.


Grace Hopper créatrice cobol
Grace Hopper

L’utilisation de COBOL dans les entreprises

COBOL est incontournable dans les environnements mainframe, notamment sous z/OS, un système d’exploitation d’IBM optimisé pour gérer des transactions massives et des données critiques. Ses applications incluent :

  • Secteur bancaire : Gestion des comptes, traitement des paiements, reporting.
  • Assurances : Calcul des primes, gestion des polices et des sinistres.
  • Gouvernements : Traitement des taxes, gestion des prestations sociales.
  • Commerce : Gestion des stocks et commandes dans les chaînes d’approvisionnement.

Avantages et inconvénients de COBOL

Avantages :

  1. Fiabilité éprouvée : COBOL gère environ 70 % des transactions financières mondiales.
  2. Performance exceptionnelle : Conçu pour des environnements à haut débit sur mainframes.
  3. Stabilité : Conception robuste qui limite les bogues et pannes.
  4. Lisibilité : Sa syntaxe proche du langage naturel simplifie la compréhension.

Inconvénients :

  1. Manque de développeurs : La relève est rare en raison de l’âge du langage.
  2. Syntaxe verbeuse : Nécessite plus de lignes de code par rapport aux langages modernes.
  3. Dépendance au mainframe : Moins adapté aux infrastructures cloud.

Structure et bases du langage

Un programme COBOL est divisé en quatre sections principales :

  1. IDENTIFICATION DIVISION : Fournit des informations générales sur le programme (nom, auteur, etc.).
  2. ENVIRONMENT DIVISION : Définit l’environnement d’exécution (fichiers, périphériques).
  3. DATA DIVISION : Déclare les variables et structures de données.
  4. PROCEDURE DIVISION : Contient la logique opérationnelle.
Déclaration des variables

Les variables en COBOL sont définies dans la DATA DIVISION, généralement dans la section WORKING-STORAGE. Chaque variable doit avoir :

  1. Un niveau de hiérarchie (par exemple, 01 ou 05).
  2. Un nom.
  3. Une description de type avec le mot-clé PIC (picture clause).

Exemple :

DATA DIVISION.
WORKING-STORAGE SECTION.
01 NOM PIC X(20) VALUE 'Jean Dupont'.
01 AGE PIC 99 VALUE 30.
01 SALAIRE PIC 9(5)V99 VALUE 1500.75.
  • X(20) : Une chaîne de 20 caractères.
  • 99 : Un entier de 2 chiffres.
  • 9(5)V99 : Un nombre décimal avec 5 chiffres avant la virgule et 2 après.
Les boucles

En COBOL, les boucles peuvent être créées avec des instructions comme PERFORM ... UNTIL ou PERFORM VARYING.

Exemple :

PROCEDURE DIVISION.
   PERFORM UNTIL I > 10
       DISPLAY 'Valeur de I : ' I
       ADD 1 TO I
   END-PERFORM.

Dans cet exemple :

  1. La variable I est incrémentée à chaque itération.
  2. La boucle se termine lorsque I dépasse 10.
Les conditions

Les conditions en COBOL utilisent l’instruction IF pour effectuer des comparaisons et prendre des décisions.

Exemple :

IF AGE > 18 THEN
   DISPLAY 'Majeur'
ELSE
   DISPLAY 'Mineur'
END-IF.
Les fonctions

COBOL inclut plusieurs fonctions prédéfinies pour effectuer des calculs ou manipuler des données. Par exemple :

  • FUNCTION CURRENT-DATE : Retourne la date et l’heure actuelles.
  • FUNCTION NUMVAL : Convertit une chaîne en nombre.

Exemple d’utilisation :

MOVE FUNCTION CURRENT-DATE TO WS-DATE.
DISPLAY 'Date actuelle : ' WS-DATE.

Exemple avancé : Un jeu de devinettes

Ce programme met en œuvre un jeu où l’utilisateur doit deviner un nombre aléatoire entre 1 et 5.

IDENTIFICATION DIVISION.
PROGRAM-ID. JEU-DEVINETTE.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 NOMBRE-ALEATOIRE        PIC 9.
01 NOMBRE-UTILISATEUR      PIC 9.
01 ESSAIS                  PIC 99 VALUE 0.
01 FIN-JEU                 PIC X VALUE 'N'.

PROCEDURE DIVISION.
MAIN-PROCEDURE.
   PERFORM INITIALISER-JEU
   PERFORM UNTIL FIN-JEU = 'O'
       DISPLAY 'Devinez un nombre entre 1 et 5:'
       ACCEPT NOMBRE-UTILISATEUR
       ADD 1 TO ESSAIS
       PERFORM VERIFIER-REPONSE
   END-PERFORM
   DISPLAY 'Merci d’avoir joué.'
   STOP RUN.

INITIALISER-JEU.
   MOVE 3 TO NOMBRE-ALEATOIRE.

VERIFIER-REPONSE.
   IF NOMBRE-UTILISATEUR = NOMBRE-ALEATOIRE THEN
       DISPLAY 'Bravo ! Vous avez deviné en ' ESSAIS ' essais.'
       MOVE 'O' TO FIN-JEU
   ELSE
       IF NOMBRE-UTILISATEUR > NOMBRE-ALEATOIRE THEN
           DISPLAY 'C’est moins.'
       ELSE
           DISPLAY 'C’est plus.'
       END-IF
   END-IF.

Ce programme utilise des concepts fondamentaux comme les conditions, les boucles, et les variables.

Essayer ce programme sur Jdoodle !


Conclusion

COBOL reste un pilier des systèmes critiques d’entreprise grâce à sa fiabilité et sa robustesse. Malgré son âge, il demeure un atout stratégique pour les entreprises qui gèrent de grandes quantités de données. Maîtriser COBOL ouvre des opportunités uniques dans des secteurs essentiels, garantissant une carrière riche en défis et en contributions significatives.