COBOL/Structure du programme
Une page de Wikiversité.
| Chapitre 2 | |||
| Leçon : COBOL | |||
|---|---|---|---|
| Chap. préc. : | Introduction au COBOL | ||
| Chap. suiv. : | Variables | ||
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 clausePROGRAM-IDsuivie 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. |