Accueil Thèmes COBOL Qu’est-ce que le COBOL ?
Découvrir la solution de modernisation des applications mainframe d’IBM S’abonner aux actualités concernant l’IA
Illustration par un collage de pictogrammes représentant une roue dentée, un bras robotisé, un téléphone mobile

 

Publication :  19 avril 2024 avril
Contributeurs : Chrystal R. China, Michael Goodwin

Qu’est-ce que le COBOL ?

COBOL (Common Business-Oriented Language) est un langage de programmation compilé de haut niveau, semblable à l’anglais, développé spécifiquement pour répondre aux besoins de traitement des données des entreprises. 

COBOL a été conçu dans un souci de polyvalence optimale ; sa verbosité permet aux programmeurs d'utiliser un langage de programmation lisible et facile à maintenir, qui peut fonctionner sur des ordinateurs mainframes et des systèmes opérationnels. En fait, il a été l'un des premiers langages de programmation à être normalisé par l'American National Standards Institute (ANSI) et l'Organisation internationale de normalisation (ISO).

Bien que COBOL soit considéré comme un système hérité, de nombreuses organisations gouvernementales et privées continuent à l’utiliser pour exécuter des applications financières, administratives et commerciales. En effet, la configuration impérative, procédurale et (dans ses itérations les plus récentes) orientée objet de COBOL sert de base à plus de 40 % de tous les systèmes bancaires en ligne.1

Il prend également en charge 80 % des transactions par carte de crédit en personne, traite 95 % de toutes les transactions aux guichets automatiques et alimente des systèmes qui génèrent plus de 3 milliards de dollars de transactions commerciales chaque jour.1 En raison de sa stabilité et de sa puissance de traitement supérieures, il continue à jouer un rôle essentiel en aidant les entreprises à maintenir les applications et les programmes dans les architectures existantes. 

Réserver une démo en direct

Découvrez IBM watsonx Code Assistant for Z en action.

Contenu connexe

Abonnez-vous à la newsletter IBM

Histoire de COBOL

COBOL a été développé par un consortium d’organisations gouvernementales et commerciales appelé Conference on Data Systems Languages (CODASYL), fondé en 1959. En partie dérivé de FLOW-MATIC, un langage créé par Grace Hopper, pionnière de l’informatique, COBOL a été créé dans le cadre d’une initiative du ministère américain de la défense visant à mettre au point un langage de programmation capable de fonctionner avec tous les systèmes d’exploitation (Linux, Windows, Unix, z/OS, etc.) et tous les environnements matériels.

La première version du langage de programmation COBOL a été publiée en 1960. Et même si la programmation COBOL était initialement destinée à servir de solution provisoire, le DoD s'est vite rendu compte de son utilité et a chargé les fabricants d'ordinateurs de la proposer.

COBOL a finalement été standardisé en tant que langage informatique en 1968. Par la suite, les programmeurs COBOL ont mis en œuvre plusieurs révisions et modernisations, notamment COBOL-61, COBOL-68, COBOL-74 et COBOL-85. L’itération la plus récente, COBOL 2002, tente de rendre les applications COBOL plus compatibles avec les pratiques modernes de développement de logiciels en introduisant des fonctionnalités orientées objet et d’autres paradigmes de programmation avancés dans le langage. 

La structure de COBOL

Le programme COBOL a une structure hiérarchique qui comprend des divisions, des sections, des paragraphes, des phrases, des verbes et des chaînes de caractères. La nature divisionnaire d’un système COBOL (qui comprend quatre divisions) permet une séparation claire des préoccupations au sein des programmes COBOL.

Les divisions COBOL sont les suivantes :

Division d’identification

La division d’identification est la première division d’un programme COBOL et elle est obligatoire. Elle attribue un nom au programme et fournit d’autres informations d’identification telles que l’auteur, la date de rédaction et une brève description de l’objectif du programme.

Les programmes COBOL ont besoin d’un paragraphe PROGRAM-ID pour fonctionner dans la division d’identification. Par exemple :

