Tous les articles par Mr COBOL

Niveau d’isolement DB2

Avant d’examiner les types d’isolement, nous devons comprendre :

Qu’est-ce que le niveau d’isolement et pourquoi en avons-nous besoin ?

Différentes applications ou utilisateurs peuvent accéder et modifier les données stockées dans une base de données DB2 en même temps. Le gestionnaire de base de données DB2 doit donc pouvoir permettre aux utilisateurs d’apporter les modifications nécessaires tout en garantissant que l’intégrité des données n’est jamais compromise.

Le partage de ressources DB2 par plusieurs utilisateurs ou programmes d’application en même temps est appelé concurrence. L’une des façons dont DB2 applique la simultanéité consiste à utiliser des niveaux d’isolement, qui déterminent comment les données consultées et/ou modifiées par une transaction sont “isolées” des autres transactions.

Les niveaux d’isolement sont appliqués par des verrous et le type de verrou utilisé limite ou empêche l’accès aux données par des processus d’application simultanés.

Le gestionnaire de base de données prend en charge trois catégories générales de verrous :

Share (S)
Sous un verrou S, les processus d’application simultanés sont limités aux opérations en lecture seule sur les données.

Update (U) :
Sous un verrou U, les processus applicatifs concurrents sont limités aux opérations en lecture seule sur les données, si ces processus n’ont pas déclaré qu’ils pourraient mettre à jour une ligne. Le gestionnaire de base de données suppose que le processus qui examine actuellement une ligne peut la mettre à jour.

Exclusive (X) :
Sous un verrou X, les processus d’application simultanés ne peuvent en aucun cas accéder aux données. Cela ne s’applique pas aux processus d’application avec un niveau d’isolement de lecture non validée (UR), qui peut lire mais pas modifier les données.

Quel que soit le niveau d’isolement, le gestionnaire de base de données place des verrous exclusifs sur chaque ligne insérée, mise à jour ou supprimée. Ainsi, tous les niveaux d’isolement garantissent que toute ligne modifiée par un processus d’application au cours d’une unité de travail n’est pas modifiée par un autre processus d’application tant que l’unité de travail n’est pas terminée.

DB2 a quatre niveaux d’isolement de verrouillage :

  1. Lecture répétable ( RR – Repeatable Read )
  2. Stabilité de la lecture ( RS – Read Stability )
  3. Stabilité du curseur ( CS – Cursor Stability )
  4. Lecture non validée ( UR – Uncommitted Read )

Lecture répétable (RR) :

Cela maintient les verrous de page et de ligne jusqu’à ce qu’un point COMMIT soit atteint. Aucun autre programme ne peut modifier les données. Si les données sont consultées deux fois au cours de l’unité de travail, les mêmes données exactes seront renvoyées.

Stabilité de la lecture (RS):

Cela maintient les verrous de page et de ligne jusqu’à ce qu’un point COMMIT soit atteint. Mais d’autres programmes peuvent INSÉRER de nouvelles données. Si les données sont accédées deux fois au cours de l’unité de travail, de nouvelles lignes peuvent être renvoyées, mais les anciennes lignes n’auront pas changé.

Stabilité du curseur (CS) :

Niveau d’isolement par défaut. Cela acquiert et libère les verrous de page ou de ligne au fur et à mesure que les pages ou les lignes sont lues et traitées. Cela fournit le plus haut niveau de simultanéité. Mais il est possible que des données différentes soient renvoyées par le même curseur s’il est traité deux fois au cours de la même unité de travail.

Lecture non validée (UR) :

Ceci est également connu sous le nom de traitement de lecture sale. UR évite complètement le verrouillage. Il est possible de lire des données qui n’existent peut-être jamais réellement dans la base de données. Nous pouvons l’utiliser pour travailler avec la table qui est rarement mise à jour.

Quel que soit le niveau d’ISOLEMENT choisi, tous les verrous de page sont libérés lorsqu’un COMMIT est rencontré.

Intégrité des données DB2

L’intégrité des données fait référence à la validité, la cohérence et l’exactitude des données dans une base de données. On ne saurait trop insister sur le fait que le niveau de précision des informations extraites de la base de données est directement proportionnel au niveau d’intégrité des données imposé dans la base de données.

L’intégrité des données est l’un des aspects les plus importants du processus de conception de bases de données, et il ne doit pas être sous-estimé, négligé ou même partiellement négligé. Faire l’une de ces erreurs entraînerait un risque élevé d’erreurs indétectables

Il existe trois types d’intégrité des données et sont les suivants :

  1. Intégrité de l’entité
  2. Intégrité référentielle
  3. Intégrité du domaine

Intégrité de l’entité :

Il s’agit de “l’intégrité au niveau de la table” qui garantit que le champ qui identifie chaque enregistrement dans la table est unique et ne manque jamais sa valeur.

L’intégrité d’entité nécessite la spécification d’une clé primaire (PK – Primary Key) pour chaque table.

Remarques clés sur la clé primaire :

  1. Chaque table peut avoir zéro ou une clé primaire.
  2. La clé primaire ne doit pas être Null et si la clé primaire est une clé composite, assurez-vous que chaque composant ne doit pas être Null.
  3. Chaque clé primaire explicitement définie pour une table doit être associée à un index unique correspondant.
  4. Si vous ne créez pas d’index unique pour une clé primaire, une clé incomplète est définie pour la table, rendant la table inaccessible.

Contrainte unique:

Une contrainte unique est similaire à une contrainte de clé primaire qui applique également des valeurs uniques sur un individu ou un groupe de colonnes. Chaque table peut avoir zéro, une ou plusieurs contraintes uniques composées chacune d’une ou plusieurs colonnes. Les valeurs stockées dans la colonne unique ou la combinaison de colonnes doivent être uniques dans la table. La colonne de contrainte unique ne doit pas être Null.

Un index unique doit être créé sur les colonnes de la contrainte unique pour garantir l’unicité. La seule différence entre la contrainte de clé primaire et la contrainte unique est qu’une table ne peut avoir qu’une seule contrainte de clé primaire, mais peut avoir plusieurs contraintes uniques.

Index unique :

En plus de créer un index unique dans la colonne de clé primaire ou la colonne de contrainte unique (ce qui est obligatoire), vous pouvez créer autant d’index uniques que nécessaire sur toutes les autres colonnes de la table pour garantir l’unicité.

Le tableau suivant montre la différence entre l’index unique sur la colonne de contrainte de clé primaire/unique et une autre colonne autre que la colonne de contrainte primaire/unique.

Clé primaire ou colonne de contrainte uniqueColonne autre que la contrainte primaire/unique mais définie avec un index unique
Une table ne peut contenir qu’une seule contrainte de clé primaire et plusieurs contraintes uniquesUne table peut contenir plusieurs index uniques
Impossible d’autoriser les valeurs NULLPeut autoriser les valeurs NULL
Prend en charge l’intégrité référentielleNe peut pas prendre en charge l’intégrité référentielle

