COBOL/Structure du programme

Une page de Wikiversité.


Structure du programme
Computer-aj aj ashton 01.svg
Chapitre 2
Leçon : COBOL
Chap. préc. : Introduction au COBOL
Chap. suiv. : Variables
Icon falscher Titel.svg

En raison de limitations techniques, la typographie souhaitable du titre, « COBOL : Structure du programme
COBOL/Structure du programme
 », n'a pu être restituée correctement ci-dessus.

Sommaire

[modifier] Introduction

Ce chapitre vous présente la structure de tous les programmes COBOL que vous rencontrerez.

[modifier] Structure d'une ligne

Une ligne a un format fixe de 80 colonnes de long :

  • Les colonnes 1 à 6, peu utilisées, peuvent contenir une numérotation COBOL (numéro de ligne) ou des annotations permettant de commenter le code (date de modification, référence de l'évolution, trigramme du développeur, initiales du développeur, etc.).
  • La colonne 7 est réservée aux caractères particuliers suivants :
    • * : ce qui suit doit être considéré comme un commentaire.
    • d : indique que la phrase COBOL de cette ligne n'est à exécuter qu'en DEBBUGING-MODE.
    • / : caractère reconnaissable par l'imprimante et commandant un saut de page dans le listing issu de la compilation.
    • - : caractère de continuation d'un libellé (uniquement en WORKING-STORAGE SECTION).
    • un espace : dans tous les autres cas.
  • Les colonnes 8 à 11 incluses sont réservés commencer les noms de divisions, de sections et de paragraphes ainsi que certaines descriptions de données.
  • Les colonnes 12 à 72 contiennent tous les autres verbes COBOL.
  • Les colonnes 73 à 80 ne sont pas interprétées par le compilateur.
     7    12                                                          72
-----|----|-----------------------------------------------------------|---

[modifier] Structure du programme

Un programme est constitué de divisions (4 au total), elles-mêmes constituées de sections. Elles permettent de structurer le programme, par exemple de séparer la définition des variables du reste du code.

Les 4 divisions qui composent un programme sont les suivantes :

  • IDENTIFICATION DIVISION, obligatoire, stocke les caractéristiques du programme (son nom par exemple). Elle doit obligatoirement contenir la clause PROGRAM-ID suivie du nom que vous donnez à votre programme, ce nom servira à le référencer : d'autres programmes pourront l'utiliser ;
  • ENVIRONMENT DIVISION, facultative, définit l'environnement dans lequel s'exécute le programme ;
  • DATA DIVISION, facultative, sert a définir les variables utilisées par le programme ;
  • PROCEDURE DIVISION, facultative, contient les instructions du programmes. Ces instructions sont regroupées en paragraphes, un paragraphe est formé d'un nom de paragraphe suivi d'un point, et d'une suite d'instructions, assimilées a des phrases, chaque phrase doit se terminer par un point.

L'identifiant du programme, les noms de paragraphes et de variables sont une suite de caractères alphanumériques, pouvant contenir des tirets (pas d'espaces ou autres caractères spéciaux).

La fin d'un programme est signalée par la phrase END PROGRAM suivie du nom que vous avez donné à votre programme. Pour mettre fin à l'exécution du programme, vous avez à votre disposition l'instruction STOP RUN, celle-ci doit être la dernière instruction d'une phrase, elle provoque la fermeture de tous les fichiers.

Les différentes sections d'un programme seront détaillées dans les chapitres suivants.

[modifier] Code minimal

Exemple

000001 IDENTIFICATION DIVISION.
000002   PROGRAM-ID. premier-programme.
000003 
000004 PROCEDURE DIVISION.
000005   paragraphe-principal.
000006     STOP RUN.
000007 
000008 END PROGRAM premier-programme.


Ce programme, appelé premier-programme, ne contient qu'un paragraphe : paragraphe-principal ne contenant lui-même que l'instruction STOP RUN.

[modifier] Hello World !

Traditionnellement, quand on vous apprend un langage, on vous fournit un "Hello World !", c'est un programme qui se contente d'afficher cette chaîne de caractères sur la console.

Pour afficher des données sur la sortie standard (la console), vous aurez besoin de l'instruction DISPLAY, elle s'utilise comme suit :


Exemple

DISPLAY identificateur/littéral ... [NO ADVANCING]


Conformément à tout un tas de conventions d'écriture, ce qui figure entre crochets est optionnel, nous pouvons donc l'utiliser de 2 manières différentes :


Exemple

DISPLAY identificateur/littéral ...
DISPLAY identificateur/littéral ... NO ADVANCING


NO ADVANCING est facultatif et permet de garder le curseur positionné immédiatement derrière le dernier caractère écrit.

Les identificateurs sont des noms de variables, les littéraux sont des données brutes, manipulées sans l'intermédiaire de variables, par exemple des chaînes de caractères (délimitées par des guillemets) ou des valeurs numériques. Voici donc un exemple de Hello World ! :


Exemple

000001 IDENTIFICATION DIVISION.
000002   PROGRAM-ID. premier-programme.
000003 
000004 PROCEDURE DIVISION.
000005   paragraphe-principal.
000006   hello-world.
000007     DISPLAY "Hello World !".
000008     STOP RUN.
000009 
000010 END PROGRAM premier-programme.