caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Automatic coercition to a more general type ?
@ 1996-06-19 11:12 Christian Boos
  1996-06-20 16:42 ` Didier Remy
  0 siblings, 1 reply; 2+ messages in thread
From: Christian Boos @ 1996-06-19 11:12 UTC (permalink / raw)
  To: caml-list

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1297 bytes --]



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 ?

L'unification de deux types de classes différent consisterait à
trouver leur type intersection, et à ne renvoyer une erreur que si un
tel type n'existe pas. En cas de succès, le type unifié est bien
entendu ce type intersection.

Je ne sais pas si cela poserait des problèmes d'ordre théorique. 


------


Hello,

I have a question about subtyping, and the need to explicitly coerce
the type of an object to be of a more general type, when needed.
I wonder if it is possible to do this coercition automatically. When
unifying a type 'class_a' with a type 'class_b', the typechecker tries
to find a new type 'class_c' which is the intersection of 'class_a'
and 'class_b'. If this is successfull, then the resulting type would
be 'class_c', if not, the unification would fail.

Perhaps there's theoretical weakness to this proposal ?



-- Christian






^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Automatic coercition to a more general type ?
  1996-06-19 11:12 Automatic coercition to a more general type ? Christian Boos
@ 1996-06-20 16:42 ` Didier Remy
  0 siblings, 0 replies; 2+ messages in thread
From: Didier Remy @ 1996-06-20 16:42 UTC (permalink / raw)
  To: Christian Boos; +Cc: caml-list


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.






^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1996-06-20 16:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-06-19 11:12 Automatic coercition to a more general type ? Christian Boos
1996-06-20 16:42 ` Didier Remy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).