Découvrons le COBOL, Irremplaçable et irremplaçé.

Hello world !

Voici le Hello world COBOL :

1. IDENTIFICATION DIVISION.
2. PROGRAM-ID. HELLO-WORLD.
3. *> Mon hello world
4. PROCEDURE DIVISION.
5. DISPLAY 'Hello world!'.
6. STOP RUN.

C’est un peu brut comme début, mais on va voir ça doucement. J’ai numéroté les lignes pour faciliter l’explication.

Divisions d’un programme

Il faut savoir qu’en COBOL, un programme est divisé en plusieurs parties distinctes. Globalement, cela ressemble à ça :

DIVISION.
    SECTION.
        ETIQUETTE PHRASE.
        ETIQUETTE PHRASE.
    SECTION.
        ETIQUETTE PHRASE.
DIVISION.
    SECTION.
        ETIQUETTE PHRASE.
>* A noter que les lignes se terminent par un point. 
>* C'est le ; des langages modernes

Cela permettait à l’époque d’avoir des programmes structurés.

Les principales divisions sont au nombre de 3 :

IDENTIFICATION DIVISION : Permet d'identifier le programme. On détaille principalement l'id.

DATA DIVISION : C'est là que sont déclarées les variables qui seront utilisées.

PROCEDURE DIVISION : C'est là qu'est la logique de notre programme.

Vous remarquez qu’en l’état, l’ordre des divisions doit être gardé dans ce sens.

Hello world en détails

Revenons sur le Hello world précédent :

1. IDENTIFICATION DIVISION.
2. PROGRAM-ID. HELLO-WORLD.
3. *> Mon hello world
4. PROCEDURE DIVISION.
5. DISPLAY 'Hello world!'.
6. STOP RUN.

Ligne 1 : On remarque la déclaration de la division d’identification (en-tête du programme) se terminant par un point (fin de ligne).

Ligne 2 : On déclare le PROGRAM-ID. Cela donne un nom a notre programme. Ici, HELLO-WORLD. La documentation Gnu-cobol indique ceci :

Attention : PROGRAM-ID est case sensitive !

Ligne 3 : C’est un commentaire en “free-form”. Un commentaire en COBOL est sous la forme “* commentaire”. Gnu-cobol permet une free-form (venue avec la norme COBOL 2002) qui accepte des commentaires sous la forme “>* commentaire”. Si vous compilez avec un commentaire en forme COBOL, le compilateur renverra une erreur.

helloworld.cob: 3: error: PROCEDURE DIVISION header missing
helloworld.cob: 3: error: syntax error, unexpected *

Sachez que cette “free-form” nous permet des dérives très interessantes qui font que COBOL est beaucoup moins contraignant. La forme COBOL originelle peut être étudiée en suivant ce lien.

Ligne 4 : Fin de la division d’identification et début de la division de procédure. On commence à déclarer notre logique.

Ligne 5 : On utilise la fonction DISPLAY pour afficher “des choses”, ici, une chaine de caractères indiquant ‘Hello world !’

Ligne 6 : Le programme est stoppé, ce qui permet de définir la fin de notre division de procédure. Lien vers la documentation pour en savoir plus sur STOP

On peut maintenant compiler notre programme.

Euh…On l’inscrit où notre programme et comment on compile ?

Oups, j’ai oublié cette partie…
Pour inscrire votre programme, créez un fichier appelé hello.cob ou hello.cbl avec votre éditeur de texte préféré, copiez le texte puis lancez la compilation :

cobc -x -free hello.cob

Cette compilation génère en fait un programme en C et comme tout programme C il est executable en utilisant la forme normale : ./hello (le programme C porte le nom du fichier COBOL)

Laisser un commentaire