Intégrité référentielle :

Il s’agit d’une « intégrité au niveau de la relation » qui garantit que la relation entre une paire de tables est saine et qu’il y a une synchronisation entre les deux tables chaque fois que des données sont saisies, mises à jour ou supprimées.

L’intégrité référentielle est obtenue grâce à la clé étrangère.

Clé étrangère ( Foreign Key ) :

Une clé étrangère (FK – Foreign Key) est une colonne ou une combinaison de colonnes utilisée pour établir et appliquer un lien entre les données de deux tables.

Un lien est créé entre deux tables en ajoutant la ou les colonnes contenant les valeurs de clé primaire d’une table à l’autre table. Cette colonne devient une clé étrangère dans la deuxième table.

La table avec la clé primaire est appelée table parent et la table avec la clé étrangère est appelée table dépendante (ou table enfant ).

L’intégrité référentielle (RI) signifie que chaque ligne d’une table dépendante doit avoir une clé étrangère égale à une clé primaire dans la table parent.

Règles assurant l’RI :

Insert :

Lors de l’insertion d’une ligne avec une clé étrangère dans la table dépendante, DB2 vérifie les valeurs de la colonne de clé étrangère par rapport aux valeurs de la colonne de clé primaire dans la table parent. S’il existe une colonne de clé primaire correspondante, l’insertion est autorisée. S’il n’y a pas de colonne de clé primaire correspondante, l’insertion n’aura pas lieu.

Une nouvelle ligne peut être insérée dans la table parent tant que la valeur de clé primaire de la nouvelle ligne est unique.

Update :

Lors de la mise à jour des valeurs de clé étrangère dans la table dépendante, DB2 vérifie s’il existe ou non une clé primaire correspondante dans la table parent. S’il existe une clé primaire correspondante, la mise à jour est autorisée. S’il n’y a pas de clé primaire correspondante, la mise à jour n’est pas autorisée.

La clé primaire de la table parent ne peut pas être mise à jour si des lignes des tables dépendantes y font référence.

Delete :

La suppression d’une ligne avec une clé étrangère dans la table dépendante est autorisée.

Lors de la suppression d’une ligne avec une clé primaire dans la table parent, DB2 effectue l’une des actions suivantes comme indiqué lors de la définition de la table.

RESTRICT: 
Interdit la suppression de la ligne de clé primaire si des clés étrangères se rapportent à cette ligne.

CASCADE: 
Permet la suppression de la ligne de clé primaire et supprime également les lignes de clé étrangère qui s’y rapportent.

SET TO NULL: 
Autorise la suppression de la ligne de clé primaire et, au lieu de supprimer toutes les lignes de clé étrangère associées, définit les colonnes de clé étrangère sur NULL.

OpérationTableau enfantTableau parent
InsertAutorisé si la valeur de la clé étrangère correspond à la valeur de la clé primaire de la table parentAutorisé tant que la valeur de la clé primaire est unique
UpdateAutorisé si la valeur de la clé étrangère correspond à la valeur de la clé primaire de la table parentAutorisé s’il n’y a pas de références de clé étrangère dans les tables enfants
DeleteAutoriséSelon l’action spécifiée lors de la définition de la table

Restrict: non autorisé s’il existe des références de clé étrangère
Cascade : autorisé et supprime les références de clé étrangère, le cas échéant, dans les tables enfants
SET TO NULL : autorisé et une valeur Null sera définie dans les références de clé étrangère des tables enfants

Intégrité du domaine :

Il s’agit de “l’intégrité au niveau du champ” qui garantit que la structure de chaque champ est saine, que les valeurs de chaque champ sont valides, cohérentes et précises, et que les champs du même type (tels que les champs Ville) sont définis de manière cohérente dans toute la base de données.

L’intégrité du domaine est appliquée à l’aide de :

  • Type de données et longueur
  • Les valeurs par défaut
  • Valeurs NULL
  • Vérifier la contrainte

Type de données et longueur :

En spécifiant le type de données et la longueur maximale de chaque colonne lors de la création d’une table, le SGBD s’assurera automatiquement que seul le type de données correct avec la longueur maximale autorisée est stocké dans cette colonne.

Les valeurs par défaut:

Lorsque des colonnes sont créées dans des tables, on peut leur attribuer une valeur par défaut qui sera utilisée lors de l’insertion ou du chargement des données qui ne fournissent pas de valeur explicite pour cette colonne. Chaque colonne ne peut avoir qu’une seule valeur par défaut. L’utilisateur peut fournir une valeur par défaut pour une colonne. S’il n’y a pas de valeur par défaut spécifique à l’utilisateur, DB2 attribue la valeur par défaut en fonction du type de données de cette colonne.

Type de donnéesCOBOL PICCOBOL USAGEPar DéfautDescription
CHAR (n)PIC X(n)DISPLAYBlancsDonnées de caractères de longueur fixe (EBCDIC)
VARCHAR (n)PIC X(n)DISPLAYVide / NULLDonnées de caractères de longueur variable
SMALLINTPIC S9(4)COMP ou
COMP-4
0Entier de faible étendue
INTEGERPIC S9(9)COMP ou
COMP-4
0Entier habituel
DECIMAL (p,s)PIC S9(p)V9(s)
COMP-30Données d’un nombre décimal
p : nb de décimal avant la virgule
s : nb de décimal après la virgule
DATEPIC X(10)DISPLAYDate ActuelleDate (aaaa-mm-jj)
TIMEPIC X(8)DISPLAYHeure ActuelleHeure (hh.mm.ss)
TIMESTAMPPIC X(26)DISPLAYTimestamp ActuelleDate et Heure avec les microsecondes
(aaaa-mm-jj-hh.mm.ss.mmmmmm)
GRAPHICPIC G(n)DISPLAY-1BlancsChaîne de caractères à deux octets de longueur fixe
VARGRAPHICPIC G(n)DISPLAY-1Vide / NULLChaîne de caractères à deux octets de longueur variable avec indicateur de longueur de chaîne à 2 octets
FLOAT (n)N/ACOMP-1 ou
COMP-2
0Virgule flottante dans une simple ou double précision

Valeurs NULL :

Certaines colonnes ne peuvent pas avoir une valeur significative dans chaque ligne. DB2 utilise un indicateur de valeur spécial, la valeur nulle, pour représenter une valeur inconnue ou manquante. Une valeur nulle est une valeur spéciale que DB2 interprète comme signifiant qu’aucune donnée n’est présente.

Si vous ne spécifiez rien d’autre, DB2 autorise n’importe quelle colonne à contenir des valeurs NULL. Les utilisateurs peuvent créer des lignes dans le tableau sans fournir de valeur pour la colonne.

L’utilisation de la clause NOT NULL vous permet d’interdire les valeurs NULL dans la colonne. Les clés primaires doivent être définies comme NOT NULL.

Voyons un exemple pour bien comprendre :

