Cours COBOL IBM
Modern Frontend With HTMXCours gratuit de IBM : Learning COBOL Programming with VSCode
Voir aussi : thèse Unwrapping Cobol, COBOL 101, moshix, COBOL Tutorial : Learn COBOL in One Video
Welcome to COBOL
COBOL est l'acronyme de Common Business-Oriented Language, c'est un langage conçu pour le traitement de données en masse, précis, efficace et facile à lire et écrire.
C'est un langage encore largement utilisé, notamment pour les transactions bancaires, 3 trillions $ / jour passe par des systèmes écrit en COBOL. Il a été estimé, en 2017, que 70% des opérations commerciales passaient par des programmes en COBOL, 95% des opérations faites via les DAB dépendaient de COBOL, 43% du système bancaire était construit dessus, et que 80% des transactions étaient traitées par des programmes COBOL.
Existe depuis 60 ans, est mis à jour régulièrement depuis. 1, 5 milliards de ligne de COBOL sont encore écrite chaque année. D'après une étude récente, plus de 800 milliard de lignes de COBOL seraient actuellement en activité (lien).
Enterprise COBOL est une implémentation de COBOL spécialement conçue pour les Mainframe IBM Z.
Extensions VS Code
Zowe Explorer (extension)
Permet de se connecter à une machine z/OS et d'y effectuer diverses actions comme éditer des fichiers, exécuter des JCL.
Pour plus d'info :
IBM Z Open Editor (extension)
Support VSCode pour les langages COBOL et PL/I.
Pour plus d'info :
Basic COBOL Syntax
English-like computer langage, facile a lire et à maintenir. C'est le tout premier langage a être standardisé en 1960, 1981, 2022, il existe plusieurs implémentations, GNuCOBOL (wiki), Otterkit, Enterprise COBOL de IBM (pour les Mainframe).
Un programme COBOL est écrit de manière stricte, il est composé de 5 zones clés répartis sur des lignes de 72 caractères :
- Sequence Number Area : parfois vide, peut fournir un contexte a l'aide d'instruction spéciales.
- Indicator Area : Utilisé pour ajouter un caractère de "continuation", (-) pour indiquer un commentaire (avec *), ou autres indicateurs (debug D, source /)
- A Area : début du programme (pour les noms de division, section, et paragraphes etc... définissant la structure du programme)
- B Area : suite du programme, contient les instructions, phrases etc..
- Identification Area : ignoré par le compilateur, souvent laissé vide mais peut être utilisé selon l'envie du développeur
COBOL Divisions
Un STATEMENT est une instruction unique, construite à l'aide de mots-clés, une suite de statements qui se termine par un point est appelée SENTENCE.
Le point est utilisé pour indiquer la fin de portée de l'instruction, ou suite d'instructions :
ADD 2 TOTAL.
La fin de portée peut parfois être spécifiée à l'aide de mots clés :
IF ITEM = "B"
ADD 2 TO TOTAL
END-IF
Un PARAGAPH représente une suite d'action formée de petites étapes, ils sont utilisés dans le cas ou on veut réutiliser des morceaux de code.
Les paragraphes sont groupés par SECTION, il peut y avoir plusieurs sortes de sections : user-defined ou prédéfinies. Elles sont utilisées pour structurer, ou bien pour organiser les programmes.
Enfin les sections sont regroupées dans une DIVISION, Il y en a 4 sortes :
- Identification Division : contient les informations sur le programme a l'attention du programmeur (principalement) et du compilateur (notamment PROGRAM-ID qui est obligatoire) :
IDENTIFICATION DIVISION.
PROGRAM-ID. SequenceProgram.
AUTHOR. Michael Coughlan.
- Environnement Division : Utilisée pour décrire l'environnement sur lequel le programme est destiné à être exécuté, mais aussi un mapping entre notre programme et les jeux de données sur lesquels il va opérer, c'est là qu'on créé les alias qui permettent de faire un lien entre le programme et le système sur lequel il va être exécuté
- Data Division : utilisée pour décrire les données lues ou écrites par le programme
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Num1 PIC 9 VALUE ZEROS.
01 Num2 PIC 9 VALUE ZEROS.
01 Result PIC 99 VALUE ZEROS.
- Procedure Division : contient le code utilisée pour manipuler les données décrites dans la DATA DIVISION, la Procedure Division a une structure hiérarchique formée de sections, paragraphs et sentences. Seule la section est optionnelle, il doit y avoir au moins un paragraph, sentence et statement dans la PROCEDURE DIVISION
PROCEDURE DIVISION.
CalculateResult.
ACCEPT Num1.
ACCEPT Num2.
MULTIPLY Num1 BY Num2 GIVING Result.
DISPLAY "Result is = ", Result.
STOP RUN.
COBOL Variables
Les nom de variables sont appelés Data Name, il mesurent au max 30 caractères alpha-numériques avec 2 caractères spéciaux autorisés : - et #. Chaque Data Name doit être accompagné d'une clause PIC qui définit précisément le type de la donnée :
-
PIC 9
: un caractère numérique -
PIC 9(4)
: 4 caractères numériques (18 max.) -
PIC A
: un caractère alphabétique (255 max.) -
PIC X(8)
: 8 caractères alpha-numériques -
PIC 9(4)V99
: 9 caractères numériques suivi d'une clause PIC V, qui signifie une décimale -
PIC $9,999V99
: un littéral "$", suivi d'un caractère numérique, suivi d''une virgule, suivi de 3 caractères numériques, suivi d'une décimale et de 2 caractères numériques
Il existe des Data Name prédéfinis: ZERO/ZEROES
, SPACE/SPACES
, LOW-VALUE
, HIGH-VALUE
, NULL/NULLS
.