Re: Automatic coercition to a more general type ?

Didier Remy (Didier.Remy@inria.fr)
Thu, 20 Jun 1996 18:42:46 +0200 (MET DST)

Message-Id: <199606201642.SAA02788@pauillac.inria.fr>
Subject: Re: Automatic coercition to a more general type ?
To: boos@gr6.u-strasbg.fr (Christian Boos)
Date: Thu, 20 Jun 1996 18:42:46 +0200 (MET DST)
In-Reply-To: <9606191112.AA11535@gr6.u-strasbg.fr> from "Christian Boos" at Jun 19, 96 01:12:36 pm
From: Didier.Remy@inria.fr (Didier Remy)

Bonjour,

> J'ai une question concernant le sous-typage et la nécessité de faire
> une coercition explicite d'un objet en un type plus général (par
> exemple pour mettre des objets de classes différentes dans une même
> liste, en forçant un type 'ancêtre commun', cf. exemple point et color_point
> de la doc).
>
> N'y aurait-t-il pas moyen de réaliser cette coercition de façon
> automatique en trouvant le type intersection des types de ces objets ?

La coercition d'une valeur de type A en une valeur de type B est
sémantiquement correcte si A est un sous-type B.

Ce que tu demandes consiste donc à synthétiser des types avec contraintes de
sous-typage. C'est un problème connu, qui dans toute sa généralité n'a
trouvé de solutions théoriques que très récemment.

Cependant ces solutions ne sont pas encore suffisamment satisfaisantes pour
être ajoutées au langage sans risque de nuire à sa simplicité voire à son
utilisation.

C'est pour cela que nous avons pour l'instant choisi la solution la plus
simple qui consiste uniquement à vérifier les relations de sous-typage
explicitement demandées par l'utilisateur.

-Didier.