Pascal est un langage de programmation impératif conçu pour l'enseignement. Il se caractérise par une syntaxe claire, rigoureuse et facilitant la structuration des programmesSummary of projects by N. Wirth, 1962 - 1999.

En dehors de la syntaxe et de sa rigueur, le langage Pascal possède des points communs avec le C (voir les pointeurs), le Java (le PCode de 1977 avec UCSD Pascal) et le C++ (orienté objet). Le langage Pascal de base était conçu à usage purement éducatif et était assez limité. Par exemple, les chaînes de caractères, absentes du langage d'origine, ont rapidement été intégréesThe Programming Language Pascal (Revised Report), Niklaus Wirth, ETH Zurich, 1973 An Axiomatic Definition of the Programming Language Pascal , C. A. R. Hoare, Niklaus Wirth, ETH Zurich, 1972..

Les développements qu'il a connus par la suite en ont fait un langage complet et efficace. Plus récemment, la généricité a été ajoutée dans Delphi 2009Delphi 2009 Reviewers Guide. et dans Free Pascal depuis la version 2.2Generics - Free Pascal wikiGenerics dans le manuel de référence de Free Pascal..

Le système d'exploitation des ordinateurs ApolloDocumentation des ordinateurs Apollo, ainsi qu'une partie du système du Macintosh ont été écrits en Pascal. La première version d'Adobe Photoshop égalementComputer History Museum - Adobe Photoshop Source Code.. Le compilateur GCC a été développé par Richard Stallman à partir d'un compilateur du LLNL, qui était écrit en langage Pastel, une extension du langage PascalA Brief History of GCC..

La syntaxe du langage a été adaptée à d'autres langages comme Ada, Modula-2 (puis Modula-3) ou Oberon.

Présentation et histoire vignette|Niklaus Wirth, créateur du langage de programmation "Pascal" , lors de sa visite de la Ural State University Le langage de programmation Pascal (dont le nom vient du mathématicien français Blaise Pascal) a été inventé par Niklaus Wirth dans les années 1970 avec l'aide d'un de ses étudiants, Urs Amman. Il a été conçu pour servir à l'enseignement de la programmation de manière rigoureuse mais simple, en réaction à la complexité d'Algol 68. Le premier compilateur a été conçu sur un CDC 6400The CDC 6000 Series Computer.

Le compilateur UCSD Pascal, de l'université de Californie à San Diego, eut beaucoup de succès, notamment sur des machines comme l'Apple II qui furent très diffuséesDocumentation pour la programmation de l'Apple II GS.

Des compilateurs ont été produits pour divers ordinateurs, notamment des fabricants SunDocumentation du Pascal de Sun, HPDocumentation du Pascal pour OpenVMS (voir aussi ici), SGIDocumentation du Pascal de SGI , CDCDocumentation du Pascal sur CDC Cyber, IBMDocumentation du Pascal pour IBM 370, UnisysDocumentation de Pascal-83 pour serveurs ClearPath d'Unisys, Texas InstrumentsDocumentation du Pascal pour TI-990.

Le Pascal a fait l'objet des normes ISO 7185 (1983)ISO 7185 sur le site de Karl Kleine et ISO 10206 (1990)ISO 10206 sur le site de Karl Kleine.

Les fichiers sources Avant l'apparition des bibliothèques, Turbo Pascal permettait d'utiliser des , technique habituelle sous DOS pour les programmes de grande tailleUse of the Overlay Technique in MS-DOS to Circumvent the 640K Conventional Memory Barrier, Andrew C. Vogan, Cours CS 450, Automne 2002, université James Madison.

