ACCUEIL

Consignes aux
auteurs et coordonnateurs
Nos règles d'éthique
Auteurs : soumettez
votre article en ligne
Autres revues >>

Technique et Science Informatiques

0752-4072
Revue des sciences et technologies de l'information
 

 ARTICLE VOL 21/10 - 2002  - pp.1305-1342
TITRE
Spécialisation et sous-typage : thème et variations

RÉSUMÉ
La spécialisation de classes constitue la caractéristique la plus remarquable de l'approche objet mais son assimilation au sous-typage, dans le cadre de la programmation par objets, conduit à la problématique bien connue du caractère covariant ou contravariant de la redéfinition. Pour que le typage soit sûr, le sous-typage impose une redéfinition contravariante contraire à la sémantique covariante de la spécialisation. Ce problème est bien connu, mais le point de vue du typage sûr est resté dominant. Cet article a pour objet d'analyser précisément le problème, de montrer l'irréductibilité du conflit, et la nécessité du risque d'erreur de type. La plupart des langages reconnaissent d'ailleurs implicitement cette nécessité en permettant une coercition de types contraire à la sûreté du typage. Nous montrons aussi que les nombreuses alternatives comme la sélection multiple, la généricité ou le filtrage restent illusoires ou insuffisantes pour traiter le problème. La solution réaliste est alors d'adopter la redéfinition covariante en rajoutant aux langages les éléments permettant de circonscrire précisément les erreurs de type, et en complétant les méthodes d'analyse et de conception pour qu'elles les prennent en compte.


ABSTRACT
Class specialization is the most original feature of object orientation, but identifying it to subtyping leads to the well known covariance-contravariance controversy. Type safety requires contravariance while specialization needs covariance. This paper aims to precisely analyse this problem, to show how irreductible it is and the need for type errors. We show that many alternatives as multiple dispatch, genericity or matching cannot solve the problem. Thus, a realistic solution is to adopt covariant redefinition as the basis of a type system where type errors are explicited, as they should be at the analysis and design stages.


AUTEUR(S)
Roland DUCOURNAU

MOTS-CLÉS
langage à objets, spécialisation, sous-typage, généricité, héritage, sélection multiple, covariance, contravariance.

KEYWORDS
object-oriented languages, specialization, subtyping, genericity, inheritance, multiple dispatch, covariance, contravariance.

LANGUE DE L'ARTICLE
Français

 PRIX
• Abonné (hors accès direct) : 12.5 €
• Non abonné : 25.0 €
|
|
--> Tous les articles sont dans un format PDF protégé par tatouage 
   
ACCÉDER A L'ARTICLE COMPLET  (291 Ko)



Mot de passe oublié ?

ABONNEZ-VOUS !

CONTACTS
Comité de
rédaction
Conditions
générales de vente

 English version >> 
Lavoisier