Identifiant ProduitDescription ProduitCatégoriePrixStockValeur Totale
001ASport70.00
002B5.0020100.00
003CSport6.00100600.00
004DComposants23.5016376.00
005EOutils300.00
006F7.4517.45
Table PRODUITS

Si une valeur nulle est utilisée dans une expression mathématique, cette expression sera évaluée à Null. Dans la figure Produits, la Valeur Totale est dérivée de l’expression mathématique “[Prix] * [Stock].”

Notez cependant que la valeur du champ Valeur Totale est manquante là où la valeur Stock est Null, ce qui entraîne également une valeur nulle pour le champ Valeur Totale. C’est logiquement, si le nombre est inconnu, la valeur sera nécessairement inconnue.

De plus, une grave erreur non détectée se produit si toutes les valeurs du champ Valeur Totale sont ensuite additionnées : un total inexact. La seule façon d’obtenir un total précis est de fournir une valeur pour les entrées dans le champ Stock qui sont actuellement nulles.

Les fonctions d’agrégation telles que COUNT, SUM, AVG, MAX et MIN ne gèrent pas NULL de la même manière que les fonctions et opérateurs ordinaires. Au lieu de renvoyer NULL, ils ne prennent en compte que les champs non NULL lors du calcul du résultat.

Par exemple , Sum(Stock ) renvoie la valeur 137 (20+10+16+1). Si les six lignes avaient été additionnées, le résultat aurait été NULL.

Il existe une exception à cette règle : COUNT(*) renvoie le nombre de toutes les lignes, même les lignes dont les champs sont NULL. Mais COUNT(Name) se comporte comme les autres fonctions d’agrégation en ce sens qu’il ne compte que les lignes où le champ spécifié n’est pas NULL. COUNT(*) et COUNT(Name) ne renvoient jamais NULL. S’il n’y a pas de lignes dans la sortie, les deux fonctions renvoient 0. COUNT(Name) renvoie également 0 si tous les champs Name de la sortie sont NULL.

La figure suivante montre les résultats d’une requête récapitulative qui compte le nombre total d’occurrences de chaque catégorie dans la table PRODUITS présentée ci-dessus. La valeur du nombre total d’occurrences dans la requête récapitulative est le résultat de l’expression de la fonction “Count([Total Occurrences]).” Notez que la requête récapitulative affiche 0 occurrences d’une catégorie non spécifiée, ce qui implique qu’une catégorie a été attribuée à chaque produit. Ces informations sont clairement inexactes car il y a deux produits dans la table PRODUITS qui n’ont pas été assignés à une catégorie.

CatégorieTotal Occurrences
0
Sport2
Outils1
Composants1

Vérifier la contrainte :

Une contrainte de vérification est une règle qui spécifie les valeurs autorisées dans une ou plusieurs colonnes de chaque ligne d’une table. La contrainte de vérification applique les règles métier directement dans la base de données sans nécessiter de logique d’application supplémentaire. Cela peut être défini lors de la définition de la colonne.

Interaction avec DB2

Un environnement est connecté à un sous-système DB2 par une fonction de connexion. Chaque fois qu’il y a un besoin d’interaction avec DB2, un fil (lien) sera établi.

Un fil (lien) est une structure de contrôle utilisée pour :

  1. Envoyer des requêtes à DB2
  2. Envoyer des données de DB2 au demandeur
  3. Communiquer l’état de chaque instruction SQL après son exécution

Ce fil va assurer les connections pour permettre les échanges entre les blocs :

Accès à DB2 depuis TSO :

Vous utilisez l’environnement TSO (Time-Sharing Option) comme une porte qui donne accès aux données DB2.

La fonction TSO Attachment Facility permet d’accéder aux ressources DB2 de deux manières :

  1. Mode en ligne, au premier plan du TSO, à l’aide des panneaux ISPF (Interactive System Productivity Facility).
  2. Mode batch à l’aide du programme TSO Terminal Monitor – IKJEFT01 (ou IKJEFT1B)
DB2I – DB2 Interactive

DB2I (DB2 Interactive) est une application DB2 basée sur TSO. Il se compose d’une série de panneaux ISPF, de programmes et de CLIST permettant un accès rapide aux services et aux données DB2. DB2I augmente la productivité du développeur TSO DB2.

Comment accéder à DB2I :

  1. Connectez-vous à TSO comme vous le feriez normalement. Le menu principal ISPF apparaît.
  2. En fonction des TSO, Choisissez l’option : DB2 – Perform DATABASE 2 Interactive Functions
  3. Le menu principal de DB2I s’affiche généralement comme illustré ci-dessous :

Les options suivantes sont disponibles avec DB2I :

  1. SPUFI : Processeur SQL utilisant l’entrée de fichier.
  2. DCLGEN : Générateur de déclaration.
  3. PROGRAM PREPARATION : Prépare un programme contenant Embedded SQL pour l’exécution.
  4. PRECOMPILE : Le programme contenant Embedded SQL est analysé pour récupérer tout le SQL et le remplacer par des appels à une interface d’exécution vers DB2.
  5. BIND/REBIND/FREE : offre la possibilité de lier un plan et un package DB2, de redéfinir un plan et un package, de supprimer un plan et un package du système.
  6. RUN : permet d’exécuter un programme d’application DB2.
  7. DB2 COMMANDS : permet de soumettre des commandes DB2 à l’aide de TSO.
  8. UTILITIES : Fournit des panneaux qui allègent les charges administratives du traitement des utilitaires DB2.
  9. DB2I DEFAULTS : vous permet de modifier les paramètres qui contrôlent le fonctionnement de DB2I. Assurez-vous que le sous-système DB2 approprié est spécifié dans le paramètre “Nom DB2”. Assurez-vous que la langue appropriée doit être utilisée pour préparer les programmes DB2 dans le paramètre “Application Language”. Une carte de travail valide doit être fournie dans le paramètre “DB2I Job Statement”.
  10. EXIT : Quitte DB2I

L’Option SPUFI

La première option du menu principal de DB2I est SPUFI (SQL Processor Using File Input).

SPUFI est principalement destiné aux programmeurs d’applications qui souhaitent tester les parties SQL de leurs programmes ou aux administrateurs qui souhaitent effectuer des opérations SQL.

SPUFI lit les instructions SQL contenues sous forme de texte dans un fichier séquentiel ou dans un membre d’un PDS, traite ces instructions et place les résultats dans une session de navigation ISPF. En spécifiant les ensembles de données d’entrée et de sortie et en sélectionnant les options appropriées, nous pouvons exécuter des instructions SQL en mode en ligne.

Voici un exemple d’écran SPUFI :

Vous devez entrer le nom de l’ensemble de données d’entrée et le nom de l’ensemble de données de sortie.

Ensemble de données d’entrée :

L’ensemble de données d’entrée doit être alloué avant d’appeler SPUFI. Il peut s’agir d’un membre d’un ensemble de données partitionné ou d’un ensemble de données séquentiel. Cela peut être vide et peut être modifié dans le cadre de la session SPUFI.

