GCC 13 prend désormais en charge Modula-2, le descendant de Pascal,
il supporte également le langage Rust

Modula-2 est le descendant direct de Pascal, destiné à une programmation plus modulaire (l'indice est là, dans le nom) et plus parallèle. Une partie de l'idée était de faciliter le découpage des programmes en morceaux distincts, afin qu'ils puissent être compilés et exécutés séparément. Créé en 1977 par Niklaus Wirth à l'École polytechnique fédérale de Zurich. Sa syntaxe est une amélioration de celle du langage Pascal dont il reprend bon nombre de principes.

Modula est un langage de programmation compilé, procédural, fortement typé, modulaire, facile à lire (il se lit de gauche à droite) et à apprendre. Il est conçu pour enseigner la programmation et faciliter le développement des projets de grande ampleur. Il supporte notamment les concepts d'encapsulation en modules - d'où le nom du langage, la notion d'interface, de bibliothèque, de primitive (fonction qui effectue une tâche élémentaire telle que l'ouverture de fichier ou l'affichage à l'écran), d'unité de compilation, la programmation de haut et de bas niveau, la programmation concurrente et la portabilité.

Nom : gcc.png
Affichages : 11719
Taille : 10,8 Ko

Rappelons que dans un programme de grande dimension, un seul fichier exécutable peut contenir plusieurs fonctionnalités, le code source de chaque fonctionnalité peut être réparti sur plusieurs fichiers sources. Les fichiers sont alors compilés par petit groupes appelés unité de compilation. L'arrivée du support de Modula-2 dans GCC, et un nouveau dépôt Gitlab pour son descendant Oberon, montre que la famille wirthienne des langages de programmation reste plus vivante.

En 1976, Wirth a passé un congé sabbatique chez Xerox PARC. À cette époque, c'est là que l'interface utilisateur graphique à fenêtres et le langage Smalltalk dans lequel elle est programmée sont en cours de développement. Xerox n'a pas réussi à commercialiser son travail, mais a conclu un accord de licence avec Apple avant de le montrer à certains ingénieurs d'Apple. Apple, bien sûr, a très bien réussi à transformer ces travaux en produits commerciaux : d'abord le Lisa, puis, de façon plus lucrative, le Mac.

Les premières interfaces graphiques de Xerox et la station de travail Star étaient programmées dans un langage appelé Mesa, qui a inspiré Wirth. Lorsqu'il est retourné à l'ETH de Zurich, il a cessé de travailler sur son premier successeur Pascal, Modula, et a créé Modula-2 en ajoutant le support des communications inter-modules à l'aide d'un modèle basé sur les coroutines. Les coroutines sont également le modèle de Go, où elles sont appelées goroutines.

Inspiré par le Xerox Alto, Wirth a conçu sa propre station de travail graphique, la Lilith. Modula-2 a connu un certain succès dans les années 1980 ; pendant un certain temps, Topspeed Modula-2 était le compilateur le plus rapide pour le PC. Les inventeurs de la puce Arm, Acorn, ont utilisé Modula-2 pour construire un nouveau système d'exploitation pour leur nouvelle puce RISC, ARX, bien que le projet ait été supplanté par RISC OS.

Modula-2 est toujours utilisé aujourd'hui, par exemple dans le système de navigation par satellite russe GLONASS. Il existe un GNU Modula-2 depuis un certain temps, mais maintenant que ce patch a été fusionné, Modula-2 fera partie de la chaîne d'outils principale de GCC 13, avec le support préliminaire de Rust qui a récemment été ajouté. GCC 13 supportera les idiomes PIM 2, 3 et 4 et ISO du langage.

Rust est compilé multiparadigme, conçu par Graydon Hore alors employé chez Mozilla Research, avec la contribution du créateur de JavaScript Brendan Eich. Utilisé par plusieurs grandes entreprises et par de nombreux développeurs dans le monde, Rust est devenu le langage de base pour certaines des fonctionnalités fondamentales du navigateur Firefox et de son moteur Gecko, ainsi que pour le moteur Servo de Mozilla.

Bien qu'il y ait eu un langage Modula-3, il n'a pas été conçu par Wirth lui-même et a pratiquement disparu aujourd'hui, mais il est considéré comme une influence sur la conception du mécanisme original d'invocation de méthode à distance de Java. Le successeur de Wirth était le projet Oberon. Un émulateur FPGA pour la station de travail Oberon originale a été publié en 2015, mais n'est malheureusement plus disponible. Oberon est à la fois un langage, un système d'exploitation et un IDE minuscules et très efficaces. On l'a appelé le « joyau négligé » de l'informatique.

Le développement d'Oberon se poursuit toujours. Dans son institution d'origine, l'ETH Zürich, le Dr Felix Friedrich travaille toujours sur Oberon et l'enseigne. Il a publié un nouveau dépôt Gitlab avec le dernier code. Il s'agit du système d'exploitation A2, dans l’idiome « Active Oberon ». Pour certains spécialistes, il s'agit du système d'exploitation le plus petit et le plus propre au monde, capable de gérer SMP, TCP/IP et le Web.

L'original de Wirth, cependant, le compilateur Free Pascal est en maintenance active et utilisé, avec l’IDE Lazarus. Les deux fonctionnent sur Linux, FreeBSD, Windows, et macOS. Le langage et l'IDE ne sont pas encore complètement compatibles avec Delphi, mais l'équipe y travaille.

« Avoir un langage Wirth dans GCC remplit mon coeur d'enfant de joie (même si j'espère que GNU Pascal pourra un jour être relancé et maintenu, car Pascal a été le premier langage non-BASIC que j'ai appris.) Et Rust semble être là pour rester, donc avoir plus qu'un seul compilateur officiel semblait inévitable. Je pense que les deux langages ont un sens pour GCC et je suis heureux de voir qu'ils feront partie du prochain GCC 13.1 », écrit Brian Robert Callahan, universitaire, développeur.

Soure : The modula team

Et vous ?

GCC 13 prend désormais en charge Modula-2, le descendant de Pascal,

Utilisez-vous Modila-2 ou l'avez-vous utilisez ? Quelle est votre expérience ? Est-ce vraiment différent du Pascal ?

Que pensez-vous de cette prise en charge de Modula-2 et Rust dans GCC 13 ?

Que pensez-vous du compilateur GCC ? L'utilisez-vous ? Où l'avez-vous utilisé ? Quelle est votre expérience ?

Voir aussi :

GCC 12 apportera de nouvelles fonctionnalités C++, des améliorations et les corrections de bogues, annoncée pour avril 2022

Sortie de la version 2.2.4 de Lazarus, une version corrective toujours basée sur Free Pascal 3.2.2

Un premier aperçu de Rust dans le noyau 6.1, avec Jonathan Corbet, « il n'y aurait pas encore assez de Rust dans le noyau pour faire quoi que ce soit d'intéressant », estime-t-il