Le Turbo Pascal vignette|Un exemple de code Pascal en cours d'édition dans l'IDE Turbo Pascal 7.0. Le logiciel Turbo Pascal a été écrit par Anders HejlsbergMemories of Turbo Pascal version 1.0 - Anders Hejlsberg, United States, sur le blog de David IntersimoneAnders Hejlsberg, Microsoft Technical Community Network - Awards and Recognitions : il s'est appelé auparavant Compass Pascal, puis Poly Pascal. Très compact () et très rapide car travaillant essentiellement en mémoire vive, il compilait en une passe et produisait du code machine x86 sous DOS et non pas du bytecode. Il était livré avec un environnement complet (un éditeur de texte et une aide en ligne, innovation à l'époque, particulièrement compacte grâce à un système de substitution).

Un exemple de code : Hello World program HelloWorld(output); begin writeln('Hello World'); readln; end.

Compilateurs Parmi les compilateurs encore utilisés aujourd'hui (2013), on peut citer : Free Pascal avec son compilateur fpc et souvent avec l'environnement de développement libre RAD Lazarus, vise à la meilleure compatibilité possible avec Delphi et Turbo Pascal. Il existe sur plusieurs plateformes, facilitant le portage d'un programme d'un environnement à un autre. Delphi, compilateur et environnement de développement « RAD » commercial. Les versions récentes de Delphi fonctionnent sur Windows et MacOS X. Au début des années 2000, Borland a tenté pour Linux, Kylix, qui n'a pas eu le succès escompté. Kylix utilisait la CLX, framework ressemblant à la VCL, mais utilisable sur les deux systèmes d'exploitation. Dans Delphi XE2, Embarcadero a introduit le même principe de compatibilité entre systèmes, avec GNU Pascal, dont le but est la compatibilité avec la norme ISO : il implémente complètement l'ISO 7185, et en grande partie l'ISO 10206. Son développement n'est plus actif depuis 2006.

Critique du langage En 1981, Brian Kernighan et publient le livre Software Tools in Pascal, réédition de leur ouvrage précédent, Software Tools, publié en 1976, et qui employait le langage . Le but était de fournir, en langage Pascal, des programmes complets et utilesProgrammes du livre Software Tools de Kernighan et Plauger, bien documentés, et montrant comment écrire de « bons » programmes.

Niklaus Wirth avait publié en 1979 une collection de programmes visant un objectif similaireA collection of Pascal Programs, Niklaus Wirth, ETH Zurich, 1979. Les Software Tools étaient écrits dans le langage défini par l'ouvrage de Kathleen Jensen et Niklaus Wirth, Pascal User Manual and Report de 1978, et par la proposition de standard ISO. La même année, Brian Kernighan publia l'article Why Pascal is not my Favourite LanguageWhy Pascal is not my Favourite Language , dans lequel il dénonçait les défauts qu'il voyait dans le langage, et qui selon lui empêchaient de l'utiliser pour de la « programmation sérieuse ». L'article partait de son expérience avec l'ouvrage précédent, et de la comparaison qu'il avait pu faire avec le C, dont il assurait par ailleurs la promotion - le livre The C Programming Language, coécrit avec Dennis Ritchie, était sorti en 1978On peut considérer Modula comme une réponse au moins partielle à ces critiques..

Parmi les aspects contestés dans cet article, l'un d'eux rendait la programmation en Pascal particulièrement compliquée : le typage des tableaux, et par voie de conséquence, le typage des chaînes de caractères également. En effet, les dimensions des tableaux font partie du type, en Pascal, ce qui empêche de passer à une fonction des tableaux de taille variable (ou des chaînes de taille variable). Contourner le problème oblige soit à écrire de multiples versions des fonctions qui prennent des tableaux en paramètres, soit à utiliser un type tableau de la taille maximum estimée. Cette dernière « astuce » était fréquemment utilisée dans ce langage ; c'est ainsi que les programmes des Numerical Recipes in Pascal y font systématiquement appel.