Il est recommandé de conserver un ensemble de données partitionné pour garder une trace des instructions SQL utilisées. Le jeu de données d’entrée peut être défini comme un jeu de données fixe et bloqué avec un LRECL de 80.

Les instructions SQL peuvent être écrites dans tous les octets sauf les 8 derniers de chaque enregistrement d’entrée ; cette zone est réservée aux numéros de séquence. Celui-ci peut contenir plusieurs instructions SQL, à condition qu’elles soient séparées par des points-virgules. Les commentaires sont précédés de deux traits d’union. Si le fichier d’entrée contient plusieurs instructions SQL, SPUFI arrête l’exécution de ces instructions dès qu’il rencontre une erreur dans l’une d’entre elles.

Exemples d’instructions SQL dans l’ensemble de données d’entrée comme suit :

-- Afficher la liste des produits avec la catégorie 'SPORT'​

SELECT NOM_PRODUIT, CATEGORIE ​ ​
  FROM PRODUIT​
 WHERE CATEGORIE = 'SPORT';​
Ensemble de données de sortie :

L’ensemble de données de sortie n’a pas besoin d’être alloué avant d’utiliser SPUFI. Si l’ensemble de données de sortie n’existe pas, SPUFI crée un ensemble de données séquentielles bloquées virtuelles avec un LRECL de 4092.

Le fichier de sortie contiendra une séquence de résultats, un pour chaque instruction (y compris le SQLCODE pertinent), suivi d’un résumé de l’exécution globale (y compris, en particulier, une indication quant à laquelle de Commit et Roll Back s’est produite). Certaines valeurs par défaut spécifiques doivent être définies pour l’ensemble de données de sortie.

Lorsque le SQL est exécuté et parcouru, un ensemble de données de sortie comme celui-ci apparaît :

Résultat d’une requête via SPUFI
Autres options:

Après avoir entré le nom de l’ensemble de données d’entrée et le nom de l’ensemble de données de sortie, nous devons spécifier les options suivantes.

CHANGE DEFAULTS : lorsque Y (YES) est spécifié, le panneau des valeurs par défaut SPUFI apparaît comme suit :

Contenu d’un écran TSO du SPUFI DEFAULTS

Options de « CURRENT SPUFI DEFAULTS » :

  1. En règle générale, les valeurs par défaut ne sont modifiées qu’une seule fois, la première fois que quelqu’un utilise SPUFI. ISPF enregistre les valeurs par défaut saisies d’une session à l’autre.
  2. Assurez-vous de spécifier les valeurs par défaut suivantes :
    Isolation Level : réglez toujours cette option sur CS (stabilité du curseur).(Remarque : vous étudierez en détail le niveau d’isolement dans vos prochaines sessions.)
    Max Select Lines : défini sur un nombre approprié. Si nous allons sélectionner parmi de grandes tables qui renvoient plus de 250 lignes, la valeur par défaut d’installation de 250 est insuffisante. SPUFI arrête de renvoyer des lignes après avoir atteint la limite spécifiée et émet un message l’indiquant.
  3. Toutes les autres valeurs par défaut de l’installation sont appropriées. Alors gardez-les tels quels.
  4. EXECUTE : lorsque Y est spécifié, le SQL du fichier d’entrée est lu et exécuté.
  5. AUTOCOMMIT : Lorsque Y est spécifié, un COMMIT est émis automatiquement après l’exécution réussie du SQL dans le fichier d’entrée. Lorsque vous spécifiez N, SPUFI vous demande si un COMMIT doit être émis. Si le COMMIT n’est pas émis, toutes les modifications sont annulées.
  6. BROWSE OUTPUT : Lorsque Y est spécifié, SPUFI vous place dans une session de navigation ISPF pour l’ensemble de données de sortie. Vous pouvez afficher les résultats du SQL qui a été exécuté.

Remarque : Spécifier Y pour toutes ces options (de 6 à 9) à l’exception de Modifier les valeurs par défaut (5) est courant.

Fonctions d’agrégation SQL

Les fonctions d’agrégation sont des fonctions qui opèrent sur un ensemble de lignes pour calculer et renvoyer une valeur unique.

Il est souvent nécessaire de résumer des données sans pour autant les récupérer toutes, et SQL fournit des fonctions spéciales à cet effet.

Voici des exemples de ce type de récupération :

  • Déterminer le nombre de lignes d’un tableau.
  • Obtention de la somme d’un ensemble de lignes dans une table.
  • Recherche des valeurs les plus élevées, les plus basses et moyennes dans une colonne de tableau.

Voici la liste des fonctions d’agrégation fréquemment utilisées :

FonctionLa description
AVG()Renvoie la valeur moyenne d’une colonne
COUNT()Renvoie le nombre de lignes dans une colonne
MIN()Renvoie la valeur la plus élevée d’une colonne
MAX()Renvoie la valeur la plus basse d’une colonne
SUM()Renvoie la somme des valeurs d’une colonne

Le Guide du COBOL

Quatre faits sur COBOL

  • COBOL a été l’un des premiers langages de programmation conçus pour être utilisés dans les affaires et la finance. Lorsque le langage s’est développé dans les années 1950, il n’a pas attiré l’attention des informaticiens qui étaient plus intéressés par le développement de ressources pour les applications mathématiques et scientifiques.
  • Grace Hopper est connue comme la mère du COBOL. Elle a développé le langage de programmation FLOW-MATIC qui a servi de base au nouveau logiciel.
  • Le département américain de la Défense était l’un des principaux partisans du COBOL. Cette agence souhaitait un langage de programmation portable en raison de son investissement croissant dans les ordinateurs centraux à l’époque.
  • En 1970, COBOL était le langage de programmation le plus utilisé au monde. Les banques, les entreprises et les entités gouvernementales dépendaient des capacités de traitement des données de la langue.

Qu’est-ce que le COBOL ? 

Dans les années 1950, la plupart des travaux en informatique se concentraient sur le potentiel d’utilisation de la puissance de calcul au profit de projets mathématiques et scientifiques. Cependant, les institutions financières ont vu le potentiel des applications informatiques dans le monde des affaires.

En 1959, CODASYL, le Comité sur les langages des systèmes de données, s’est réuni pour développer un langage conçu spécifiquement pour les applications métier. Après une analyse comparative, ils ont déterminé les trois principaux traits nécessaires dans la nouvelle langue.

Le langage de programmation informatique résultant était connu sous le nom de Common Business-Oriented Language. La première version de COBOL était un langage procédural de haut niveau qui ne pouvait gérer que des nombres et des chaînes comme types de données. L’adoption par le ministère de la Défense et son utilisation avec les mainframes IBM ont fait du langage un incontournable de l’industrie informatique.

Ses particularités

  • Lisibilité : il devait avoir une syntaxe lisible pour que les non-programmeurs puissent la comprendre.
  • Portabilité : il fallait permettre aux programmes de voyager d’un ordinateur à l’autre.
  • Flexibilité : Le langage devait pouvoir s’adapter à l’évolution des besoins technologiques améliorés.

