Dans cette première partie intitulée “Première approche“, je vais vous initier aux bases du langage de programmation COBOL, un langage clé qui continue d’être largement utilisé dans le monde de l’informatique, notamment dans les systèmes financiers et gouvernementaux.
Pour commencer, nous nous pencherons sur le “format d’une ligne de code” en COBOL. Vous apprendrez la structure typique d’une ligne de code, comment elle est organisée et comment les différents éléments se combinent pour créer un programme fonctionnel. Ce chapitre vous permettra de comprendre l’importance d’une syntaxe correcte et comment tirer parti de la clarté du langage COBOL pour écrire des programmes lisibles et maintenables.
Ensuite, nous explorerons le “déroulement et découpage d’un programme” COBOL. Vous découvrirez comment les programmes COBOL sont structurés en divisions, sections et paragraphes, et comment ces éléments interagissent pour réaliser des tâches spécifiques. En apprenant à maîtriser cette organisation, vous serez en mesure de créer des programmes efficaces et de déboguer plus facilement lorsque des problèmes surviennent.
Comme mentionné dans l’introduction “Pourquoi se former au COBOL ?“, les instructions COBOL étaient autrefois saisies sur des cartes perforées IBM de 80 colonnes. Le format de référence d’une ligne de code en programmation COBOL se base toujours sur le format de ce support physique. La représentation ci-dessous met en évidence le format général de chaque ligne de code, allant jusqu’à 80 colonnes.
Le format d’une ligne de code en COBOL est structuré et organisé pour favoriser la lisibilité et la maintenabilité des programmes. Dans cette partie, nous allons aborder les différents éléments d’une ligne de code COBOL et comment ils interagissent pour créer un programme fonctionnel.
Détaillons ensemble les différentes zones qui composent une ligne de code:
De la 1re à la 6e position (le champ de numérotation de séquence):
Ce champ, qui peut contenir par exemple “000100”, est réservé aux numéros de séquence des lignes. Cette numérotation permettait au compilateur de s’assurer du bon ordre des instructions, ce qui était particulièrement important à l’époque des cartes perforées, où les erreurs de tri étaient fréquentes. Les numéros de séquence facilitaient également la gestion des versions et la documentation.
Cependant, il est important de noter que les numéros de séquence ne sont plus nécessaires dans les compilateurs COBOL modernes, car ils sont en mesure de traiter les instructions correctement sans cette numérotation. De plus, les outils de développement intégrés (IDE) et les systèmes de contrôle de version modernes rendent cette fonctionnalité moins pertinente. Malgré cela, certains programmeurs COBOL continuent d’utiliser des numéros de séquence pour des raisons de lisibilité et de compatibilité avec les anciens programmes.
N’ayant que peu d’intérêt à présent, je vais m’affranchir de ce champ dans le reste de la formation. Ne soyez donc pas surpris de ne plus les voir .
7e position (le champ indicateur):
La 7e position d’une ligne de code permet de préciser au compilateur :
que la ligne codée est une ligne de commentaire, si on y ajoute un astérisque (*).
Dans ce cas, le compilateur ne vérifie pas le contenu de la ligne mise en commentaire.
que la ligne codée est la continuation de la ligne précédente, si on y ajoute un tiret (-).
L’utilisation du tiret est pratique, dans le sens où nous ne pouvons pas écrire au-delà de la colonne 72, ce qui est contraignant lorsque l’on doit assigner une valeur à une variable et que celle-ci est relativement longue. Le tiret est le caractère de continuation permettant de contourner ce problème.
que la ligne codée doit être utilisée à des fins de DEBUGGING, si on y ajoute l’indicateur de débogage (d).
La ligne sera activée lorsque le MODE DEBUGGING est bien mentionné dans le programme. Dans le cas contraire, cette ligne sera considérée comme une ligne fictive dans le cas d’une compilation conditionnelle.
De la 8e à la 11e position (la ZONE A):
Cette zone est utilisée pour les en-têtes de DIVISION, de SECTION, de PARAGRAPHE, ainsi que les numéros de niveaux hiérarchiques 01 et 77, que nous détaillerons prochainement. Les éléments suivants sont généralement placés dans la zone A .
Les en-têtes de DIVISION : Ils définissent les grandes parties d’un programme COBOL, telles que la “IDENTIFICATION DIVISION“, la “DATA DIVISION” et la “PROCEDURE DIVISION“.
Les en-têtes de SECTION : Ils décomposent davantage les divisions en sous-parties, par exemple, la “FILE SECTION” et la “WORKING-STORAGE SECTION” dans la “DATA DIVISION“.
Les en-têtes de PARAGRAPHE : Ils regroupent des instructions logiquement liées et peuvent être appelés par des instructions “PERFORM“.
Les numéros de niveau hiérarchique 01 et 77 : Le niveau 01 définit un enregistrement de niveau supérieur dans une structure de données, tandis que le niveau 77 est utilisé pour déclarer des éléments de données indépendants.
Qu’est ce que cela signifie ? Sans rentrer dans le détail, pour le moment, notez tout simplement que la première lettre d’un nom de paragraphe, de section ou bien même de division doit être écrite au sein de la ZONE A.
La première lettre de l’en-tête de l’IDENTIFICATION DIVISION et des paragraphes en dessous débute bien en ZONE A, à la position 8. Finalement, au sein de la ZONE A, vous retrouverez l’ensemble des instructions qui structurent votre programme.
De la 12e à la 72e position (la ZONE B):
Cette zone contient l’instruction COBOL elle-même, y compris les noms de données, les verbes, les conditions, les expressions et les opérateurs.
L’ensemble des instructions ci-dessus débute à la 12e position, mais elles auraient très bien pu débuter à la 16e position, tant que cela se situe au sein de la ZONE B.
Notez qu’il existe des éléments, dont le premier caractère peut être codé à la fois en ZONE A et en ZONE B, cela n’a pas d’importance. Prenons notamment:
Les lignes de commentaires. En effet, tant que l’astérisque est bien codé en position 7, la suite du commentaire peut être écrite en ZONE A ou B.
Les lignes de débogage. Au même titre qu’un commentaire, tant que l’indicateur « d » est bien positionné en colonne 7, le reste du code peut être positionné en ZONE A ou B.
De la 73e à la 80e position (le champ d’identification):
Les positions allant de la colonne 73 à 80 sont réservées au système qui génère une numérotation à des fins d’identification. Le compilateur ne considère pas ces positions comme une partie du programme. En revanche, lors de l’impression, ces colonnes sont prises en compte, car le système prévoit 80 caractères par ligne.
Avec cette première approche, vous aurez le sentiment, je pense, que le COBOL est un langage extrêmement structuré et qu’il est primordial de respecter quelques règles. Ce sentiment va grandir avec le cours suivant, mais ne vous inquiétez pas, nous allons continuer à aborder ces notions de base, ensemble, pas à pas .