Pascal : comment le langage de programmation est-il né ?
Pascal est un langage de programmation publié pour la première fois en 1970. Son auteur, Niklaus Wirth, s'est inspiré de ses travaux précédents sur l'Algol W dont il n'était pas totalement satisfait. En effet, à la fin des années 1950, les langages Fortran (FORmula TRANslator) pour les applications scientifiques et Cobol (COmmon Business Oriented Language) pour les applications commerciales dominaient. En 1960, un comité international a publié le langage Algol 60. C'était la première fois qu'un langage était défini par des constructions formulées de manière concise et par une syntaxe précise et formelle.
Niklaus Wirth, inventeur du langage de programmation Pascal
Environ deux ans plus tard, ses pères ont décidé d'apporter quelques corrections et améliorations au langage, car Algol 60 n'était destiné qu'au calcul scientifique. Un groupe de travail a donc été formé pour ce projet. Toutefois, tout le monde n'était pas d'accord sur les nouvelles spécifications à ajouter au jeune langage, ce qui a donné naissance à deux factions au sein de la communauté. L'une d'entre elles visait un second langage avec des concepts radicalement nouveaux, non éprouvés et avec une flexibilité omniprésente. Wirth ne faisait pas partie de ce sous-groupe dont la proposition fut acceptée et donna naissance plus tard à l'Algol 68.
Il a quitté le groupe vers 1966 et s'est consacré, avec quelques étudiants en doctorat de l'université de Stanford, à la construction d'un compilateur pour la proposition qu'il avait faite. Le résultat a été le langage Algol W en 1967. Il a déclaré que l'Algol W était utilisé sur de nombreux gros ordinateurs IBM. Wirth raconte qu'Algol W a connu un grand succès comparativement à l'Algol 68. « Le jalon Algol 68 est apparu, puis a rapidement sombré dans l'obscurité sous son propre poids, bien que certains de ses concepts aient survécu dans les langages suivants », a-t-il déclaré.
Cependant, Algol W n'était pas parfait à son goût, car il contiendrait encore trop de compromis, étant donné qu'il était issu d'une commission. Wirth entreprit alors de nouveaux travaux et parvint à développer un tout nouveau langage en fonction de ses propres préférences qu'il appelle Pascal. Dans un mémo sur le site de l'ACM (Association for Computing Machinery), une association internationale à but non lucratif vouée à l'informatique, il a déclaré que ce travail lui a réservé beaucoup de surprises et que ses collaborateurs et lui ont vécu une expérience désastreuse pendant le développement.
Ils voulaient décrire le compilateur en Pascal lui-même, le traduire manuellement en Fortran, et enfin compiler le premier avec le second. Wirth a déclaré que cela fut un grand échec, notamment en raison de l'absence de structures de données en Fortran, ce qui a rendu la traduction très lourde. Toutefois, un second essai lui a réussi, où au lieu du Fortran, le langage Scallop a été utilisé. Notons que Wirth fut professeur-assistant à l'université de Stanford de 1963 à 1967, puis à l'université de Zurich. Il devient ensuite professeur d'informatique à l'EPFZ (École polytechnique fédérale de Zurich), avant de prendre sa retraite en avril 1999.
Pascal : un langage conçu pour être facile à enseigner
Wirth a déclaré que, comme son précurseur Algol 60, Pascal comportait une définition précise et quelques éléments de base lucides. Les instructions décrivaient les affectations de valeurs aux variables et les exécutions conditionnelles et répétées. En outre, il y avait des procédures, et elles étaient récursives. Selon l'auteur, les types et les structures de données constituaient une extension importante et ses types de données élémentaires étaient les nombres entiers et réels, les valeurs booléennes, les caractères et les énumérations (de constantes).
Les structures étaient des tableaux, des enregistrements, des fichiers (séquences) et des pointeurs. Les procédures comprenaient deux types de paramètres : les paramètres de valeur et les paramètres variables. Les procédures pouvaient être utilisées de manière récursive. Selon lui, le plus essentiel était le concept omniprésent de type de données. Chaque constante, variable ou fonction était de type fixe et statique. Les programmes comprenaient donc beaucoup de redondance qu'un compilateur pouvait utiliser pour vérifier la cohérence des types de données. Cela contribuait à la détection des erreurs, et ce avant l'exécution du programme.
Cependant, Wirth a déclaré qu'en voulant écrire Pascal, il a tenu compte du fait que les suppressions étaient tout aussi importantes que l'ajout de fonctions. Autrement dit, selon lui, un langage se caractérise non seulement par ce qu'il permet aux programmeurs de spécifier, mais plus encore par ce qu'il ne permet pas. Alors, dans Pascal, il a omis le paramètre de nom d'Algol. Il serait rarement utilisé, et causerait des complications considérables pour un compilateur. Il a également supprimé le concept propre d'Algol et la déclaration d'Algol a été radicalement simplifiée.
Wirth a déclaré que ce dernier point a permis d'éliminer les constructions complexes et difficiles à comprendre. Toutefois, les déclarations "while" et "repeat" ont été ajoutées pour des situations de répétition simples et transparentes. Néanmoins, la déclaration "goto" controversée est restée. « J'ai estimé qu'il était trop tôt pour que la communauté des programmeurs avale son absence. Cela aurait été trop préjudiciable pour une acceptation générale de Pascal », a-t-il déclaré par rapport à ce choix. En gros, il a conçu Pascal pour qu'il soit facile à enseigner, simple, clair et efficace. Au plan didactique, Pascal privilégie l'analyse.
En ce qui concerne la clarté, Pascal se caractérise par une syntaxe rigoureuse facilitant la structuration des programmes. Notons que la programmation structurée dérive de travaux de Wirth pour son Algol W. Enfin, Pascal se veut efficace, car il privilégie les mécanismes statiques. « Pascal se fit remarquer dans plusieurs universités, et l'intérêt pour son utilisation dans les classes augmenta », a déclaré Wirth.
Les successeurs de Pascal et les nouveaux langages
Dans son mémo, Wirth a déclaré qu'après la publication de Pascal, qu'il a trouvé convivial et très utile, le temps ne s'est pas arrêté pour autant. Les ordinateurs sont rapidement devenus plus rapides, et donc les demandes sur les applications ont augmenté, ainsi que celles sur les programmeurs. Un logiciel n'était plus développé par une seule personne, les programmes étaient maintenant écrits par des équipes. Une seule personne pourrait concevoir une partie d'un système, appelée module, mais pas tout le système.
Elle le fait relativement indépendamment des autres modules. Les modules seraient plus tard liés et chargés automatiquement. Selon Wirth, Fortran avait déjà offert cette fonctionnalité, mais désormais un éditeur de liens devrait également vérifier la cohérence des types de données. « Ce n'était pas une question simple », a-t-il déclaré. Par la suite, il a publié le premier successeur de Pascal appelé Modula, puis le second appelé Modula-2 en 1977. Ce dernier s'est concentré sur les modules permettant la vérification de la cohérence des types de données. Modula-2 a été créé à partir de Pascal, mais aussi de Mesa.
Mesa est un langage développé par PARC (Palo Alto Research Center), un centre de recherches en informatique situé à Palo Alto en Californie, pour la programmation système. Avec l'aide de Jürg Gutknecht, il créa ensuite le langage Oberon entre 1985 et 1987 et le publia en 1988. Wirth a déclaré qu'il a créé Oberon, car Modula-2 était devenu trop complexe et trop compliqué, en particulier pour l'enseignement de la programmation. Avec la sortie d'Oberon, plusieurs propriétés ont été éliminées, l'extension de type fut introduite et sa syntaxe ressemblait au Pascal original. Selon son auteur, même si Oberon est encore utilisé dans de nombreux systèmes au aujourd'hui, il n'a pas connu le même succès que Pascal.
Toutefois, il a ajouté que de nombreux langages apparus plus tard, comme Java (Sun Microsystems) et C# (Microsoft), ont été fortement influencés par Oberon ou Pascal. Enfin, en 1995, Wirth a développé le langage Lola pour la description synchrone des circuits numériques. Plus précisément, il a conçu le langage pour enseigner la conception numérique sur des réseaux de portes programmables (FPGA - Field-programmable gate) à des étudiants en informatique alors qu'il était professeur à l'ETH Zurich. Pascal a maintenant 50 ans et semble être désormais réservé uniquement aux systèmes hérités.
Il serait également encore présent dans certains systèmes éducatifs. Cependant, selon certains, Pascal conserve aujourd'hui une niche sur le marché à travers Delphi, un langage basé sur Pascal, Free Pascal, un compilateur pour le langage Pascal, et Lazarus, un EDI multiplateforme basé sur Free Pascal. Selon eux, de nombreux logiciels gratuits, partagés, open source et commerciaux à petite échelle sont encore écrits en Pascal/Delphi. Mais, malgré cela, les index, comme Tiobe, montrent que Delphi, ainsi qu'Object Pascal, un langage orienté objet dérivé du Pascal, sont en perte de vitesse.
Source : Niklaus Wirth
Et vous ?
Quel est votre avis sur le sujet ?
Le langage Pascal sera-t-il là encore pour longtemps ?
Pensez-vous que Pascal est mieux pour l'enseignement et devrait se consacrer uniquement à cela ?
Voir aussi
Le langage de programmation Cobol fête ses 60 ans. Peut-il encore tenir longtemps face à la concurrence des nouveaux langages ?
Classements TIOBE et PYPL : Python gagne en popularité, mais Java demeure le leader incontestable
Embarcadero annonce la sortie de Delphi, C++ Builder et RAD Studio 10.4.2, qui apportent des fonctionnalités permettant aux développeurs d'améliorer leurs activités courantes dans l'EDI
Python et C++ sont les langages qui ont connu la plus forte croissance de popularité sur l'année 2020, selon les statistiques de l'index TIOBE