
Un pionnier de l'informatique nous a quitt�
Niklaus Wirth, un informaticien suisse de renomm�e mondiale, est d�c�d� le 1er janvier 2024 � l��ge de 89 ans. Il �tait connu pour avoir con�u plusieurs langages de programmation, dont le Pascal, et pour avoir contribu� � l�enseignement et � la recherche en informatique.
Niklaus Wirth est n� le 15 f�vrier 1934 � Winterthour, en Suisse. Il a obtenu un dipl�me d�ing�nieur en �lectronique de l��cole polytechnique f�d�rale de Zurich (EPFZ) en 1959, une ma�trise en sciences de l�universit� Laval au Qu�bec en 1960, et un doctorat en g�nie �lectrique et informatique de l�universit� de Californie � Berkeley en 1963. Il a �t� professeur assistant d�informatique � l�universit� Stanford de 1963 � 1967, puis � l�universit� de Zurich. Il est ensuite devenu professeur d�informatique � l�EPFZ, o� il a pris sa retraite en 1999.
Niklaus Wirth a �t� impliqu� dans le d�veloppement de normes internationales en informatique, en tant que membre du groupe de travail IFIP 2.1 dont la t�che �tait d'am�liorer le langage ALGOL-60. Ce qui aboutit � l'Algol 68. La proposition de Wirth �tait moins ambitieuse : il s'agissait seulement d'une d�rivation de l'ALGOL-60 (qui fut r�alis�e ensuite sous le nom d'ALGOL-W).
D��u par le langage ALGOL X, devenu ALGOL 68, il a d�cid� de travailler seul � Zurich sur son propre langage, bas� sur ses travaux ant�rieurs sur l�ALGOL W. Il a ainsi cr�� le Pascal en 1970, un langage de programmation imp�ratif et structur�, destin� � encourager les bonnes pratiques de programmation et � d�velopper des programmes fiables et efficaces. Le Pascal a �t� nomm� en l�honneur du math�maticien, philosophe et physicien fran�ais Blaise Pascal.
Le Pascal a connu un grand succ�s dans les ann�es 1970, notamment sur le march� �mergent des mini-ordinateurs. Des compilateurs ont �galement �t� disponibles pour de nombreux micro-ordinateurs � la fin des ann�es 1970. Il a �t� largement utilis� comme langage d�enseignement dans les cours de programmation universitaires dans les ann�es 1980, et �galement utilis� dans des environnements de production pour �crire des logiciels commerciaux pendant la m�me p�riode. Il a �t� supplant� par le langage C � la fin des ann�es 1980 et au d�but des ann�es 1990, avec l�essor des syst�mes UNIX et surtout avec la sortie du C++.
Niklaus Wirth a �t� le concepteur principal des langages de programmation Euler (1965), PL360 (1966), ALGOL W (1966), Pascal (1970), Modula (1975), Modula-2 (1978), Oberon (1987) et Oberon-2 (1991). Il a �galement fait partie de l��quipe de conception et de mise en �uvre des syst�mes d�exploitation Medos-2 (1983, pour la station de travail Lilith) et Oberon (1987, pour la station de travail Ceres), et du syst�me de conception et de simulation de mat�riel num�rique Lola (1995).
En 1995, il �nonce pour la premi�re fois ce qui sera connu sous le nom de loi de Wirth : � les programmes ralentissent plus vite que le mat�riel n'acc�l�re �. Niklaus Wirth attribuait quant � lui cette loi � Martin Reiser.
Les diff�rents langages dont Wirth a �t� le concepteur principal
Euler
Euler est un langage de programmation cr�� par Niklaus Wirth et Helmut Weber, con�u comme une extension et une g�n�ralisation d'ALGOL 60. Les objectifs des concepteurs �taient de cr�er un langage qui soit*:
- Plus simple, mais plus flexible, que l'ALGOL 60
- Utile et trait� avec une efficacit� raisonnable
- D�finissable avec une formalit� rigoureuse
Euler utilise un concept g�n�ral de type de donn�es. Dans Euler, les tableaux, proc�dures et commutateurs ne sont pas des quantit�s d�clar�es et nomm�es par des identifiants : contrairement � ALGOL, ce ne sont pas des quantit�s au m�me niveau que les variables. Ces quantit�s se situent plut�t au niveau des constantes num�riques et bool�ennes. Ainsi, outre les constantes num�riques et logiques traditionnelles, Euler introduit plusieurs types suppl�mentaires*:
Les sources disponibles indiquent qu'Euler �tait op�rationnel en 1965.
PL360
PL360 (ou PL/360) est un langage de programmation syst�me con�u par Niklaus Wirth et �crit par Wirth, Joseph W. Wells Jr. et Edwin Satterthwaite Jr. pour l'ordinateur IBM System/360 de l'Universit� de Stanford. Une description du PL360 a �t� publi�e au d�but de 1968, bien que la mise en �uvre ait probablement �t� achev�e avant que Wirth ne quitte Stanford en 1967. Il est apparu pour la premi�re fois en 1966.
PL/360 est un compilateur en une seule passe avec une syntaxe similaire � ALGOL qui fournit des fonctionnalit�s pour sp�cifier des instructions exactes de code machine (langage) et des registres similaires au langage assembleur, mais fournit �galement des fonctionnalit�s couramment trouv�es dans les langages de programmation de haut niveau, telles que les expressions arithm�tiques complexes et structures de contr�le. Wirth a utilis� PL360 pour cr�er ALGOL W.
Exemple : R0, R1, R2 et FLAG sont des noms pr�d�clar�s
Code PL360 : | S�lectionner tout |
1 2 3 4 5 6 7 8 9 10 | BEGIN INTEGER BUCKET; IF FLAG THEN BEGIN BUCKET := R0; R0 := R1; R1 := R2; R2 := BUCKET; END ELSE BEGIN BUCKET := R2; R2 := R1; R1 := R0; R0 := BUCKET; END RESET(FLAG); END |
Algol W
Algol W est une version du langage Algol due � Niklaus Wirth, propos�e au comit� Algol 68 pour succ�der � Algol 60. Bien qu'ant�rieure au Pascal, elle �tait plus puissante � certains points de vue. En particulier toute expression ou tout bloc ramenait un r�sultat, ce qui permettait l'�criture d'expressions particuli�rement �l�gantes.
Algol-W est visiblement une �tape transitoire entre Algol 60 et Pascal. Il repr�sente une modification relativement l�g�re d'Algol 60, auquel N. Wirth a ajout� les types de donn�es � string �, � bitstring �, les nombres complexes et les r�f�rences � des enregistrements (structures), ainsi que le passage de param�tres par valeur, sans changer grand-chose d'autre.
Comme tous les autres langages de Wirth (Pascal, Modula-2, Oberon, etc.), Algol-W est un petit langage � typage statique qui diff�re beaucoup moins d'Algol 60 que d'Algol 68, langage nettement plus � gros � et plus complexe.
C'est avec ALGOL W qu'en 1970 Brent programma, sur un IBM 360/67, l'algorithme de multiplication rapide de Strassen, d�montrant son efficacit� pour le produit de deux matrices carr�es de plus de 110 lignes.
Pascal
Pascal se veut didactique, simple, clair, efficace. Au plan didactique, il s'agit de privil�gier l'analyse. Pour la clart�, il se rallie � la programmation structur�e. Pour l'efficacit� (dont Algol 60 put manquer), il privil�gie les m�canismes statiques, et ce qui permet la compilation en une passe (la d�claration pr�c�de toujours l'emploi).
Modula
Le langage de programmation Modula est un descendant du langage Pascal. Il a �t� d�velopp� en Suisse, � l'ETH Zurich, au milieu des ann�es 1970 par Niklaus Wirth, le m�me qui a con�u Pascal. La principale innovation de Modula par rapport � Pascal est un syst�me de modules, utilis� pour regrouper des ensembles de d�clarations associ�es en unit�s de programme*; d'o� le nom Modula. Le langage est d�fini dans un rapport de Wirth intitul� Modula : un langage de multiprogrammation modulaire publi� en 1976.
Modula a �t� impl�ment� pour la premi�re fois par Wirth sur un PDP-11. Tr�s vite, d'autres impl�mentations ont suivi, notamment les compilateurs d�velopp�s pour Modula de l'Universit� de York et celui des laboratoires Philips nomm� PL Modula, qui g�n�rait du code pour le microprocesseur LSI-11.
Le d�veloppement de Modula a �t� interrompu peu de temps apr�s sa publication. Wirth a ensuite concentr� ses efforts sur le successeur de Modula, Modula-2.
Modula-2
Modula-2 est un langage de programmation compil�, proc�dural, fortement typ�, modulaire, facile � lire et � apprendre. Il est con�u pour enseigner la programmation et faciliter le d�veloppement des projets de grande ampleur.
Par rapport � Pascal, il ajoute :
- l'encapsulation en modules � d'o� le nom du langage,
- la notion d'interface, de biblioth�que, d'unit� de compilation ; avec celle-ci, la programmation de haut et de � bas niveau � (permettant la d�finition de primitives ou fonctions de base au niveau le plus physique).
- la programmation concurrente et une bien meilleure portabilit�.
En r�sum�, Modula-2 est plus puissant et plus complet que Pascal. La modularit� �tant mieux con�ue et trait�e qu'en C, Modula-2 s'av�re plus fiable dans les grosses applications.
Wirth a d�clar� que ce langage �tait � celui qu'il aurait aim� concevoir quand il avait con�u Pascal �.
Oberon
Oberon est un langage de programmation � usage g�n�ral publi� pour la premi�re fois en 1987 par Niklaus Wirth et le dernier membre de la famille Wirthienne des langages de type ALGOL (Euler, ALGOL W, Pascal, Modula et Modula-2). Oberon est le r�sultat d'un effort concentr� visant � augmenter la puissance de Modula-2, le successeur direct de Pascal, et simultan�ment � r�duire sa complexit�. Sa principale nouveaut� est le concept d'extension de type des types d'enregistrement.
Il permet de construire de nouveaux types de donn�es � partir de ceux existants et de les relier, s'�cartant du dogme du typage strictement statique des donn�es. L'extension de type est la m�thode d'h�ritage de Wirth refl�tant le point de vue du site parent. Oberon a �t� d�velopp� dans le cadre de la mise en �uvre d'un syst�me d'exploitation, �galement nomm� Oberon � l'ETH Zurich en Suisse. Le nom a �t� inspir� � la fois par les images de la sonde spatiale Voyager de la lune de la plan�te Uranus, nomm�e Oberon, et parce qu'Ob�ron est c�l�bre comme le roi des elfes.
Comme illustration, ici, une table de variables de proc�dure est d�finie et une variable globale de ce type est d�clar�e dans le module �tendu et r�affect�e dans le module g�n�rique*:
Code Oberon : | S�lectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | MODULE Figures; (* Abstract module *) TYPE Figure* = POINTER TO FigureDesc; Interface* = POINTER TO InterfaceDesc; InterfaceDesc* = RECORD draw* : PROCEDURE (f : Figure); clear* : PROCEDURE (f : Figure); mark* : PROCEDURE (f : Figure); move* : PROCEDURE (f : Figure; dx, dy : INTEGER); END; FigureDesc* = RECORD if : Interface; END; PROCEDURE Init* (f : Figure; if : Interface); BEGIN f.if := if END Init; PROCEDURE Draw* (f : Figure); BEGIN f.if.draw(f) END Draw; (* Other procedures here *) END Figures. |
Conclusion
Niklaus Wirth a re�u de nombreuses distinctions pour ses travaux, dont le prix Turing en 1984, consid�r� comme la plus haute distinction en informatique, pour � avoir d�velopp� une s�quence de langages de programmation innovants, EULER, ALGOL-W, MODULA et PASCAL �. Il a �galement re�u le prix IEEE Emanuel R. Piore en 1983, le prix Marcel-Benoist en 1989, le prix d�excellence du SIGPLAN de l�ACM en 2007, et a �t� fait membre de l�Acad�mie des sciences de Berlin-Brandebourg, de l�Association for Computing Machinery, de l�Acad�mie am�ricaine des arts et des sciences, de l�Acad�mie allemande des sciences et de l�ing�nierie, et de l�Academia Europaea.
Niklaus Wirth a �t� un pionnier et un leader dans le domaine de l�informatique, et a laiss� un h�ritage durable � travers ses langages de programmation, ses publications, ses enseignements et ses recherches. Il a inspir� et influenc� de nombreux informaticiens, et a contribu� � faire avancer la science et l�art des langages de programmation. Il sera regrett� par la communaut� informatique et par tous ceux qui ont eu le privil�ge de le conna�tre et de travailler avec lui.
Sources : Euler : une exp�rience de d�finition du langage, vid�o dans le texte
Et vous ?






Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.