Le langage Modula-3

I ) L’apparition de Modula-3

L’idée du langage Modula-3 est apparue dans les années 80 grâce à l’informaticien britannique Maurice Wilkes qui proposa à Niklaus Wirth, autre informaticien Suisse et membre de l’équipe de développement du langage Modula, de créer une version améliorée de Modula-2+. Au cours des années 90 ce langage a été utilisé dans l’enseignement mais n’a jamais été adopté par l’industrie. En cause, la faible demande envers un langage compilé et orienté objet. Quelques améliorations ont permis d’arriver à une version « définitive » en Juillet 2010.

Bien que ce langage n’ai jamais été utilisé dans l’industrie il a influencé de façon considérable de nombreux designs de langage comme Java, C# ou encore Python et est toujours enseigné en université de nos jours.

II ) Les caractéristiques du langage

L’amélioration de Modula-2+ a permis de produire un langage simple et sécurisé mais qui n’a aucunement perdu en puissance de programmation. Modula-3 possède aussi d’autres avantages. Il est modulable, traçable (au niveau des identifiants) et orienté objet. Ce langage gère aussi la programmation dynamique ainsi que la gestion des exceptions. La sécurité est assurée par le marquage explicite des données devant être sécurisées. Cependant l’apparition de ce langage a posé quelques questions de conception notamment avec l’équivalence structure / nom ou encore les règles de sous-typages.

III ) La syntaxe de base du langage

La meilleur façon d’illustrer la syntaxe de ce langage reste un exemple. Prenons donc le programme classique et minimal consistant à afficher « Hello World » a l’écran :

Nous pouvons voir qu’un programme Modula-3 possède un module « Main », une importation d’un fichier d’interface « IO » permettant l’accès aux données du module et une structure de début et de fin : « COMMENCER » et « FIN ».

Outre son aspect positif pour l’enseignement, Modula-3 a permis d’implémenter de façon élémentaire les caractéristiques les plus importantes des langages de programmation et a permis d’inspirer le design de langages majeurs du monde de la programmation.