```

DIVISION D’IDENTIFICATION.

PROGRAM-ID. Nom de votre programme

AUTEUR. Votre nom

DATE DE RÉDACTION. AAAAMMJJ

COMMENTAIRE. « Brève description du programme »

Division de l'environnement

La division d’environnement spécifie l’environnement d’exécution d’un programme et définit les ressources d’entrée et de sortie qu’il utilisera. Elle est divisée en deux sections.

Sans surprise, la section de configuration fournit des informations sur la configuration du système, y compris l’ordinateur et les caractéristiques du compilateur utilisé. Cependant, en raison des progrès des outils de compilation, les sections de configuration sont devenues quelque peu obsolètes dans les systèmes COBOL modernes, qui peuvent généralement déduire et s’adapter automatiquement à leur environnement.

La section d’entrée-sortie spécifie les fichiers et les appareils associés avec lesquels le programme peut interagir. Il comprend le paragraphe FILE-CONTROL, qui mappe les noms de fichiers du programme aux fichiers externes, et le paragraphe I-O-CONTROL, qui contient généralement des informations d’optimisation ou de séquençage pour les opérations d’entrée-sortie.

Division des données

La division des données contient toutes les définitions des variables, des fichiers et des constantes du programme. Comme la division d’environnement, elle est subdivisée.

La section fichier énumère tous les fichiers que le programme lira ou sur lesquels il écrira. Une entrée de description de fichier définit chaque fichier et décrit la structure des enregistrements qu'il contient.

La section stockage de travail définit les variables qui conservent leur valeur tout au long de l'exécution du programme, y compris les compteurs, les accumulateurs, les constantes et tout autre stockage de données qui n'est pas pertinent pour les fichiers d'entrées-sorties.

Introduite dans les itérations ultérieures de COBOL, la section de stockage local définit les variables attribuées lors du déploiement du programme ou de la méthode et désattribuées à la fin du programme, ce qui rend le stockage local particulièrement utile pour les algorithmes récursifs et les programmes réentrants.

Enfin, la section de liaison définit les éléments de données qui passent d’un programme à l’autre.

Division des procédures

La division des procédures contient le code exécutable du programme, qui est divisé en paragraphes et sections qui structurent le code en blocs pour une meilleure lisibilité et une maintenance plus facile.

Composants supplémentaires

Chaque division d’un système COBOL peut inclure des sections et des paragraphes, qui sont analogues aux sections et aux paragraphes des langages humains. Les sections sont les subdivisions logiques nommées au sein de chaque division qui contiennent un ou plusieurs paragraphes. Ils servent d’unités de code modulaires qui peuvent être appelées ou invoquées dans le programme.

Les paragraphes sont des collections de phrases, les plus petites unités exécutables d’un programme COBOL, qui remplissent une fonction particulière et sont identifiées par un nom unique. Chaque instruction ou phrase en COBOL d’un paragraphe commence par un verbe COBOL (comme MOVE, DISPLAY et ADD) qui indique comment le code doit être exécuté.

Le caractère est l’unité la plus élémentaire et indivisible du langage COBOL. Les chaînes de caractères sont des caractères ou des séquences de caractères contigus qui forment un mot, un littéral ou une entrée de commentaire COBOL, délimités par des séparateurs.

La syntaxe de COBOL

Semblable à l’anglais, la syntaxe de COBOL est auto-documentée et presque auto-explicative, l’accent étant mis sur la verbosité et la lisibilité. Cette caractéristique le différencie des autres langages tels que FORTRAN. Il peut également prendre en charge plusieurs types de données différents (numériques, alphanumériques et éditées, par exemple), mais il s’appuie sur quelques composants syntaxiques supplémentaires pour exécuter un programme.

Phrases et instructions

Les phrases sont des lignes de code COBOL composées d'une ou plusieurs instructions terminées par un point. Les instructions, en revanche, sont les instructions individuelles qui orchestrent les processus de traitement des fichiers et des données (en utilisant des verbes tels que AJOUTER, COMMENCER, AFFICHER et ÉCRIRE, entre autres).

Par exemple, les instructions DÉPLACER transfèrent des données d'une partie de la mémoire du système à une autre ; les instructions CALCULER effectuent des opérations arithmétiques et stockent les résultats sous forme de variables ; et les instructions LIRE récupèrent les enregistrements des fichiers d'entrée.

Clauses

Les clauses sont des composants d’instructions qui peuvent modifier ou qualifier la façon dont une instruction est exécutée. Une clause d’image telle que « PIC 9(3) », par exemple, définit une variable numérique pouvant contenir jusqu’à trois chiffres.

Structures de contrôle

Les structures de contrôle itératives et conditionnelles de COBOL permettent au système de contrôler le flux de données.

Si les structures Else, par exemple, appliquent une logique conditionnelle dans COBOL, le programme peut exécuter différents blocs de code en fonction de l'évaluation d'une condition du système. L'instruction ACCOMPLIR exécute un paragraphe ou une section un certain nombre de fois ou jusqu'à ce qu'une condition soit remplie, comme les boucles dans d'autres langages de programmation.

Sous-programmes

COBOL peut faciliter la programmation modulaire en utilisant des sous-programmes, qui sont déployés à partir du programme principal ou d’autres sous-programmes. Tandis que les sous-programmes internes sont définis dans le même code source que le programme appelant (écrit dans la division des procédures), les sous-programmes externes sont compilés séparément et liés selon les besoins.

Création d’un programme COBOL

Le processus de création d’un programme en COBOL varie en fonction des circonstances organisationnelles. Mais il implique généralement quelques étapes de base. 

  • Écriture du programme. Si un ingénieur logiciel voulait écrire le programme de base « Hello, world ! », par exemple, il écrirait :

    ```

    IDENTIFICATION DIVISION. PROGRAM-ID. hello-world. PROCEDURE DIVISION. DISPLAY « Hello, world !

    L’utilisation d’un environnement de développement intégré (IDE) ou d’un éditeur de texte compatible avec COBOL peut faciliter le processus.

  • Compilation du programme. Comme les autres langages de programmation de haut niveau, le code COBOL doit être compilé avant d'être exécuté. Les compilateurs COBOL (comme GnuCOBOL, Micro Focus et IBM COBOL Compilers Family) convertissent les programmes en code machine afin que le processeur de l'ordinateur puisse les comprendre et les exécuter.

  • Exécution du programme. Lorsque le programme est compilé, le programmeur peut l'exécuter sur le système cible. En supposant qu'il n'y ait pas de bugs, le programme suit la logique de traitement des données définie dans la division des procédures pour traiter les données. Le processus d'exécution consiste généralement à lire des données dans des fichiers et des bases de données, à effectuer des calculs ou des transformations de données, puis à écrire les résultats dans des fichiers ou des bases de données.

  • Débogage du programme (si nécessaire). Si le programme comporte des erreurs ou des bugs, les programmeurs doivent les identifier et les corriger (un processus appelé débogage). L’utilisation d’outils et de techniques de débogage permet de rationaliser ce processus.
