Passer au contenu

Eiffel, langage objet de demain ?

Eiffel est un langage de programmation et une méthode de conception orientée objet. Il corrige les défauts inhérents aux langages objet usuels, comme C++ ou Java.

Le langage Eiffel, inventé par le Français Bertrand Meyer, fondateur de la société Interactive Software Engineering (ISE), a été conçu à la fois comme un langage de programmation et comme un outil d’aide à la conception objet. Son but est de permettre la mise en ?”uvre d’une méthode de développement originale inventée par Meyer, la ” conception par contrat “. La conception par contrat consiste à ajouter à chaque méthode (ou fonction) une ligne de code ou ” précondition ” (équivalente de l'” assert ” en C), destinée à vérifier la cohérence des paramètres d’appel des fonctions. La fonction appelée ne renvoit un résultat que lorsque sa précondition est vraie et un message d’erreur sinon. Avec ce schéma, les responsabilités entre fonction appelante et fonction appelée sont clairement séparées : d’une part, la fonction appelée a la responsabilité de renvoyer un résultat uniquement si les paramètres d’appel sont corrects ; d’autre part, la fonction appelante a la responsabilité de transmettre des paramètres corrects.

Eiffel intègre un mécanisme de contrôle des paramètres

‘intérêt d’intégrer un tel mécanisme au langage est qu’il est possible d’activer la vérification des préconditions lors de l’exécution, ce qui permet de repérer aisément un très grand nombre de bugs. L’illustration la plus remarquable de cette particularité est celui du crash de la fusée Ariane 5. Une fonction récupérée du logiciel système d’Ariane 4 a provoqué un dépassement de capacité d’une variable (en l’occurrence un dépassement de capacité d’un entier). Résultat : une facture d’un demi-milliard de dollars qui aurait pu être évitée si l’on avait utilisé un mécanisme de vérification des paramètres adéquat. Des mécanismes similaires aux ” préconditions “, eux aussi activables ou non à l’exécution, permettent de vérifier des conditions de sortie (ou postconditions), et les ” variants ” et ” invariants ” de boucle. Autre caractéristique précieuse dans le cadre d’une politique qualité du logiciel : en Eiffel, la documentation technique est intégrée au langage source. Le compilateur Eiffel se charge de la générer automatiquement.La méthode de conception par contrat permet la création de bibliothèques d’objets fiables, avec la garantie d’appels de fonctions corrects. Autrement dit, grâce au mécanisme de précondition, une fonction, ou un objet écrit par un tiers, est à coup sûr utilisée correctement. Au pire, le programme générera une erreur. En cela, Eiffel tient la promesse de la réutilisation des composants faite par C++ et Java (promesse mal tenue dans la pratique). Par ailleurs, le problème de réutilisation des programmes existants écrits dans d’autres langages est résolu à l’aide d’un mécanisme simple d’appel à des classes ou à des routines externes.

Le compilateur génère aussi du code en langage C et Java

iffel offre, comme Java, un haut niveau d’indépendance système. On trouve ainsi la bibliothèque graphique Vision, indépendante de la plate-forme (Windows, Motif, OS/2), ou Store, un système unifié d’accès aux bases de données Oracle, Sybase, Ingres ou par ODBC. Enfin, pour éviter tout problème de compatibilité, la génération du programme compilé passe par la création d’un code source intermédiaire en C ou Java, considérés comme des langages cibles de bas niveau. Cette méthode permet une compatibilité totale des programmes écrits en Eiffel avec les systèmes informatiques existants : il suffit d’un compilateur C ou d’une machine virtuelle Java pour les faire fonctionner. Un mécanisme de compilation incrémentale permet d’éviter l’impact négatif sur les temps de compilation lors de la phase de mise au point.La syntaxe d’Eiffel est minimaliste, proche du langage naturel. Le langage exprime bien les choix de conception du logiciel. Ainsi, à l’inverse de nombreux langages de programmation, Eiffel n’a pas recours à des symboles ésotériques. Les mots-clés sont en clair comme features pour fonction ; un simple ” is ” suffit pour nommer une méthode. Il en résulte un langage utilisable aussi bien par les chefs de projet lors de la phase de conception d’un logiciel que par les développeurs lors de son implémentation. Bertrand Meyer prétend qu’utiliser Eiffel et les techniques de ” conception par contrat “, réduit l’écart entre les tâches de conception et de développement et diminue les risques liés aux choix critiques du fait de la relation entre objets. On obtient en quelque sorte le même type d’effet bénéfique que dans les approches RAD (développement d’applications rapides tel que Visual Basic ou autres), mais sans se limiter aux logiciels orientés interface utilisateur.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Christophe Grosjean