Faits rapides

  • Créateur (personne) : Grace Hooper
  • Prix ​​d’origine : 800 000 $
  • Système opérateur : cadres modernes
  • Développé par (entreprise) : CODASYL, ANSI, ISO

Comment utiliser COBOL

COBOL est un langage de programmation informatique de haut niveau avec une syntaxe lisible. Avant que son programme ne s’exécute, le programmeur doit utiliser un compilateur pour convertir le programme de syntaxe anglaise en un langage machine de bas niveau.

Bien que les versions modernes de COBOL puissent fonctionner avec la programmation orientée objet, le langage a été conçu pour être procédural. L’écriture d’un programme en COBOL ressemble beaucoup à la création d’une recette étape par étape. Chaque étape du processus indique à l’ordinateur quoi faire avec les données.

Comment apprendre COBOL

Pour les programmeurs modernes, une étude comparative des langages révélera rapidement les limites du COBOL pour les nouvelles applications. Les outils de script comme Python, JavaScript ou C++ offrent une plus grande flexibilité et s’adaptent mieux aux environnements informatiques modernes.

Cependant, les systèmes informatiques d’entreprises comme IBM permettent une rétrocompatibilité, de sorte qu’il exécute encore de nombreux programmes dans le monde des affaires. L’un des défis actuels en informatique est que les programmeurs COBOL arrivent à l’âge de la retraite. Des personnes familiarisées avec ce langage de programmation informatique sont nécessaires pour maintenir les programmes hérités.

Un étudiant familiarisé avec d’autres langages de programmation devrait avoir peu de mal à apprendre COBOL. Il existe plusieurs ressources en ligne telles que l’Open Mainframe Project qui proposent des tutoriels qui enseignent les bases du langage. Quelqu’un qui souhaite développer une expertise COBOL devra également comprendre comment travailler avec un compilateur et les environnements mainframe IBM hérités.

Caractéristiques des applications COBOL

COBOL est l’un des langages les plus puissants et les plus robustes, il existe depuis 60 ans et a fait ses preuves. Au 21e siècle, en raison de la caractéristique principale mentionnée ci-dessous, COBOL livre toujours un dur combat au langage de programmation de nouvelle génération.

  • COBOL est un langage robuste.
  • COBOL s’auto-documente.
  • COBOL est stable
  • COBOL est simple
  • COBOL est maintenable

COBOL : l’actif caché

En réalité, COBOL est sans doute le principal langage de programmation pour les applications métier. Les chiffres soutenant la domination de COBOL dans le domaine des applications métier semblent incroyables. Certes, beaucoup de scepticisme a été exprimé à leur sujet sur Internet et ailleurs. Mais une grande partie du scepticisme vient de ceux qui ont peu ou pas de connaissances sur le domaine du mainframe, un domaine dans lequel COBOL est fort, voire suprême.

La différence entre COBOL et FORTRAN

COBOL et FORTRAN sont deux des plus anciens langages de programmation informatique encore utilisés aujourd’hui. FORTRAN a été créé en 1957 en tant que langage conçu pour les calculs scientifiques. COBOL est apparu quelques années plus tard en réponse au besoin d’une ressource orientée métier. Les deux outils sont des langages de haut niveau qui nécessitent un compilateur.

Les objectifs déclarés des deux langues ont déterminé leur structure. FORTRAN est un langage générique de forme libre qui permet une variété de calculs complexes. Son manque de structure le rend moins lisible que les autres langages de programmation. Cependant, c’était un outil utile pour créer rapidement des programmes qui seraient utilisés dans des expériences.

COBOL utilise une syntaxe de type anglais pour favoriser la lisibilité. Il a été conçu pour que les employés du monde financier puissent comprendre les programmes et les procédures sans beaucoup de formation. Le langage était idéal pour créer des opérations commerciales qui seraient effectuées à plusieurs reprises.

La différence de public visé explique aussi la longévité des deux langues. Les programmes COBOL sont devenus intégrés dans de nombreuses entreprises et ministères, de sorte que les programmeurs COBOL sont toujours nécessaires. FORTRAN est parfois utilisé pour des calculs physiques complexes, mais la plupart des membres de la communauté scientifique sont passés à des langages plus avancés comme Python ou C++.

L’Avenir du COBOL

COBOL a fait ses preuves depuis 60 ans dans la production, la maintenance et l’amélioration d’applications. L’espace informatique d’aujourd’hui est inondé de nouveaux langages de programmation avec des tonnes de fonctionnalités, mais ils ne peuvent toujours pas battre le COBOL. COBOL continue de croître à un rythme constant et vous serez surpris d’apprendre que 9/10 des applications métier critiques utilisent le COBOL. Près de 70 % des personnes utilisent des applications COBOL lorsqu’elles voyagent/retirent de l’argent à un guichet automatique, etc.

GRACE HOPPER : La mère du COBOL

Qui était Grace Hopper ?

Grace Hopper était une informaticienne américaine et officier de la marine américaine, surtout connue pour son travail sur le compilateur A-0 (alias A-0 System) et ses successeurs A-1, A-2, A-3 (le premier ALGOL 60 complet mise en œuvre), A-4, A-5 et A8. Elle a inventé l’un des tout premiers ordinateurs personnels aux côtés de Kay McNulty Mauchly Antonelli en 1944 appelé The Harvard Mark I Computer. Hopper a également créé FLOW-MATIC, un langage de programmation de traitement de données commerciales qui est encore utilisé aujourd’hui par les banques et les compagnies d’assurance.

Faits rapides

Nom et prénom

Grace Brewster Murray Hopper

Naissance

9 décembre 1906

Décès

1er janvier 1992

Récompenses

Médaille nationale de la technologie et de l’innovation
Médaille présidentielle de la liberté
Prix ​​IEEE Emanuel R. Piore

Enfants

Aucun

Nationalité

Américain

Lieu de naissance

New York

Domaines d’expertise

Mathématiques
L’informatique

Établissements

Marine américaine, Université de Harvard

Contributions

Cobol, compilateur A-0, Harvard Mark I

Grace Hopper est née sous le nom de Grace Brewster Murray le 9 décembre 1906 à New York, NY et pendant ses années de lycée, elle a appris l’algèbre de base malgré son sexe, ce qui n’était vraiment pas courant pour les filles à l’époque. Quelques années plus tard, elle s’est inscrite au Vassar College de Poughkeepsie, dans l’État de New York, où elle a étudié les mathématiques et l’économie, mais a abandonné l’université après deux ans en raison du décès de ses parents. Un an plus tard, elle s’est réinscrite à l’Université de Yale dans le Connecticut, d’où elle a obtenu un diplôme summa cum laude avec un baccalauréat en mathématiques et philosophie. Elle a ensuite déménagé à l’Université de Harvard à Cambridge. Voici sa biographie.

