Module A206 Programmation fichiers – COBOL Chapitre 1
Transcription
Module A206 Programmation fichiers – COBOL Chapitre 1
Campus International e-mi@ge Module A206 : Programmation fichiers - COBOL Campus International e-mi@ge Module A206 : Programmation fichiers - COBOL Introduction au module - version V3 Sommaire : Module A206 (version V3) Mise en garde Présentation Plan Participants Notations Bibliographie Cours Web Outils En guise de conclusion... provisoire Mise en garde Programmation fichiers – COBOL Chapitre 1 Ce module en est à sa troisième version. L'essentiel de nos interventions entre la V1 et la V2 s'était concentré sur la production de solutions aux exercices, devoirs... C'est ainsi que, maintenant, tous les exercices d'application (ils constituent la section 2 du chapitre 6) et les épreuves en temps limité (ils constituent la section 5 de ce même chapitre 6) disposent d'une solution en ligne. L'apport de la version V3 concerne essentiellement COBOL et les bases de données. Dans cette version, nous donnons (enfin !) du contenu au chapitre 4, prévu depuis l'origine de ce module mais pas encore rédigé. Cette lacune est maintenant corrigée. Par contre, comme dans la V1, les travaux dirigés et les travaux pratiques n'ont toujours pas de solution en ligne. Ceci est volontaire. Nous persistons, en effet, dans notre approche de l'enseignement à distance, qui consiste à contraindre l'apprenant à contacter les tuteurs avant de voir les solutions. Ceux-ci ont reçu comme consigne de ne pas fournir de corrigé avant d'avoir obtenu des étudiants une réponse aux problèmes posés. C'est ce que nous appelons le "Work for View". Introduction Nous avons aussi, dans la version V2.4, ajouté quelques informations relatives aux organisations de fichiers et avons notablement amélioré les versions imprimables de ce cours. Dans la version V2.5, nous avons ajouté une rubrique Avis des lecteurs permettant à tous de se faire une opinion. La version suivante, la V2.6, contient plusieurs photos (de carte perforée, d'une trieuse, d'une perforatrice, d'un bordereau de saisie d'un programme...). Celles-ci permettent de se faire une idée de ce qu'était la "vie" des programmeurs COBOL de cette époque. Quelques erreurs résiduelles ont également été corrigées. La version V3, nous l'avons déjà dit, est consacrée aux bases de données. Elle comprend, après un bref rappel des notions essentielles des bases de données et du code SQL, une présentation des techniques à appliquer pour insérer des instructions SQL dans un programme COBOL. Nous avons aussi corrigé les quelques erreurs que nous avons pu trouver ou que vous nous avez signalées. Nous avons, enfin, revu la présentation des vieux "matos" et ajouté un paragraphe qui explique comment marchaient les "perfos" (c'est ainsi que nous appelions ces machines perforatrices). Alain Vailly [email protected] Bien que représentant un plus par rapport à la première version, ce module est encore imparfait. Des améliorations sont encore possibles. Nous travaillons sur certaines. C'est aussi, pour nous, une première expérience d'enseignement à distance. Il y a donc sans doute des transmissions de connaissances à revoir. Aussi, nous demandons à tout lecteur de ne pas hésiter à prodiguer remarques et conseils aussi bien sur le fond que sur la forme. Document rédigé par Alain VAILLY, le 16/10/12 à 15:10 Page 1 / 8 Document rédigé par Alain VAILLY, le 16/10/12 à 15:10 Page 2 / 8 Campus International e-mi@ge Module A206 : Programmation fichiers - COBOL Campus International e-mi@ge Module A206 : Programmation fichiers - COBOL Présentation Ce module est dédié au langage COBOL. Il peut paraître surprenant de trouver ici, dans un dispositif moderne d'enseignement destiné à la formation d'informaticiens, un module consacré à un langage âgé de près de quarante années. Au rythme des changements de technologies informatiques, COBOL est un véritable dinosaure. Il convient toutefois de réaffirmer avec force que, si le langage est ancien, des programmes COBOL sont encore exécutés tous les jours dans les entreprises. Nombre de nos étudiants ont déjà repris des applications vieillottes (le passage de l'an 2000, à cet égard, a été significatif). Gageons que les promotions à venir le feront également. Or, et "l'ancien" que je suis le déplore, COBOL a disparu de beaucoup de programmes de formations universitaires et/ou scolaires. Il est certes évident qu'on peut l'apprendre tout seul, sur le tas, avec une brochure constructeur ; c'est toutefois plus facile lorsque l'on dispose d'un cours rédigé, d'exercices, de corrigés... Ayant enseigné ce langage il y a ... des lustres, et l'enseignant encore en Licence MIAGE à l'Université de Nantes, il me revenait tout naturellement la tâche de transmettre ce savoir, ces pratiques, aux étudiants actuels et futurs et également à nos jeunes collègues. Ce module a donc aussi comme objectif le passage de témoin entre le "vieux" que je suis et les "petits jeunes". Puisse-t-il remplir ce rôle. Plan Après un rapide retour arrière permettant de (re)situer ce langage dans le temps et de préciser les enjeux de la maîtrise de sa pratique, le langage lui-même est présenté. Un langage, quel qu'il soit, n'étant qu'un outil de communication, la programmation répondant à un objectif précis (celui de faire exécuter par un ordinateur une succession ordonnée d'actions), COBOL est ensuite étudié au travers du filtre de la manipulation de fichiers (qu'il s'agisse de fichiers séquentiels ou de fichiers indexés). Divers problèmes courants sont abordés, comme le parcours d'un fichier séquentiel ou indexé -ce dernier pouvant être effectué "sur" la clé primaire ou "sur" une clé secondaire-, la mise à jour d'un fichier séquentiel ou indexé... Les bases de données étant incontournables, les programmes COBOL y étant "confrontés", nous montrons comment l'on fait, dans un programme COBOL, pour "attaquer" une base de données. Ce langage est suffisamment "souple" pour pouvoir embarquer du code étranger (i.e. rédigé dans un autre langage). Appliqué aux bases de données, cela se traduit par du code SQL inséré dans du code COBOL. La programmation est un acte relevant du Génie logiciel. Il est donc naturel d'évoquer, dans un enseignement relatif à un langage de programmation, quelques "trucs et astuces" pour bien programmer, qu'il s'agisse de normes de programmation ou d'utilisation de bibliothèques de modules de lignes COBOL. Des exercices, quelques sujets d'examen, une bibliographie complètent ce module, dont il faut rappeler ici le caractère provisoire et inachevé. Dans la plupart des cas, des solutions sont fournies, avec un accent mis sur l'algorithme. La structure de ce cours peut être schématisée ainsi : Plusieurs de ces parties peuvent être "sautées" en fonction des objectifs des apprenants. Le minimum minimorum correspond à la section 2, dans laquelle la syntaxe du langage lui-même est abordée. Le reste (ie. les autres sections) seront choisies en fonction des besoins. Participants Responsable du module : Alain Vailly (IUP-MIAGE de Nantes) Participants : Alain Vailly (IUP-MIAGE de Nantes), Alain Bidault (IUP-MIAGE de Nantes) et Jean-Marie NORMAND (Université de Nantes). Ce dernier a bien volontiers pris un peu de son temps de moniteur pour créer, à partir des pages Internet, une version pdf du cours qui se révèle fort utile aux étudiants et donc fort appréciée par eux. Document rédigé par Alain VAILLY, le 16/10/12 à 15:10 Page 3 / 8 Document rédigé par Alain VAILLY, le 16/10/12 à 15:10 Page 4 / 8 Campus International e-mi@ge Module A206 : Programmation fichiers - COBOL Campus International e-mi@ge Module A206 : Programmation fichiers - COBOL Remerciements à Marc Bensmaine, ancien collègue de travail, ayant pendant de nombreuses années assuré cet enseignement à l'IUP MIAGE de l'Université de Nantes, parti depuis à la retraite et à Marc Guyomard pour sa contribution à la définition propre de l'algorithmique de fichiers. Le cours qu'il a dispensé dans les années 198090, au département Informatique de l'IUT de Lannion, et le polycopié qu'il a pris la peine de rédiger ont servi de bases au chapitre consacré à la cinématique de fichiers. Remerciements, enfin, à tous les étudiants qui ont "subi" cet enseignement et qui nous ont fait la grâce de ne pas trop s'en plaindre. Bibliographie Notations Des livres traitant du langage COBOL, il y en a plein. Le site http://www.grandsysteme.com/ en recense un certain nombre (il fournit aussi une série de liens sur des sites proposant des livres COBOL). Le site http://www.programmingtutorials.com/cobol.aspx en recommande six, tous en anglais. Décrire un langage, quel qu'il soit, requiert ce qu'il est convenu d'appeler un métalangage, un langage pour décrire le langage. Celui que nous utilisons ici est classique. En voici un exemple, explicitant l'ordre WRITE qui sert pour écrire une ligne dans un fichier séquentiel : NB : cette rubrique a été rédigée en mai 2004. Les informations qu'elle contient, notamment celles résultant de recherches sur Internet, sont datées, c'est-à-dire qu'elles correspondent à ce que nous avions trouvé sur le Net à cette époque. Ces données numériques auront sûrement changé lors de votre consultation. Le COBOL Center Bookstore répertorie soixante dix-huit livres, tous en anglais, classés en neuf catégories : Aide aux informaticiens cherchant du travail (sic !), COBOL pour débutants, COBOL pour programmeurs confirmés, Bases de données, Programmation structurée, Gros systèmes, CISC et IMS, PC et client/serveur, Objets. Le site Internet de vente en ligne de livres Amazon.fr recense 111 titres français "autour" de COBOL. Sur ces 111, moins d'une dizaine étaient disponibles en mai 2004. Le même site fournit pas moins de 789 références d'ouvrages anglais. Celui qui figure en page d'accueil est le suivant : Il est publié aux Éditions Eyrolles, en est à sa quatrième édition -un gage de succès- et contient un compilateur Fujitsu 4.0. Il coûtait, en mai 2004, moins de quarante euros. Voici la symbolique utilisée : • • • • • un mot souligné est un mot obligatoire ; un [bout de phrase entre crochets] correspond à un morceau optionnel ; un mot en MAJUSCULES est un mot réservé COBOL ; un mot Capitalisé est une variable. Le programmeur doit l'instancier. un groupe de mots ou un groupe de groupes de mots entre {accolades} -en général, ils vont par pairescorrespond à un choix à faire. 7A C. LAMONTAGNE, COBOL : du PC au mainframe, Loze-Dion éditeur Inc, Montréal (Québec), 1998, ISBN n° 2-291180-52-9. L.R. NEWCOMER, Programmation en COBOL structuré, Série SCHAUM, Mac Graw Hill, Paris, ISBN 27042-1107-8, 1992 Voici quelques instructions WRITE conformes à ce que nous avons écrit précédemment : 1 Pour rédiger ce cours, nous avons utilisé les ouvrages suivants : B WRITE LIGNE S.M. BERNARD, System 360 Cobol, Prentice Hall, inc. Englewoods Cliffs, New Jersey, 1968 WRITE LIGNE FROM ZONE R.L. JONES, Fundamental Cobol for IBM system/360, Prentice Hall, inc. Englewoods Cliffs, New Jersey, 1969 WRITE LIGNE AFTER 3 Y. TALLINEAU, Cobol, langage simple de programmation, Editions Sedes Informatique, Paris, 1970 WRITE LIGNE BEFORE ADVANCING PAGE J.L. GROBOILLOT, M.A. LEBLANC et J. CICUREL, Cobol initation pratique, Collection L'informathèque, Ent. moderne d'édition, Paris, 1970 Mario V. FARINA, Cobol simplified, Prentice Hall, inc. Englewoods Cliffs, New Jersey, 1968 C. BONNIN, Le COBOL A.N.S avec exercices pratiques et corrigés, Editions Eyrolles, 1984 Document rédigé par Alain VAILLY, le 16/10/12 à 15:10 Page 5 / 8 Document rédigé par Alain VAILLY, le 16/10/12 à 15:10 Page 6 / 8 Campus International e-mi@ge Module A206 : Programmation fichiers - COBOL Les références en gras sont celles qui ont été plus particulièrement utilisées pour la construction de ce cours. Cours Web Lorsque nous terminions ce cours, en mai 2004, nous avons été faire un tour sur la toile. Nous avons lancé Google, le moteur de recherche bien connu, et lui avons fourni le mot-clé COBOL. 0,42 secondes plus tard, il nous donnait pas moins de 1 160 000 références de sites contenant ce mot. Afin de réduire (un peu !) le champ de nos recherches, un second mot-clé lui a été donné, langage. En 0,73 secondes, Google produisait 23 500 adresses de sites contenant COBOL et langage. La matière est donc en abondance. Nous n'avons pas exploité la totalité des liens proposés. Nous avons néanmoins trouvé de très nombreux cours en ligne. Plus exactement, nous avons trouvé beaucoup d'annonces de cours en ligne. Pour en avoir le coeur net, nous avons relancé Google et lui avons fourni un mot-clé supplémentaire, cours. Le résultat fut surprenant. Ce cours (oui, celui que vous êtes en train de parcourir) est arrivé en premier. Parmi les 7 210 liens fournis (en 0,94 secondes), nous avons trouvé quelques références qui nous semblent intéressantes et notamment : • Campus International e-mi@ge Module A206 : Programmation fichiers - COBOL En guise de conclusion... provisoire Pour ceux qui douteraient (encore !) de l'actualité d'un tel langage, une anecdote et un clin d'oeil. L'anecdote nous a été rapportée par un ingénieur d'une grande société de services française. Ne trouvant plus de jeunes informaticiens formés (initiés...) au Cobol, cette SSII en est réduite à mettre sur pied des formations à ce langage et regrette qu'il ait disparu des programmes des universités et écoles (NB : pas à Nantes...). Ceci se passait en mars 2007 ! Le clin d'oeil est un des plus célèbres de la France informaticienne, celui de Zévar. Il paraît chaque semaine dans la revue 01 Informatique et croque, illustre, à sa façon, un trait de notre microcosme. Voici celui qui a paru le 4 mai 2007 : en anglais http://www.csis.ul.ie/cobol/ (cours très complet produit par l'université de Limerick en Irlande, avec exercices, downloads...) http://www.techiwarehouse.com/Cobol/Cobol_Tutorial.html (cours très complet, sans exercices, proposé par une compagnie privée) • en français http://home.nordnet.fr/~mferon/cobol/as400in.htm (cours d'initiation à la programmation COBOL sur AS400, assez complet, sans exercices, par un individuel -semble-t-il un étudiant de l'IUT de Villeneuve d'Ascq) Sans plus de commentaire... Tous sont, bien entendu, gratuits et pour l'instant téléchargeables. Il y en a bien d'autres ! 16/10/12 Outils http://www.adtools.com/student/index.htm#3 (un site référençant diverses ressources pour étudiants), http://www.grandsysteme.com/ (un site référençant tout ou presque sur ce langage, qu'il s'agisse de cours, de compilateurs en ligne, gratuits ou payants, de livres...), http://www.infogoal.com/cbd/cbdhome.htm (un portail dédié au langage COBOL, très complet) Avis des lecteurs Nous recevons, assez souvent, des messages de personnes qui ont trouvé ce module, qui suivent le cours, posent des questions (le plus souvent pertinentes) et nous donnent leur avis. Nous avons décidé d'en faire profiter tout le monde. Cette nouvelle rubrique, l'avis des lecteurs, recueillera leurs opinions, qu'elles soient bonnes ou mauvaises. reçu le 21 juillet 2009, de quelqu'un qui réside dans la région Ile de France et que nous appellerons M. Un petit mail pour tout simplement vous remercier sur l'excellent cours de COBOL que vous mettez à la disposition de tous sur le site de l'université de Nantes. Je ne suis pas programmeur de par ma formation (Master SeCReTs de l'université Saint Quentin en Yveline), mais les technologies mainframe m'intéressent grandement notamment dans le domaine de la monétique. Je suis votre cours pas à pas, et je le trouve très clair et bien ordonnancé, c'est rare Bravo et merci. Très cordialement, Document rédigé par Alain VAILLY, le 16/10/12 à 15:10 Page 7 / 8 Document rédigé par Alain VAILLY, le 16/10/12 à 15:10 Page 8 / 8