Ce qui est amusant c'est que la routine d'inversion de matrice montrée en exemple n'est justement pas le meilleur exemple pour l'utilisation des assertions, surtout de la précondition. Vérifier qu'une matrice est inversible prend autant de temps que de l'inverser, ce qui fait qu'en l'occurence on choisira plutôt de traiter le problème en utilisant la gestion des exceptions avec une clause rescue.
Les pré et postconditions sont abandonnées sur les exécutables finaux, ce qui fait qu'un programme mis au point avec la précondition indiquée va mettre des contraintes énormes sur les clients de la routine d'inversion de matrice en les obligeant à prendre à leur charge la vérification préalable de l'inversibilité de la matrice passée en argument, sauf dans le cas qui me semble douteux où une preuve de l'inversibilité des matrices passées en argument serait préalablement apportée.
C'est un peu du pinaillage que je fais là mais j'aime autant prendre les devants plutôt que de voir quelqu'un affirmer "Eiffel ça vaut rien d'ailleurs ça se voit bien sur l'exemple".
[^] # Re: Quelques "coquilles"
Posté par Philip Marlowe . En réponse à la dépêche Sortie de Hercule la version 2 du compilateur SmartEiffel. Évalué à 4.
Les pré et postconditions sont abandonnées sur les exécutables finaux, ce qui fait qu'un programme mis au point avec la précondition indiquée va mettre des contraintes énormes sur les clients de la routine d'inversion de matrice en les obligeant à prendre à leur charge la vérification préalable de l'inversibilité de la matrice passée en argument, sauf dans le cas qui me semble douteux où une preuve de l'inversibilité des matrices passées en argument serait préalablement apportée.
C'est un peu du pinaillage que je fais là mais j'aime autant prendre les devants plutôt que de voir quelqu'un affirmer "Eiffel ça vaut rien d'ailleurs ça se voit bien sur l'exemple".