Début de sa vie

Au début de sa vie, Hopper avait déjà montré un intérêt pour l’informatique et pendant son séjour à l’université, elle a travaillé comme opératrice du projet informatique Mark I à l’Université de Harvard avec Howard H. Aiken qui était un informaticien et ingénieur surtout connu pour avoir conçu le première calculatrice électromécanique programmable à grande échelle appelée Automatic Sequence Controlled Calculator (ASCC) ou Harvard Mark I.

Pendant les années de la Seconde Guerre mondiale, Hopper a rejoint la réserve de la marine américaine, croyant initialement que ce ne serait que pour un an. Mais lorsqu’elle a réalisé à quel point le travail sur la technologie militaire était beaucoup plus intéressant par rapport à la recherche universitaire régulière, ce que les femmes étaient autorisées à faire à l’époque, Hopper a continué à travailler sur la technologie liée à la guerre jusqu’à sa retraite de la marine en 1986. Certains l’appelant même “Amazing Grace” pour son travail approfondi en faveur de la marine et de la technologie informatique. C’est pourquoi sa carrière dans la Marine occupe une place si importante dans sa biographie.

Carrière

Compilateur A-0 et Service Naval

En 1944, Hopper a rejoint le laboratoire de calcul de Harvard où elle a travaillé sur le Mark I et son successeur, le Mark II (ou IBM SSEC) avec Howard H Aiken. Le Harvard Mark II ou IBM SSEC était un ordinateur numérique électromécanique à usage général.

Au cours de cette période, en 1947, Grace Hopper a également obtenu sa maîtrise en mathématiques à Harvard. Elle est ensuite allée enseigner au Vassar College de Poughkeepsie, NY pendant un an avant de retourner à Harvard, cette fois en tant que professeure adjointe de mathématiques.

Hopper a poursuivi sa carrière universitaire et est devenue officier de la marine en 1943, non seulement parce qu’elle voulait contribuer à l’effort de guerre, mais aussi parce qu’elle détestait la façon dont les femmes étaient traitées à l’époque.

Elle a été affectée au Bureau of Ordnance Computation Project (BOCP) de l’Université de Harvard, où elle a travaillé sur l’application de la technologie Mark I pour résoudre les équations et les problèmes de la marine américaine, ce qui l’a amenée à créer le programme A-0 ou Automatic Computer – Mark I. .

Hopper a soutenu que la création d’un langage de programmation qui serait plus simple que le code machine afin que les opérateurs puissent écrire des programmes sans avoir de formation en informatique était possible grâce à ses connaissances approfondies en mathématiques.

L’invention du compilateur COBOL et A-0

Elle a implémenté le manuel du compilateur A-0 pour la première fois lors d’une conférence en mai 1944, c’était une extension de ce qu’elle avait précédemment développé avec Howard H. Aiken. Elle est devenue l’une des principales contributions de Hopper aux ordinateurs ainsi qu’au développement de logiciels.

Elle s’est rendu compte qu’avoir des opérateurs pour écrire des programmes via un code machine serait trop fastidieux, alors elle a proposé de créer un “dispositif de planification” qui permettrait aux programmeurs de développer des programmes en combinant des équations mathématiques plutôt qu’en les écrivant en code numérique.

Des années plus tard

En 1949, Hopper a quitté Harvard et a passé le reste de sa carrière à travailler pour la technologie navale. Elle a commencé en tant que mathématicienne senior à la Eckert-Mauchly Computer Corporation où elle a développé l’un des premiers compilateurs appelé le compilateur B-0 qui a été conçu pour traduire la langue anglaise en langage informatique pour les ordinateurs UNIVAC.

L’année suivante, en 1950, Hopper a accepté une affectation en tant que programmeuse et directrice du développement de la programmation automatique chez Remington Rand où elle a supervisé le développement de FLOW-MATIC. C’st un système de traduction de formules capable de compiler des formules mathématiques en code machine, afin qu’elles puissent être utilisées par des machines commerciales. C’est également là qu’elle a créé l’une de ses œuvres les plus célèbres appelée “Le premier compilateur” ou A-OI qui a converti des expressions mathématiques symboliques en code exécutable.

Qu’est-ce que Grace Hopper a inventé ?

Grace Hopper est reconnue comme l’inventrice de FLOW-MATIC et A-OI. Ses réalisations les plus notables, à la fois la traduction de formules et les langages de programmation automatiques, ont joué un rôle crucial dans le développement des premiers ordinateurs pour les machines professionnelles en permettant aux utilisateurs d’exprimer des flux de travail sans avoir à apprendre le langage de machine. Son développement du premier compilateur pour un langage de programmation informatique a permis d’utiliser des mots anglais au lieu de chiffres et de symboles, rendant l’informatique assistée par machine plus accessible.

L’une de ses contributions les plus importantes est venue avec l’invention de la technique de compactification en 1952. La technique a permis aux ordinateurs de stocker des données en mémoire en utilisant moins de bits en exploitant la redondance (similitudes) entre les gros fichiers, qui a pris de l’importance lorsqu’elle est combinée avec une autre innovation : la pagination, ou diviser la mémoire en segments égaux auxquels chacun pourrait être accessible indépendamment (et de manière aléatoire).

Plus tard connu sous le nom de mémoire à accès aléatoire (RAM), le concept a fourni un moyen beaucoup plus rapide d’accéder aux informations stockées que les méthodes précédemment disponibles. La taille d’un segment individuel a augmenté au fil du temps, ce qui a conduit à son adoption généralisée par les fabricants d’ordinateurs.

L’éditeur de liens, un outil essentiel dans tout langage de programmation, serait également une création de Hopper. Les premiers ordinateurs étaient capables de stocker et de traiter des données, mais n’avaient pas la capacité de lier des pièces ensemble (et donc de lier). Un éditeur de liens est nécessaire pour minimiser la taille d’un programme exécutable et inclut des fonctions qui appellent des routines de bibliothèque, suppriment du code mort, résolvent des références externes ou fusionnent des sections de code.

Les faits historiques indiquent que Hopper avait un don pour les langages de programmation et est crédité d’avoir inventé le terme populaire “bug” (sa description préférée des défauts du matériel informatique, au lieu du terme technique “pépin” du Dr Thomas Edison) après avoir trouvé et réparé un papillon de nuit à l’intérieur d’un ordinateur Mark II à l’Université de Harvard. Parce que les premiers ordinateurs étaient si complexes, les utilisateurs faisaient de fréquentes erreurs, à l’époque où elles n’étaient pas encore qualifiées de bug.

Le développement du langage d’assemblage a finalement conduit à la création de compilateurs comme le compilateur A-OI de Hopper, qui traduisait le langage métier en langage machine afin d’exécuter des programmes sur un ordinateur lorsque son système d’exploitation n’était pas disponible. Le bug est né.

