From: calla@knuth.univ-poitiers.fr
Date: Mon, 30 May 94 19:20:50 +0100
Message-Id: <9405301820.AA15655@knuth.univ-poitiers.fr>
To: Xavier.Leroy@inria.fr
In-Reply-To: John Harrison's message of Mon, 30 May 94 15:49:46 +0100 <"swan.cl.cam.:029090:940530144959"@cl.cam.ac.uk>
Subject: Irrelevant variables in patterns
Le probleme est excatement le meme en ADA qui a la meme philosophie des
exceptions que caml, meme si le mecanisme est plus puissant en Caml.
Le probleme de fond est le suivant me semble-t-il : on traite syntaxiquement
et semantiquement de la meme facon des exceptions de nature tres differentes
quand au comportement du programme a l'execution :
1)celles qui sont definies par le programmeur comme un moyen de programmation
qui evite des test dans des cas tordus et qui sont bien pratiques
2) celles qui sont generees par le run-time du langage mais qui sont de meme
utilite (du genre Failure "hd" et autres Invalid_argument ..)
et enfin celles qui viennent du systeme hote dont le plus bel exemple est
Out_Of_memory, mais qui peuvent etre moins catatrophiques comme celles
liees aux entrees-sorties.
Si on veut ecrire des softs robustes, on ne peut s'interdire de traiter
ces dernieres, meme Out_Of_memory, mais la solution serait une hierachisation
des exceptions dans le langage, avec des constructions differentes pour
le traitement. Certes ca complique certainement l'ecriture du compilateur,
et je ne connais pas grand chose aux problemes semantiques poses par les
exceptions, mais ca me semble une solution plus serieuse que d'imposer des
contraintes de syntaxe un peu arbitraires.
Mais sans doute demande-je la lune.
Pierre Calladine.