PrécédentSommaire

Le chaînon manquant

L'idée de passer d'un seul coup à la programmation en Ada 95 peut effrayer du fait de la richesse de ce langage qui cherche à traiter de façon optimale le plus grand nombre de domaines. Le Modula-2, qui a été créé par Niklaus Wirth a des fins d'enseignement comme le Pascal, est une étape possible. Ada et lui furent définis à peu près à la même époque et reflètent des préoccupations similaires. Mais comme il était destiné à des étudiants, il se caractérise par une simplicité pouvant être opposée à la foule de détails de son cousin (attributs, pragmas, etc.). Sa syntaxe est très proche de celle du Pascal, ce qui permet un passage en douceur.

La nouvelle notion la plus importante est celle de modules, comme l'indique le nom du langage. Ils peuvent être rapprochés des unités de compilation de certaines versions de Pascal, en plus élaboré. Là où il n'y avait qu'une unité avec une partie interface, il y a un module définition et un module implémentation. Ce dernier doit correspondre aux déclarations de la partie définition comme tous ceux qui utilisent ses propres fonctionnalités mais ce découpage permet à chaque développeur de se préoccuper au minimum de ce que font les autres dans une équipe : dans la très grande majorité des cas une modification porte uniquement sur l'implémentation. En plus, il y a aussi des modules programmes (dont aucun ne dépend parce que ce sont les équivalents du main C) et d'autres qui sont dits locaux. En effet, les modules peuvent être imbriqués et structurés comme l'étaient les sous-programmes du Pascal (et toujours du Modula-2). Tous commencent par des listes d'importations et d'exportations qui indiquent les éléments échangés entre les différentes portions d'un programme complet.

Il y a la possibilité de créer des types procédures grâce auxquels on peut par exemple "passer" un sous-programme à un autre comme en C. Des fonctionnalités de bas niveau existent aussi qui permettent des manipulations fines mais nécessitent plus d'attention de la part de l'informaticien, comme les conversions "brutes" entre types.

Une originalité par rapport à Pascal est la possibilité d'utiliser la concurrence, mais d'une façon plus élémentaire qu'en Ada. Des tâches peuvent être lancées par le programme mais la communication se fait à l'aide de signaux simples ou de données partagées qu'il est prudent de ne pas manipuler directement mais d'inclure dans des modules servant d'intermédiaires (moniteurs). On peut aussi créer des gestionnaires d'interruptions et accéder à des emplacements déterminés de la mémoire.

Pour les curieux, il n'y a plus qu'à dénicher une version libre de compilateur Modula-2 avant de s'y essayer (le compilateur libre d'Ada 95 s'appelle GNAT).