par , 01/04/2023 à 16h00 (74 Affichages)
■ ■ ■ SOMMAIRE DU BILLET ■ ■ ■
Avertissement
- Principes CORIG
- Algorigramme représentant le cycle CORIG
- Au niveau codage, comment ça se passe ?
■ Avertissement
En 1988, Didier Genevois termine sont DUT Informatique de Bourgogne par un stage de trois mois en entreprise où il s’initie à la méthode CORIG, base fondamentale de l’AGL PACBASE qui sera son outil de travail à partir de 1994.
Le texte original de ce billet est le troisième des quatre textes que Didier Genevois, devenu prestataire de services informatiques, consacre à une initiation aux méthodes de programmation des années 60-70 :
- Méthodes de programmation
- Méthode Warnier
- Méthode CORIG
- Méthodes PS (Arbres Programmatiques)
§ 01 : ■ Principes CORIG
Les principes de CORIG sont simples : il s'agit d'une écriture linéaire des programmes. Ceux-ci sont découpés en sous-fonctions comme avec la méthode des arbres programmatiques mais au lieu d'avoir au début de la partie « instructions » du programme l'appel de chaque sous-fonction de façon hiérarchique (en suivant les niveaux d'imbrications déterminés par la représentation de l'arbre), toutes les sous-fonctions sont écrites en série sous forme de « briques » fonctionnelles. La brique fonctionnelle est constituée de trois parties distinctes :
- une condition d'exécution
- la sous-fonction proprement dite
- le label de fin de l'unité fonctionnelle.
En premier lieu c'est la condition d'exécution qui est testée. Si la condition est remplie le programme se poursuit en séquence par l'intermédiaire de l'instruction COBOL next sentence. Dans le cas où la condition n'est pas vérifiée, le programme effectue un saut jusqu'à la fin de l'unité fonctionnelle. Il est très important que ce saut s'effectue à la fin de l'unité courante et non au début de l'unité fonctionnelle suivante car ceci permet que chaque brique fonctionnelle soit indépendante des autres. Cela facilite grandement la maintenabilité des programmes car on peut reprendre une sous-fonction existante dans un programme pour l'inclure facilement dans un autre ou bien déplacer facilement des sous-fonctions pour les faire s'exécuter dans des ordres différents. Avec la méthode des arbres programmatiques il faut revoir lors de chaque maintenance la structure de l'arbre et il est très mal aisé de modifier un programme sans avoir le schéma représentatif de l'arbre sous les yeux. On doit le refaire à chaque fois si un minimum de documentation n'est pas maintenu. Avec la méthode CORIG tout programme se lit de haut en bas et la dernière instruction d'un programme consiste à effectuer un saut (instruction COBOL GO TO) au début du cycle. Le cycle CORIG commence en général par la lecture du fichier principal (fichier maître).
Un langage de variables, accessible à tous les développeurs, est proposé :
- PE pour Premier Enregistrement,
- DE pour Dernier Enregistrement,
- VE, pour Vecteur Erreur,
- VP, pour Vecteur de Présence,
- CF pour ConFiguration,
- OC pour occurrence,
- FT pour Fin de Travail,
- etc.
Un dictionnaire est créé, qui contient :
- des rubriques codées,
- des états,
- des fichiers,
- des enregistrements,
- des tâches qui décrivent l’application.
§ 02 : ■ Algorigramme représentant le cycle CORIG
PICTURE
Ce principe de cycle se retrouve également dans le langage GAP, c'est ce qu'on appelle le « cycle GAP ». Et il est bien entendu présent dans l'AGL PACBASE et forme le cœur de sa structuration.
§ 03 : ■ Au niveau codage, comment ça se passe ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
INIT.
... (c'est ici qu'on place tous les traitements à ne faire qu'une seule fois)
DEBUT-CYCLE.
READ FICIN AT END MOVE HIGH-VALUE TO ENR-FICIN.
FIN-PROGRAMME.
IF ENR-FICIN = HIGH-VALUE
CLOSE FICIN
STOP RUN.
END-IF.
FONCTION1.
IF xxxxx = xxxxxx (on met la condition de la fonction 1)
NEXT SENTENCE
ELSE
GO TO F-FONCTION1.
...
insérer les traitements correspondants à la fonction 1
...
F-FONCTION1.
EXIT.
FONCTION2.
IF xxxxx = xxxxxx (on met la condition de la fonction 2)
NEXT SENTENCE
ELSE
GO TO F-FONCTION2.
...
insérer les traitements correspondants à la fonction 2
...
F-FONCTION2.
EXIT.
FONCTION3.
IF xxxxx = xxxxxx (on met la condition de la fonction 3)
NEXT SENTENCE
ELSE
GO TO F-FONCTION3.
...
insérer les traitements correspondants à la fonction 3
...
F-FONCTION3.
EXIT.
FIN-CYCLE.
GO TO DEBUT-CYCLE. |
Le programme est absolument linéaire, il se lit de haut en bas. Chaque fonction est indépendante. Il est absolument interdit d'effectuer un GO TO pour sortir de la fonction en cours autrement que par le paragraphe F-FONCTION.
Une fonction CORIG peut elle-même être décomposée en sous-fonctions qui seront elles aussi conformes à la méthode de programmation CORIG. Elles seront imbriquées dans une fonction et possèderons toutes une partie conditionnement et une partie traitement.
L'utilisation de cette méthode facilite beaucoup la lisibilité et la maintenance des programmes.
Source :
Pour en savoir plus...