Avantages de la programmation COBOL

Malgré la prolifération de langages plus modernes (comme Python, Java, JavaScript), le langage COBOL était autrefois le plus utilisé dans la programmation informatique pour les applications métiers. Aujourd'hui encore, le développement COBOL reste un élément fonctionnel et essentiel de l'infrastructure technologique mondiale, en particulier pour les institutions bancaires, les compagnies d'assurance et les agences gouvernementales.

Comme en témoigne sa longévité, la programmation COBOL peut offrir une myriade d’avantages aux organisations qui choisissent de l’utiliser (malgré une pénurie relative de programmeurs COBOL1) :

Stabilité

Le COBOL est connu pour ses performances stables et fiables dans les applications stratégiques. Les systèmes écrits en COBOL ont tendance à présenter des temps de fonctionnement élevés et à connaître peu de pannes, ce qui est vital pour garantir les opérations continues des institutions financières et des services gouvernementaux.

Évolutivité

Les développeurs peuvent faire évoluer les applications COBOL pour gérer des workloads croissants sans changements significatifs dans la base de code, ce qui permet aux organisations de faire évoluer leurs systèmes COBOL en même temps que leurs activités et sans réécriture fréquente ou migration vers d’autres langages.

Traitement des données et traitement des fichiers

COBOL offre des capacités de traitement de fichiers exceptionnelles. Il peut gérer des données de transactions complexes à grande échelle et prendre en charge plusieurs méthodes d'accès aux fichiers, notamment la gestion des fichiers de données séquentielles, indexées et relatives. La robustesse de COBOL en matière d'automatisation des processus le rend idéal pour les tâches de traitement par lots, comme le traitement des transactions financières, la gestion des bases de données et la génération de rapports.

