
retour sur quelques détails clés de la vie du langage
De 1960 à aujourd'hui, le monde informatique a énormément évolué, de la conception des ordinateurs à l'avènement d'Internet, en passant par les langages de programmation. Au fil des ans, ces derniers sont devenus davantage concis, plus performants et plus sûrs, avec plusieurs paradigmes de programmation. Pascal, né pendant les premières années de la programmation structurée, fête aujourd'hui ses 50 ans. Utilisé dans le développement logiciel, Pascal est surtout très présent dans l'enseignement. Alors, que vaut-il aujourd'hui face à une concurrence plus sûre et plus performante ?
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...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.