Cet inconvénient, toujours présent dans la version définitive du langage ISO 7185 de 1983, était bien connu dans le milieu de l'analyse numérique. Ainsi, lors de la Conference on the Programming Environment for Development of Numerical SoftwareProceedings, Conference on the Programming Environment for Development of Numerical Software, 1978 (voir aussi ici), organisée en 1978 par le Jet Propulsion Laboratory et l'ACM SIGNUMACM Special Interest Group on Numerical Mathematics, une des présentationsPrésentation de Dennis Volper, membre de l'équipe développant le Pascal UCSD - p. 64 des Proceedings montrait l'utilisation possible du Pascal en analyse numérique, et pointait ce problème de passage de tableau, en proposant une syntaxe alternative destinée à être intégrée à une version ultérieure du standard. De fait, elle sera ajoutée en 1990 à l'ISO 10206 Extended Pascal. Ce dernier permet, via les schémas, de créer des types structurés de taille dynamique. De même en Extended Pascal, tous les types chaînes de caractères sont compatibles entre euxJohn Reagan, Pascal Standards FAQ.

Évolution de Pascal Delphi et Free Pascal fournissent le type AnsiStringFree Pascal Reference Guide, section 3.2.4 - Ansistrings, dont la dimension n'est pas limitée, et plus important pour ce qui nous préoccupe ici, ne fait pas partie du type. En réalité, ces chaînes sont des pointeurs dont la gestion est faite de façon transparente pour l'utilisateur.

Descendance et Parenté Au-delà des variations commerciales, un certain nombre d'utilisateurs Pascal soucieux de fiabilité sont passés soit au langage Portal, soit au langage Modula 2 et ses descendants, soit aux langages apparentés comme Ada 83, ou enfin aux langages objets comme Simula, Modula 3, Oberon ou Ada 95.

Pascal dans l'enseignement

En France L'enseignement de l'informatique en classes préparatoires n'est introduit qu'en 1987, basé sur Pascal (plus précisément Turbo Pascal). Une bibliothèque (« MODULOG »), développée par l'ALESUPALESUP : Atelier logiciel de l'enseignement supérieur - Centre international de rencontres mathématiques (CIRM) et l'IREM de Marseille, était également mise à disposition des lycéesJean-Louis Maltret et Robert Rolland, Mathématiques Algorithmique et Informatique Ellipses, 1994 Patrick Cousot, Introduction à l'algorithmique numérique et à la programmation en Pascal, cours et exercices, McGraw-Hill, 1987 Bruno Petazzoni, L'informatique dans les classes préparatoires aux grandes écoles, Revue de l'EPI (Enseignement Public et Informatique), n°101 (2001).

Avec la réforme de 1995, l'enseignement de l'informatique en prépa scientifique est séparé en un tronc commun, basé sur un logiciel de calcul formel, et une matière optionnelle en MPSI et MP basée, au choix, sur Pascal ou Caml. Le succès de ce dernier est tel qu'au « stage de Luminy » en 1997, seulement trois participants choisissent le PascalDenis Monasse Point sur le programme de l'option informatique en classe MPSI (première année), compte rendu du débat de Luminy (1997).

Les prépas BCPST ont suivi un chemin similaire : le Pascal est introduit au programme en 1987, puis retiré au début des années 2000, au profit de MATLAB et Scilab. Le Pascal n'est plus proposé aux concours à partir de 2004Pierre Dieumegard, Comment appliquer l'algorithmique aux sciences expérimentales à partir de logiciels de mathématiques ? Quelques problèmes posés par le programme officiel de classe préparatoire BCPST.

Annexes

Articles connexes Lazarus (logiciel) Delphi (langage) MIDletPascal Virtual Pascal

Bibliographie Niklaus Wirth, Kathleen Jensen, Pascal User Manual and Report: ISO Pascal Standard, 4 éd., Springer, 1991 Niklaus Wirth, Introduction à la programmation systématique ; trad. par Olivier Lecarme / Masson, Paris, 1977 Sanford Leestma, Larry Nyhoff, Pascal Programming and Problem Solving, 4 éd., Prentice Hall, 1993 Nell Dale, Programming in Pascal, Jones and Bartlett, 1997

Notes et références

Liens externes

Banques de données, dictionnaires et encyclopédies

Catégorie:Norme ISO