COBOL
Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

COBOL est un langage de programmation de troisième génération créé en 1959 (officiellement le 18 Septembre 1959). Son nom est l'acronyme de COmmon Business Oriented Language qui révèle sa vocation originelle : être un langage commun pour la programmation (La programmation dans le domaine informatique est l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est une étape importante de la conception de logiciel (voire de matériel, cf. VHDL).) d'applications de gestion. Le langage COBOL (COBOL est un langage de programmation de troisième génération créé en 1959 (officiellement le 18 Septembre 1959). Son nom est l'acronyme de COmmon Business...) était de loin le langage le plus employé des années 1960 à 1980, et reste très utilisé dans des grandes entreprises, notamment dans les institutions financières qui disposent (et développent encore) de nombreux logiciels et applications en COBOL.

Histoire et spécifications

Le COBOL a initialement été créé en 1959 par le Short Range Committee, un des trois comités proposés à une rencontre au Pentagone en mai 1959 organisée par Charles Phillips du département de la défense des États-Unis. Le comité a été formé pour recommander une approche à court terme pour un langage commun, indépendant des constructeurs, pour les applications de gestion de l'administration américaine. Il était constitué de membres représentant six constructeurs d'ordinateurs et trois agences gouvernementales. Les six constructeurs informatiques étaient Burroughs Corporation, IBM (International Business Machines Corporation (IBM) est une société multinationale américaine présente dans les domaines du matériel informatique, du logiciel et des services informatiques.), Minneapolis-Honeywell, RCA, Sperry Rand, et Sylvania Electric Products. Les trois agences du gouvernement étaient le US Air Force (Le mot force peut désigner un pouvoir mécanique sur les choses, et aussi, métaphoriquement, un pouvoir de la volonté ou encore une vertu morale...), le David Taylor Model Basin, et l'Institut national des standards. Ce comité était présidé par un membre du NBS. Des comités à moyen et long terme ont également été proposés au Pentagone. En revanche, même si le premier a été fondé, il n'a jamais été opérationnel, et le dernier n'a jamais été fondé. En fin de compte, un sous-comité du Short Range Committee a été formé avec six membres :

  • William Selden et Gertrude Tierney de IBM ;
  • Howard Bromberg et Howard Discount de RCA ;
  • Vernon Reeves et Jean E. Sammet de Sylvania Electric Products.

Ce sous-comité a terminé les spécifications de COBOL fin 1959. Elles étaient largement inspirées par le langage FLOW-MATIC inventé par Grace Hopper (Grace Murray Hopper (9 décembre 1906 - 1er janvier 1992) est une informaticienne et amiral de la marine américaine. Elle est la conceptrice du premier compilateur en 1951 (A-0...), surnommée « la mère du langage COBOL », et par le langage COMTRAN d'IBM, inventé par Bob Bemer (Robert (Bob) Bemer (né le 8 février 1920 à Sault Ste. Marie (Michigan), mort le 22 juin 2004 à Possum Kingdom Lake, Texas) est un informaticien américain. Il est le co-inventeur du code ASCII en 1961. Il a reçu en...).

Ce langage ayant été conçu aux débuts de l'informatique (L´informatique - contraction d´information et automatique - est le domaine d'activité scientifique, technique et industriel en rapport avec le traitement automatique de l'information par des machines telles que...), sa relative complexité (La complexité est une notion utilisée en philosophie, épistémologie (par exemple par Anthony Wilden ou Edgar Morin), en physique, en biologie (par exemple par Henri Atlan), en sociologie, en informatique ou en sciences de...) rebute nombre (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».) de programmeurs de notre époque, ce qui lui a valu deux interprétations ironiques de son acronyme : Complies Only Because Of Luck (fonctionne uniquement par chance) et Completly Obsolete Business Oriented Language (Langage orienté gestion complètement obsolète).

Traits principaux

La totalité des variables et des structures de données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction d'affaire, d'un événement, etc.) utilisées sont définies au début du programme, avant la division (La division est une loi de composition qui à deux nombres associe le produit du premier par l'inverse du second. Si un nombre est non nul, la fonction "division par ce nombre" est la...) procédurale où il y a les instructions. La manière dont sont définies les variables, c'est-à-dire les espaces de stockage temporaire, est très particulière. C'est une structure arborescente définie par une suite de lignes de code. Chaque ligne commence par un nombre qui définit le niveau d'imbrication du champ (Un champ correspond à une notion d'espace défini:) ou du groupe de variables.

Par exemple :

       01 NomPrenom.         05 Prenom PIC X(20).         05 Nom    PIC X(20).      

qui défini une structure NomPrenom contenant les champs Prenom et Nom sur 20 caractères.

Comme défini dans la spécification originale, COBOL possédait déjà les nombreuses fonctionnalités qui ont fait son succès : d'excellentes capacités d'auto-documentation, des méthodes pratiques de gestion des fichiers et des types de données variés, dont le format est précisé par la clause PICTURE. Comme la plupart des autres langages de l'époque, il ne permet pas de définir de variables locales, de fonctions récursives et d'allouer de la mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir d'une information.) dynamiquement.

La gestion des décimales en COBOL (nombres en virgule fixe), et la maîtrise (La maîtrise est un grade ou un diplôme universitaire correspondant au grade ou titre de « maître ». Il existe dans plusieurs pays et correspond à différents niveaux selon ceux-ci.) des arrondis et des dépassements, permettent d'éviter les nombreux problèmes qui arriveraient en utilisant des nombres à virgule flottante pour les calculs financiers.

Il intégre également un générateur de rapports, défini de la même manière que les autres structures de données. Sont intégrées des fonctions de tri, de fusion (En physique et en métallurgie, la fusion est le passage d'un corps de l'état solide vers l'état liquide. Pour un corps pur, c’est-à-dire pour une substance constituée de molécules toutes identiques,...) et de communication (La communication concerne aussi bien l'homme (communication intra-psychique, interpersonnelle, groupale...) que l'animal (communication intra- ou inter- espèces) ou la machine...). Un module optionnel permettait également une forme de communication inter-processus (En informatique, les communications inter processus (Inter-Process Communication ou IPC) regroupent un ensemble de mécanismes permettant à des...) par file de messages.

Le parti-pris initial de définir un langage de programmation (Un langage de programmation est un langage informatique, permettant à un être humain d'écrire un code source qui sera analysé par une machine,...) proche du langage naturel (Un langage naturel est une langue « normale » parlée par un être humain.) (comme pour FLOW-MATIC) devait faciliter, sinon la programmation, du moins l'audit des programmes COBOL par des gestionnaires non-informaticiens. Ce choix a eu pour conséquence une syntaxe complexe (le langage naturel n'est pas simple), avec de nombreux mots réservés, et de nombreuses options (les opérations de gestion ne sont pas simples non plus) qui valent à COBOL une réputation de verbosité, qui n'est pas forcément fondée sur des faits.

Par exemple en Cobol l'instruction (Une instruction est une forme d'information communiquée qui est à la fois une commande et une explication pour décrire l'action, le comportement, la méthode ou la tâche qui devra commencer, se terminer, être conduit, ou exécuté.)

      ADD montant TO total-jour total-mois total-annee.      

s'exprimerait, en C ou autres langages dérivés, par

      total_jour += montant;      total_mois += montant;      total_annee += montant;      

Comme d'autres langages de l'époque (par exemple Fortran 2), COBOL offrait la possibilité de modifier du code pendant l'exécution à l'aide de la fameuse instruction ALTER X TO PROCEED TO Y (altérer X pour aller vers Y). Cette possibilité dangereuse, qui transposait une technique courante de la programmation en langage machine (Le langage machine est la suite de bits qui est interprétée par le processeur de l'ordinateur lors de l'exécution d'un programme. C'est le langage natif du processeur. Il est aussi appelé...), a été éliminée des spécifications du langage. Rendant possible la modification à la volée de l'exécution d'un programme, cette commande (Commande : terme utilisé dans de nombreux domaines, généralement il désigne un ordre ou un souhait impératif.) permettait d'outrepasser des ordres GO TO, complexifiant ainsi la maintenance.

Les versions successives du standard ont modernisé le langage, par exemple en ajoutant des structures de contrôle (Le mot contrôle peut avoir plusieurs sens. Il peut être employé comme synonyme d'examen, de vérification et de maîtrise.) améliorées et le support de la programmation objet (De manière générale, le mot objet (du latin objectum, 1361) désigne une entité définie dans un espace à trois dimensions, qui a une fonction précise, et qui peut être désigné par une étiquette...), tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) en préservant au maximum la compatibilité avec les versions précédentes, de façon à éviter d'avoir à modifier l'énorme stock de programmes COBOL en service.

Page générée en 0.081 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique