Pascal (langage)

Pascal
Date de première version 1970
Paradigme générique, orientée objet, structurée, impératif
Auteur Niklaus Wirth
Typage statique, fort, nominatif
Dialectes ISO Pascal, UCSD Pascal, Turbo Pascal, Apple Pascal, Delphi, Free Pascal
Influencé par Algol, Fortran
A influencé Ada, Modula-2, Modula-3, Oberon
Implémentations CDC 6000, PASCAL-P, PDP-11, PDP-10, IBM System/370, HP, GNU Pascal, Delphi, Free Pascal, Lazarus
Extension de fichier pp, p et pasVoir et modifier les données sur Wikidata

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 programmes[1].

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), 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ées[2],[3].

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 2009[4] et dans Free Pascal depuis la version 2.2[5],[6].

Le système d'exploitation Domain/OS (en) des ordinateurs Apollo[7], ainsi qu'une partie du système du Macintosh ont été écrits en Pascal. La première version d'Adobe Photoshop également[8]. 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 Pascal[9].

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

Présentation et histoire

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[10]) 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 6400[1],[11].

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ées[12].

Des compilateurs ont été produits pour divers ordinateurs, notamment des fabricants Sun[13], HP[14], SGI[15], CDC[16], IBM[17], Unisys[18], Texas Instruments[19].

Le Pascal a fait l'objet des normes ISO 7185 (1983)[20] et ISO 10206 (1990)[21].

Les fichiers sources

Avant l'apparition des bibliothèques, Turbo Pascal permettait d'utiliser des Overlay (en), technique habituelle sous DOS pour les programmes de grande taille[22].

Le Turbo Pascal

Le logiciel Turbo Pascal a été écrit par Anders Hejlsberg[23],[24] : il s'est appelé auparavant Compass Pascal, puis Poly Pascal. Très compact (12 kilooctets) 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é une version 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 FireMonkey (en)
  • 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 Phillip J. Plauger (en) 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 Rational Fortran (en). Le but était de fournir, en langage Pascal, des programmes complets et utiles[25], bien documentés, et montrant comment écrire de « bons » programmes. À noter que Niklaus Wirth avait publié en 1979 une collection de programmes visant un objectif similaire[26]. 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 Language[27], 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 1978 [28].

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 Software[29], organisée en 1978 par le Jet Propulsion Laboratory et l'ACM SIGNUM[30], une des présentations[31] 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 eux[32].

Évolution de Pascal

Delphi et Free Pascal fournissent le type AnsiString[33], 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'ALESUP[34] et l'IREM de Marseille, était également mise à disposition des lycées[35],[36],[37].

A l'Université Nice Sophia-Antipolis, un langage "maison" avait été développé par un professeur : le SuperPascal. Compilateur et éditeur tenaient sur moins d'une disquette et se lançait sous l'invite de commande DOS.

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 Pascal[38].

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 2004[39].

Annexes

Sur les autres projets Wikimedia :

Articles connexes

Bibliographie

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

Notes et références

  1. a et b Summary of projects by N. Wirth, 1962 - 1999
  2. The Programming Language Pascal (Revised Report), Niklaus Wirth, ETH Zurich, 1973
  3. An Axiomatic Definition of the Programming Language Pascal, C. A. R. Hoare, Niklaus Wirth, ETH Zurich, 1972
  4. Delphi 2009 Reviewers Guide
  5. Generics - Free Pascal wiki
  6. Generics dans le manuel de référence de Free Pascal
  7. Documentation des ordinateurs Apollo
  8. Computer History Museum - Adobe Photoshop Source Code
  9. A Brief History of GCC
  10. André Loranger, Dictionnaire biographique et historique de la micro-informatique, (ISBN 2-89544-006-9), p. 141
  11. The CDC 6000 Series Computer
  12. Documentation pour la programmation de l'Apple II GS
  13. Documentation du Pascal de Sun
  14. Documentation du Pascal pour OpenVMS (voir aussi ici)
  15. Documentation du Pascal de SGI « Copie archivée » (version du sur Internet Archive)
  16. Documentation du Pascal sur CDC Cyber
  17. Documentation du Pascal pour IBM 370
  18. Documentation de Pascal-83 pour serveurs ClearPath d'Unisys
  19. Documentation du Pascal pour TI-990
  20. ISO 7185 sur le site de Karl Kleine
  21. ISO 10206 sur le site de Karl Kleine
  22. Use 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
  23. Memories of Turbo Pascal version 1.0 - Anders Hejlsberg, United States, sur le blog de David Intersimone
  24. Anders Hejlsberg, Microsoft Technical Community Network - Awards and Recognitions
  25. Programmes du livre Software Tools de Kernighan et Plauger
  26. A collection of Pascal Programs, Niklaus Wirth, ETH Zurich, 1979
  27. Why Pascal is not my Favourite Language « Copie archivée » (version du sur Internet Archive)
  28. on peut considérer Modula comme une réponse au moins partielle à ces critiques
  29. Proceedings, Conference on the Programming Environment for Development of Numerical Software, 1978 (voir aussi ici)
  30. ACM Special Interest Group on Numerical Mathematics
  31. Présentation de Dennis Volper, membre de l'équipe développant le Pascal UCSD - p. 64 des Proceedings
  32. John Reagan, Pascal Standards FAQ
  33. Free Pascal Reference Guide, section 3.2.4 - Ansistrings
  34. ALESUP : Atelier logiciel de l'enseignement supérieur - Centre international de rencontres mathématiques (CIRM)
  35. Jean-Louis Maltret et Robert Rolland, Mathématiques Algorithmique et Informatique Ellipses, 1994 (ISBN 2-7298-9410-1)
  36. Patrick Cousot, Introduction à l'algorithmique numérique et à la programmation en Pascal, cours et exercices, McGraw-Hill, 1987 (ISBN 2-7042-1173-6)
  37. Bruno Petazzoni, L'informatique dans les classes préparatoires aux grandes écoles, Revue de l'EPI (Enseignement Public et Informatique), n°101 (2001)
  38. Denis Monasse Point sur le programme de l'option informatique en classe MPSI (première année), compte rendu du débat de Luminy (1997)
  39. Pierre 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

Liens externes

Banques de données, dictionnaires et encyclopédies

Read other articles:

Sporting event delegationTunisia at the2022 World Aquatics ChampionshipsFlag of TunisiaFINA codeTUNNational federationTunisian Swimming Federationin Budapest, HungaryCompetitors2 in 1 sportMedals Gold 0 Silver 0 Bronze 0 Total 0 World Aquatics Championships appearances197319751978198219861991199419982001200320052007200920112013201520172019202220232024 Tunisia competed at the 2022 World Aquatics Championships in Budapest, Hungary from 18 June to 3 July.[1] Swimming Main article: Swimmi...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: The Best of Village People – news · newspapers · books · scholar · JSTOR (June 2015) (Learn how and when to remove this template message) 1994 greatest hits album by Village PeopleThe Best of Village PeopleGreatest hits album by Village PeopleReleasedMa...

 

Through a Glass DarklyPoster Swedia asliSutradara Ingmar Bergman Produser Allan Ekelund Ditulis oleh Ingmar Bergman PemeranHarriet AnderssonGunnar BjörnstrandMax von SydowLars PassgårdPenata musikErik NordgrenJohann Sebastian BachSinematograferSven NykvistPenyuntingUlla RygheDistributorJanus FilmsTanggal rilis 16 Oktober 1961 (1961-10-16) Durasi89 menitNegara Swedia Bahasa Swedia Through a Glass Darkly (bahasa Swedia: Såsom i en spegel) adalah sebuah film Swedia 1961 yang di...

「NPB」はこの項目へ転送されています。その他の用法については「NPB (曖昧さ回避)」をご覧ください。 「日本プロ野球」はこの項目へ転送されています。 これを含む日本で行われているプロ野球の全体については「日本のプロ野球」をご覧ください。 [注 1]日本テレビ系列のプロ野球中継については「DRAMATIC BASEBALL」をご覧ください。 野球 > プロ野球/日本の

 

Carrie Sampul edisi pertamaPengarangStephen KingNegaraAmerika SerikatBahasaInggrisGenreHororEpistolari TragediPenerbitDoubledayTanggal terbit5 April 1974Jenis mediaCetak (sampul keras)Halaman199ISBNISBN 978-0-385-08695-0 Carrie adalah novel epistolari Amerika Serikat dan novel pertama penulis Stephen King yang dirilis pada tanggal 5 April 1974 dengan cetakan pertama sekitar 30.000 eksemplar.[1] Dengan latar waktu maju tahun 1979, novel ini mengisahkan mengenai Carrietta Carr...

 

В Википедии есть статьи о других людях с такой фамилией, см. Дудаев. Леча Дудаев Леча Дудаев Мэр Грозного 1996 — 30 января 2000 года Предшественник Якуб Дениев Преемник Супьян Адамович Махчаев Рождение 1961Грозный, Чечено-Ингушская АССР, РСФСР, СССР Смерть 31 января 2000(2000-01-31)Гр...

Championnats du monde juniors de natation Généralités Sport Natation sportive Création 2006 Organisateur(s) FINA Périodicité Bisannuelle Participants ♂ 15–18 ans♀ 14–17 ans Site web officiel fina.org Pour la compétition en cours voir : Édition 2023 modifier Les Championnats du monde juniors de natation sont une compétition mondiale de natation sportive organisée par la Fédération internationale de natation (FINA) et réservée aux juniors, des nageurs et des nage...

 

Indian multinational technology company Tata Consultancy Services LimitedTCS campus at SIPCOT, Chennai, Tamil NaduTypePublicTraded asBSE: 532540NSE: TCSBSE SENSEX ConstituentNSE NIFTY 50 ConstituentISININE467B01029IndustryInformation technologyConsultingOutsourcingFounded1968; 55 years ago (1968)FounderJ. R. D. TataHeadquartersMumbai, Maharashtra, IndiaArea servedWorldwideKey peopleNatarajan Chandrasekaran (Chairman) K Krithivasan (CEO and MD)Revenue ₹228,907 cro...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Castlehill, County Mayo – news · newspapers · books · scholar · JSTOR (December 2009) (Learn how and when to remove this template message) Village in Connacht, IrelandCastlehill CaorthannánVillageHouses on Castlehill RoadCastlehillLocation in IrelandCoordinate...

This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: The Blunder – news · newspapers · books · scholar · JSTOR (August 2011) The Blunder (Czech: Ptákovina) is a Czech play by Milan Kundera. Productions Činoherní klub, Prague Directed by Ladislav Smoček. Preview was 9 June 2008, 11 June 2008 and 13 J...

 

Anti-tank gun A407 100mm anti-tank gun M1977 A407 gun of the 612th Anti-tank Battalion.TypeAnti-tank gunPlace of originSocialist Republic of RomaniaService historyIn service1975–presentWarsGulf WarProduction historyManufacturerArsenal ReşiţaSpecificationsMass3,150 kg (6,940 lb)Length9.250 mBarrel length4.630 mWidth2.250 mHeight1.530 mCrew8Shell100 x 695 mmRCaliber100 millimetres (3.9 in)Elevation−5°/+37°Traverse27°30' left and rightRate of ...

 

Indian actor In this Indian name, the name Narayanapillai is a patronymic, and the person should be referred to by the given name, Vijayaraghavan. For the surname, see Vijayaraghavan (surname). This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (February 2013) (Learn how and when to remove this template message) VijayaraghavanBornNarayanapillai Vijayaraghavan (19...

Territorio donde se habla. El Idioma surigaense, también conocido como Idioma surigaonón, es una lengua bisaya hablada por en Filipinas, concretamente en las provincias de Surigao del Norte, Islas Dinagat, Surigao del Sur y algunas partes de Agusan del Norte, en especial los pueblos cercanos al lago Mainit, Agusan del Sur y Davao Oriental. Su similitud con el idioma cebuano obedece la fuerte inmigración cebuana que ha aportado abundante léxico. Pese a todo las personas que hablan cebuano ...

 

2017 single by Bazzi BeautifulSingle by Bazzifrom the album Cosmic ReleasedJuly 2, 2017GenrePopR&BLength2:58LabeliamcosmicAtlanticSongwriter(s)Andrew BazziKevin Clark WhiteMichael Clinton Woods[1]Producer(s)Will PattersonBazzi singles chronology Sober (2016) Beautiful (2017) Mine (2017) Music videoBeautiful on YouTube Beautiful is a song by American singer Bazzi, initially self-released digitally on July 2, 2017. The song was later featured as the 13th track on the album Cosmi...

 

Ancient Israeli system of rule by Biblical judges Part of the Politics seriesBasic forms of government List of forms of government Source of power Democracy (rule by many) Demarchy Direct Liberal Representative Social Socialist Others Oligarchy (rule by few) Anocracy Aristocracy Gerontocracy Kleptocracy Kritarchy Meritocracy Noocracy Particracy Plutocracy Stratocracy Technocracy Theocracy Autocracy (rule by one) Despotism Dictatorship Military dictatorship Tyranny Anarchy (rule by none) Anarc...

For other uses, see George Westinghouse Award (disambiguation). George Westinghouse AwardAwarded fora young engineering educator of outstanding ability to recognize and encourage his or her contributions to improving engineering teachingPresented byAmerican Society for Engineering EducationFirst awarded1946Last awarded1999 The George Westinghouse Award, named after George Westinghouse, was given by the American Society for Engineering Education (ASEE) for outstanding contributions to engineer...

 

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help to improve this article by introducing more precise citations. (October 2010) (Learn how and when to remove this template message) This article needs to be updated. Please help update t...

 

こやま けいぞう小山 敬三 生誕 (1897-08-11) 1897年8月11日 日本•長野県北佐久郡小諸町(現長野県小諸市)死没 (1987-02-07) 1987年2月7日(89歳没) 日本•神奈川県教育 長野県立上田中学校(現長野県立上田高等学校)卒業慶應義塾大学理財科中退代表作 『白鷺城』『浅間山』家族 小山久左衛門(父) 小山邦太郎(兄) 井出一太郎(姪の夫) 井出正一(姪の子) 井出庸生(姪の孫)   デー...

Provinsi GulfProvinsi BenderaNegaraPapua NuginiIbu kotaKeremaDistrik Daftar Distrik KeremaDistrik Kikori Pemerintahan • GubernurHavila Kavo (2007-)Luas • Total34.472 km2 (13,310 sq mi)Populasi (sensus 2011) • Total158.197 • Kepadatan4,6/km2 (12/sq mi)Zona waktuUTC+10 (AEST) Provinsi Gulf adalah provinsi yang terletak di pantai selatan Papua Nugini. Ibu kota provinsi adalah Kerema. Provinsi didominasi oleh pegunungan, dat...

 

1962 children's novel by James Krüss You can help expand this article with text translated from the corresponding article in German. (October 2011) Click [show] for important translation instructions. View a machine-translated version of the German article. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy-pasting machine-t...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!