Une autre invention de Hopper prétendait être le premier “détecteur d’incohérence”. Considérés comme un élément critique des systèmes d’exploitation et des compilateurs, les détecteurs d’incohérence sont utilisés pour tester le code généré par le compilateur à la recherche d’erreurs . L’outil aurait été capable de trouver des problèmes dans des programmes que même les programmeurs ne pouvaient pas trouver.

Une nouvelle ère dans l’informatique

Les réalisations de Hopper en informatique ont contribué à inaugurer l’ère de l’informatique et ont permis au traitement numérique des données de remplacer l’informatique manuelle. Les avancées technologiques qui en ont résulté ont transformé de nombreux aspects de la vie quotidienne, notamment les soins de santé et la médecine, les transports et le commerce, les divertissements et les communications.

Hopper a également utilisé son expérience pour influencer la technologie navale en suggérant des processus susceptibles d’améliorer l’efficacité à bord des navires. Son esprit de pionnière l’a amenée à appliquer de nouvelles approches (et langues) au début de sa carrière, ce qui a non seulement permis des avancées, mais a ouvert des opportunités pour les autres.

Même si elle était motivée par le désir de voir les choses mieux faites qu’avant, elle a favorisé un environnement où des personnes d’horizons divers pouvaient s’épanouir tout en poursuivant leurs passions avec le soutien de mentors qui ont fourni des conseils et des opportunités.

L’héritage de “Amazing Grace” Hopper

En 1957, Grace Hopper commence à travailler pour IBM. Elle défend l’idée qu’un programme devrait pouvoir être écrit dans un langage proche de l’anglais plutôt que d’être calqué sur le langage machine, comme fait un assembleur. De cette idée naît le langage Cobol , connu sous le nom de Common Business Oriented Language, en 1959.

En 1966, Grace Hopper a rejoint le Data Systems Lab de Digital Equipment Corporation en tant que scientifique principale où elle a inventé le langage de programmation FLOW-MATIC, puis est allée enseigner au Vassar College de Poughkeepsie pendant un an avant de retourner à Harvard, cette fois en tant que un professeur adjoint de mathématiques.

En 1967, Hopper a assisté à une conférence sur le génie logiciel où elle a proposé de créer des langages commerciaux communs qui simplifieraient l’écriture de programmes et aideraient à prévenir les erreurs. Cette idée est devenue connue sous le nom de Common Business Oriented Language (COBOL), ainsi que le Fortran. Hopper a continué à poursuivre son amour pour la technologie en y apportant d’autres contributions au cours de sa vie, notamment en enseignant l’informatique à l’Université de Yale et en co-inventant le compilateur A-O.

En 1983, Hopper a pris sa retraite de la Réserve navale avec plus de 60 ans de service et s’est tourné vers la recherche de systèmes de reconnaissance vocale. Elle a obtenu son premier brevet pour cela en 1986. Elle a continué à inventer jusqu’à sa mort le 1er janvier 1992 d’une pneumonie à l’âge de 85 ans.

Les faits suggèrent que l’héritage et les réalisations de Hopper se font sentir aujourd’hui en raison de ses efforts pour promouvoir un certain nombre d’idées telles que le langage commercial commun qui sont encore utilisées aujourd’hui, créant un environnement où des personnes d’horizons divers pourraient s’épanouir tout en poursuivant leurs passions avec le soutien de des mentors qui ont fourni des conseils et des opportunités (y compris des femmes) qui ont conduit à des progrès partagés entre de nombreux domaines en dehors de l’informatique, et ses propres contributions personnelles au développement de la technologie informatique.

Grace Hopper: mariage et vie personnelle

Les faits voudraient qu’un aspect important de la biographie de Hopper soit sa vie personnelle, qui est aussi remarquable que ses réalisations professionnelles. Elle a été mariée à Vincent Foster Hopper pendant 15 ans. Effectivement, elle s’est mariée en 1930 mais a divorcé en 1945 estimant qu’elle ne pouvait pas avoir, à la fois, une vie de famille et être engagé à la Marine et à ses travaux de recherche.

Elle était le quatrième enfant, avec 2 frères et une sœur, née de Walter Fletcher Murray et Mary Campbell Van Horne Murray. Son père était avocat. Hopper n’a jamais utilisé son prénom dans la vie publique ou privée à l’âge adulte après avoir quitté l’université.

Grace Hopper ne s’est jamais remariée, ni n’a eu d’enfants, mais a adopté une de ses nièces et s’est occupée d’elle jusqu’à la mort de celle-ci. Elle a dit qu’avoir une famille aurait été incompatible avec sa carrière dans la marine et ses nombreuses années à l’étranger.

Hopper a passé la majeure partie de sa vie à New York, ne déménageant qu’une seule fois, lorsqu’elle a déménagé à Washington DC en 1983. Elle était une lectrice passionnée (son écrivain préféré était Proust) et suivait les événements mondiaux en lisant trois journaux par jour.

Grace Hopper : Récompenses et Réalisations

  • Hopper a reçu le prix du service public distingué du ministère de la Défense en 1980 pour son travail concernant le COBOL
  • En 1983, elle a reçu la médaille nationale de la technologie.
  • En 1985, Hopper a reçu le prix du service civil méritoire de la Marine.
  • En 1986, elle a reçu le IEEE Computer Pioneer Award, avec Seymour Cray. Elle a également reçu le Achievement Award de la NSA.
  • En 1987, elle a été intronisée au Temple de la renommée de l’IA de l’IEEE Intelligent Systems.
  • Le 15 septembre 1990, le président George H. W. Bush a remis à Hopper un certificat d’appréciation présidentiel spécial à vie pour ses contributions innovantes à la préparation militaire, à l’informatique commerciale et à la sécurité nationale.

Le destroyer lance-missiles de la marine américaine USS Hopper (DDG-70) est nommé en son honneur. La devise du navire est “Fearless and Fair”. Le 23 juin 1994, elle reçoit la National Medal of Technology des mains du président Bill Clinton.

Elle a également reçu un Lifetime Achievement Award du Computer History Museum lors de son gala inaugural le 13 novembre 1998 . Le Naval Historical Center attribue à Grace Hopper le mérite d’avoir proposé que les couleurs standard pour les différents états d’arrière-plan / premier plan des écrans d’ordinateur soient réservées pour une utilisation avec des programmes interactifs, faisant d’elle l’une des programmeuses les plus accomplies de tous les temps.

Grace Hopper : Œuvres et livres publiés

Hopper a publié deux livres :

  • The Education of a Computer (1984)
  • Computers and People : A Reflection (1991).

Elle a également contribué au livre A History of Programming Languages.

Citations de Grace Hopper

“A ship in port is safe, but that’s not what ships are built for.”

“Un navire au port est sûr, mais ce n’est pas pour cela que les navires sont construits.”

“It is often easier to ask for forgiveness than to ask for permission.”

“Il est souvent plus facile de demander pardon que de demander la permission.”

“You don’t manage people; you manage things. You lead people.”

” Vous ne gérez pas les gens ; vous gérez les choses. Vous dirigez les gens.”