Interopérabilité

Les systèmes COBOL actuels peuvent interagir avec d’autres langages et technologies (comme HTML, JSON, XML et l’IA générative2) en raison de l’introduction de COBOL orienté objet et d’interfaces vers de nouveaux langages de programmation. L’orientation objet facilite également l’ intégration des applications COBOL avec les services cloud et virtuels,comme Amazon Web Services (AWS), Microsoft Azure et IBM Cloud, les bases de données SQL et d’autres infrastructures DevOps modernes.

Solutions connexes
IBM watsonx Code Assistant for Z

IBM watsonx Code Assistant for Z est un produit assisté par l’IA générative conçu pour accélérer la modernisation des applications mainframe à moindre coût et avec moins de risques que les alternatives actuelles. Ce produit fournit un cycle de vie de développement des applications de bout en bout qui inclut la découverte et l’analyse des applications, le refactoring automatique du code et la conversion de COBOL à Java.

Découvrir IBM watsonx Code Assistant for Z

IBM watsonx Code Assistant

IBM watsonx Code Assistant s’appuie sur l’IA générative pour accélérer le développement tout en maintenant les principes de confiance, de sécurité et de conformité. Les développeurs et les opérateurs informatiques peuvent accélérer les efforts de modernisation des applications et générer une automatisation pour faire évoluer rapidement les environnements informatiques.

Découvrir IBM watsonx Code Assistant

IBM COBOL Compilers family

Les compilateurs IBM COBOL prennent en charge les systèmes d’exploitation IBM z/OS, IBM AIX et Linux. Vous disposez des outils nécessaires pour améliorer le développement de vos programmes et utiliser vos applications existantes. Vous pouvez positionner stratégiquement votre processus de développement d’applications en fonction de l’évolution rapide du marché actuel.

Découvrir IBM COBOL Compiler Family
 Ressources Code Assistant for Z intègre l’IA générative à la modernisation des applications mainframe

Regardez l’enregistrement à la demande de notre équipe pour découvrir comment l’IA accélère la modernisation des applications mainframe.

Faites passer la modernisation des applications et l'automatisation informatique au niveau supérieur avec l'IA générative

Découvrez comment les plateformes de gestion du cloud hybride intègrent l’automatisation basée sur l’IA générative pour aider les entreprises à capitaliser sur les technologies émergentes, à réaliser des économies et des gains d’efficacité, à améliorer les performances informatiques, et à fournir et mettre à l’échelle de nouveaux services plus rapidement.

Le guide du PDG sur l’IA générative

Comprendre l'importance de l'adoption de l'IA générative et comment elle peut bénéficier à vos pratiques commerciales actuelles et futures.

Passez à l’étape suivante

Êtes-vous prêt à accélérer la modernisation des applications mainframe grâce à l’IA générative ? Découvrez ce que watsonx Code Assistant for Z peut faire en planifiant une démonstration en direct ou en discutant avec l’un de nos spécialistes des produits.

Découvrir IBM watsonx Code Assistant for Z Réserver une démo en direct
Notes de bas de page

1 The World Depends on 60-Year-Old Code No One Knows Anymore (lien externe à ibm.com), PC Mag, 1er décembre 2023

2 Generative AI In Code Generation (lien externe à ibm.com), Inc42 Media, 24 mars 2024