Auteur/autrice : Alexis

  • Les variables et la DATA DIVISION

    Jusqu’ici, ton programme affichait du texte en dur.
    À partir de maintenant, on va travailler avec des données.
    C’est là que COBOL devient vraiment intéressant.

    Objectif du cours

    À la fin de ce cours, tu sauras :

    • À quoi sert la DATA DIVISION
    • Comment déclarer une variable
    • Ce que signifient les niveaux 01, 05 et 77
    • Afficher une variable avec DISPLAY

    La DATA DIVISION

    La DATA DIVISION sert à définir toutes les données du programme :

    • variables
    • structures
    • zones mémoire

    En COBOL, on déclare tout avant de l’utiliser.

    Structure minimale avec DATA DIVISION

    IDENTIFICATION DIVISION.
    PROGRAM-ID. HELLO-DATA.
    
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    
    PROCEDURE DIVISION.
        DISPLAY "Programme avec variables".
        STOP RUN.

    Points importants

    • WORKING-STORAGE SECTION
      → Zone mémoire classique pour les variables du programme
    • Tout ce qui est déclaré ici est disponible pendant toute l’exécution

    Les niveaux en COBOL

    COBOL utilise des numéros de niveau pour structurer les données.

    Les plus courants au début :

    NiveauRôle
    01Variable ou structure principale
    05Sous-variable (champ)
    77Variable simple indépendante

    Niveau 77 — variable simple

    DATA DIVISION.
    WORKING-STORAGE SECTION.
    77 WS-MESSAGE PIC X(20).

    Décryptage

    • 77 → variable indépendante
    • WS-MESSAGE → nom de la variable
    • PIC X(20) → 20 caractères alphanumériques

    WS = Working Storage (convention très répandue)

    Utilisation

    PROCEDURE DIVISION.
        MOVE "Bonjour COBOL" TO WS-MESSAGE.
        DISPLAY WS-MESSAGE.
        STOP RUN.

    Résultat à l’écran :

    Bonjour COBOL

    Niveau 01 — variable principale

    Le niveau 01 sert souvent de conteneur.

    01 WS-NOM PIC X(20).

    Fonctionnellement, c’est proche du 77, mais :

    • plus structurant
    • plus utilisé dans les programmes pros

    Niveaux 01 + 05 — structure de données

    C’est là que COBOL devient très puissant.

    01 WS-PERSONNE.
       05 WS-PRENOM PIC X(15).
       05 WS-NOM    PIC X(15).

    WS-PERSONNE contient deux champs.

    Affectation des valeurs

    PROCEDURE DIVISION.
        MOVE "Alexis" TO WS-PRENOM.
        MOVE "Charrier" TO WS-NOM.
        DISPLAY WS-PRENOM WS-NOM.
        STOP RUN.

    Résultat :

    Alexis Charrier

    Règles fondamentales à comprendre maintenant

    Règle 1 — On ne déclare jamais dans la PROCEDURE

    Tout est déclaré dans la DATA DIVISION, jamais ailleurs.

    Règle 2 — Le PIC définit la forme des données

    Quelques bases :

    PICSignification
    XCaractère (alphanumérique)
    9Numérique
    (n)Taille
    PIC X(10)   *> Texte
    PIC 9(5)    *> Nombre entier

    Programme complet du cours n°3

    IDENTIFICATION DIVISION.
    PROGRAM-ID. VARIABLES.
    
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    
    01 WS-PERSONNE.
       05 WS-PRENOM PIC X(15).
       05 WS-NOM    PIC X(15).
    
    PROCEDURE DIVISION.
        MOVE "Alexis" TO WS-PRENOM.
        MOVE "Charrier" TO WS-NOM.
        DISPLAY WS-PRENOM WS-NOM.
        STOP RUN.

    Ce que l’on va retenir

    ✔️ Les données sont déclarées dans la DATA DIVISION
    ✔️ WORKING-STORAGE contient les variables
    ✔️ 77 = variable simple
    ✔️ 01 + 05 = structure
    ✔️ PIC définit le type et la taille
    ✔️ MOVE affecte une valeur

  • Hello World en COBOL : comprendre un programme ligne par ligne

    Dans l’article précédent, nous avons créé un premier programme COBOL minimal.
    Un programme volontairement simple, sans artifices, dont le seul objectif est de vérifier que l’environnement fonctionne et que COBOL est prêt à s’exécuter.

    Dans cet article, nous allons maintenant expliquer ce code ligne par ligne.
    Chaque instruction sera décortiquée pour comprendre son rôle, sa logique et la manière dont COBOL structure un programme, même dans sa forme la plus basique.

    L’idée n’est pas d’apprendre COBOL par cœur, mais de comprendre comment il pense dès les premières lignes.

           IDENTIFICATION DIVISION.
           PROGRAM-ID. HELLO.
    
           PROCEDURE DIVISION.
               DISPLAY "Bonjour, COBOL est prêt.".
               STOP RUN.

    Explication ligne par ligne du programme

    IDENTIFICATION DIVISION.

    • But : identifier le programme.
    • C’est une “division” (une grande section COBOL).
    • Historiquement, COBOL est très structuré : un programme est découpé en DIVISION (puis des sections/paragraphes).

    Ici, tu annonces : “je rentre dans la partie qui décrit qui est ce programme”.

    PROGRAM-ID. HELLO.

    • But : donner un nom officiel au programme.
    • PROGRAM-ID. = la directive.
    • HELLO = le nom du programme (l’identifiant).

    C’est ce nom que certains environnements utilisent pour référencer le programme (compilation, logs, exécution, etc.).

    (ligne vide)

    • Simple mise en forme pour séparer les parties.
    • COBOL et les développeurs aiment les blocs lisibles.

    PROCEDURE DIVISION.

    • But : démarrer la partie “exécution”.
    • Tout ce qui suit ici, ce sont des instructions qui vont être réellement exécutées.

    Si l’IDENTIFICATION décrit, la PROCEDURE agit.

    DISPLAY « Bonjour, COBOL est prêt. ».

    • But : afficher un texte.
    • DISPLAY = l’instruction d’affichage standard.
    • "Bonjour, COBOL est prêt." = la chaîne affichée.
    • Le . à la fin est important : en COBOL, le point termine une phrase / instruction (ça agit un peu comme une ponctuation de fin de bloc logique).

    Résultat : le message sort dans la console / sortie standard.

    STOP RUN.

    • But : arrêter le programme.
    • STOP RUN signifie : “fin d’exécution”.
    • C’est l’équivalent conceptuel d’un exit / return final dans d’autres langages.

    Sans ça, selon les dialectes et contextes, tu peux te retrouver avec un flux moins explicite.
    Là, c’est net : le programme s’arrête.

    Conclusion :

    Ce programme :

    1. se présente (IDENTIFICATION DIVISION + PROGRAM-ID)
    2. exécute une action (DISPLAY)
    3. se termine proprement (STOP RUN)
  • Installer COBOL sur Windows et lancer son premier programme

    Objectif du jour

    À la fin de ces 15-20 minutes, tu auras :

    • COBOL installé sur ta machine
    • Un environnement de travail fonctionnel
    • Ton premier programme COBOL exécuté

    Comprendre ce qu’on installe

    COBOL n’est pas un langage “moderne” au sens web.

    • Un compilateur COBOL
    • Un éditeur de code
    • Un terminal pour exécuter le programme

    Installer COBOL selon ton système

    Windows

    • Prends la version Windows
    • Installe avec les options variables d’environnements par défaut (Windows + R → tape sysdm.cpl)
    Tu dois voir un chemin du style C:\dossier_cobol\bin\cobc.exe.
    • Vérifie l’installation en tapant la ligne de commande :
    cobc -V

    Si une version s’affiche → OK ✅

    Ton premier programme COBOL

    • Crée un dossier et ouvre le dans ton IDE (Lien vers Visual Studio Code)
    • Crée un fichier hello.cob avec ce contenu :
    • J’ai créé l’explication sommaire de ce code ici
           IDENTIFICATION DIVISION.
           PROGRAM-ID. HELLO.
    
           PROCEDURE DIVISION.
               DISPLAY "Bonjour, COBOL est prêt.".
               STOP RUN.
    • Compile :
      • La compilation te permet d’obtenir ton programme .exe. Un fichier hello.exe sera créé dans le répertoire du projet.
    cobc -x hello.cob
    • Exécute sur PowerShell dans ton répertoire de projet :

    Le résultat est bien présent mais il faut une amélioration tout de suite pour avoir un message accentué clair.

    Erreurs possible :

    Cobol a besoin de fichier pour compiler et je passage de la commande si dessous m’a permis d’avancer.

    [Environment]::SetEnvironmentVariable(
      "COB_CONFIG_DIR",
      "C:\Program Files (x86)\GC32-BDB-SP1-cobol\config",
      "User"
    )

    Pour régler le problème de caractères accentués :

    chcp 65001
    .\hello.exe

    Résultat :

    Conclusion :

    Voilà pour ce premier résultat.
    Garde en tête que lorsque tu fermes PowerShell et que tu le rouvres pour exécuter à nouveau le programme, il est nécessaire de relancer la commande chcp 65001 afin que les caractères accentués soient correctement affichés.

    Nous verrons comment automatiser cela lors de la prochaine journée.

  • Bonjour tout le monde !

    Bienvenue sur Cobolman.fr
    Ceci est votre premier article.

    J’ai créé ce blog afin de permettre à d’autre débutant ayant aussi l’envie de connaitre le Cobol de suivre un bout de mon parcours afin d’avancer aussi dans un langage âgé mais pourtant toujours aussi utile pour le monde bancaire par exemple.