Grace Hopper – FAQ complète sur la biographie, l’histoire et les inventions (Foire aux questions)

Pourquoi Grace Hopper est-elle connue ?

Grace Hopper est surtout connue pour ses contributions dans le domaine de l’informatique.

Quels sont 3 faits intéressants sur Grace Hopper ?

  • Grace Hopper était autrefois une élève de l’amiral Hyman Rickover.
  • En 1999, elle a reçu le prestigieux prix de la Légion du mérite, décerné à une personne qui fait preuve d’excellence dans son domaine.
  • En 2012, la marine américaine a annoncé que son prochain destroyer lance-missiles porterait son nom.

Quand Grace Hopper a-t-elle créé le premier compilateur ?

Le premier compilateur qu’elle a créé date de 1952.

Comment et pourquoi Grace Hopper a-t-elle créé le premier compilateur ?

Grace Hopper a créé le premier compilateur à la main. Elle lisait un article décrivant un algorithme et écrivait du code pour le traiter.

Comment Grace Hopper est-elle morte ?

Grace Hopper est décédée le 1er janvier 1992. Elle est décédée dans son sommeil de causes naturelles à l’âge de 85 ans.

Chronologie des versions

Au cours de ses plus de soixante ans d’existence, COBOL a connu plusieurs révisions.

1952

Grace Hopper, “la mère de COBOL”, commence à développer des langages informatiques.

COBOL 60

CODASYL a conçu la première version de COBOL en 1959. Le nouveau langage de programmation informatique a été fortement soutenu par le département américain de la Défense pour répondre à ses besoins croissants en traitement de données.

COBOL 61

La première révision impliquait des corrections sur la façon dont le langage gérait les flux logiques.

COBOL 65

En 1965, COBOL gagnait en popularité en tant qu’outil commercial et financier. Cette révision comprenait des ressources pour travailler avec des tables.

COBOL 68

À mesure que l’utilisation de COBOL augmentait, les programmeurs locaux ont créé des variantes pour répondre à leurs besoins. En 1968, COBOL 68 était un effort pour normaliser le langage dans l’ensemble de l’industrie. L’American National Standard Institute approuvera plus tard cette version comme norme à usage commercial.

COBOL 74

Dans les années 1970, COBOL était l’un des langages de programmation les plus utilisés au monde. COBOL 74 était une autre tentative de l’ANSI de standardiser l’outil. Cette version incluait de nouvelles fonctionnalités d’organisation des fichiers.

COBOL 85

Un examen comparatif des langages de programmation dans les années 1980 a montré que le programme prenait du retard sur d’autres langages émergents. COBOL 85 incluait la possibilité de créer des sous-programmes imbriqués dans un cadre procédural. Des commandes telles que EVALUATE, une instruction switch, et CONTINUE, une instruction non opérationnelle, ont augmenté ses capacités de traitement.

1989

Des fonctions intrinsèques sont ajoutées à la norme.

COBOL 2002

COBOL 2002 a ajouté des fonctionnalités standard dans d’autres langages de programmation. Cette version incorporait des outils de programmation orientés objet comme des classes et des méthodes. Il a également permis aux programmeurs de créer des fonctions définies par l’utilisateur et d’employer des techniques récursives.

COBOL 2014

La dernière révision de COBOL est supposée être la dernière version. Même avec une programmation orientée objet en place, les développeurs ont tendance à privilégier des outils plus modernes. COBOL 2014 inclut des modifications qui lui permettent de fonctionner plus facilement dans des environnements hybrides.

COBOL : Fin du développement

Le programme est toujours utilisé, mais il est considéré comme un langage hérité. Le besoin de programmeurs COBOL découle souvent du désir de maintenir le logiciel jusqu’à ce qu’il puisse migrer vers un langage moderne.

FAQ (Foire aux questions) 

Qu’est-ce que COBOL ?

COBOL est un langage de programmation informatique de haut niveau développé en 1959. La syntaxe et le modèle procédural de style anglais rendaient les programmes lisibles par des utilisateurs extérieurs au domaine de l’informatique. COBOL nécessite un compilateur pour transformer ses instructions de haut niveau en langage machine lisible.

A quoi sert COBOL comme langage de programmation ?

CODASYL a conçu COBOL pour le traitement de données dans les secteurs commerciaux et financiers. La langue a également été largement utilisée au niveau international pour créer des outils administratifs dans les départements gouvernementaux.

Que signifie COBOL ?

COBOL signifie Common Business-Oriented Language.

Quand COBOL a-t-il été développé ?

COBOL a été développé en 1959 par le Committee for Data Systems Languages.

COBOL est-il toujours utilisé ?

COBOL est toujours utilisé activement dans les logiciels hérités. Les entreprises et les entités gouvernementales exécutent des applications construites sur une base COBOL. Ces groupes auront besoin de programmeurs connaissant la langue jusqu’à ce qu’ils puissent mettre à jour ou remplacer le logiciel par un produit à jour.

Qui a développé COBOL ?

Le Comité pour les langages des systèmes de données s’est réuni en 1959 et comprenait des représentants du ministère de la Défense, d’IBM et de plusieurs autres entreprises technologiques. Le département américain de la Défense a fourni le soutien financier pour le développement de COBOL.

Glossaire SPITAB

ELEMENT:
Chacune des rubriques d’une table. Il se définit par sa longueur, sa
représentation interne sa structure et son emplacement dans le poste.

EXIT-USER:
Sous-programme permettant des contrôles ou traitements complémentaires aux contrôles standards de SPITAB.

PAGE DE STRUCTURE:
Ensemble constitué par <20 éléments. On y attache éventuellement une
autorisation de mise à jour, d’interrogation, un programme de contrôle
(Exit-User)

PARAMETRES DE TRANSFERT:
Assure la recopie d’une table SPITAB sur le fichier CPT.P000. Seul le
responsable est habilité à créer et modifier les paramètres.

POSTE:
Ensemble des éléments d’une table.

REFERENCE:
Est constituée d’un ou plusieurs éléments contiguës de longueur < 50

STRUCTURE D’UNE TABLE:
Description du contenant de la table. Chaque table à sa propre structure.

TABLE:
Ensemble de postes. Se caractérise par un code (ou numéro) et un libellé.

TABLE COMPTABLE:
Toutes les tables livrées sur le Fichier CPT.P000.

TABLE EXTRA-COMPTABLE:
Tables de 0198 à 0208 livrées sur le Fichier CPT.P140.

TABLE GENERALE:
Résidence des tables en mémoire.

TABLE INTERNE:
Table résidente en mémoire (en ECSA) dans une Table Générale.

TRANSACTION:
SPITAB est livré avec un ensemble de programmes fonctionnant en temps réel pour gérer les tables: description de leur structure (DST) mise à jour des postes (MAJ), liste sélective (LIS), personnalisation des écrans
de MAJ (FDE). Ce sont les transactions standard de SPITAB.