Système nominatif de types

Un article de Wikipédia, l'encyclopédie libre.

Un système nominatif de types est une classe majeure de système de types, dans laquelle on détermine la compatibilité et l'équivalence de types par la déclaration explicite et/ou le nommage des types. On utilise les systèmes nominatifs pour déterminer si des types sont équivalents ou pour savoir si un type est un sous-type d'un autre. Ce système est en constraste avec le système structural, où les comparaisons sont basées sur la structure des types en question et donc ne ces types ne nécessitent pas de déclarations explicites.

typage nominatif signifie que deux variables ont un type compatible si elles apparaissemt soit dans la même déclaration, soit dans des déclarations qui utilisent le même nom de type. Notez que beaucoup de langages fournissent l'alias de types ou ls possibilité de déclarer plusieurs noms pour le même type. La fonctionnalité C/C++ typedef en est un exemple. C, C++, et Java sont tous des langages qui utilisent la compatibilité par noms de types.

De manière similaire, le sous-typage nominatif signifie qu'un type est un sous-type d'un autre si et seulement s'il est explicitement déclaré comme tel dans sa définition. Des langages typés nominalement imposent typquement qu'un sous-type ainsi déclaré est structurellement compatible. Néanmoins Eiffel permet à des sous-types non structurellement compatibles d'être déclarés. Mais les sous-types qui sont structurellement compatibles par accident et non déclarés comme sous-type ne sont pas considérés comme sous-type.

C, C++, and Java utilisent le typage nominatif et le sous-typage nominatif. C et C++ permettent un sous-typage structurel pour les types anonymes. En effet, on considère comme équivalents deux types anonymes s'ils ont la même structure même si les types sont "décrits" dans des parties différentes de code).

Cetains langages sous-typés de manière nominative, tels que Java, permettent aux classes d'être déclarées comme finales, indiquant qu'aucun sous-typage supplémentaire n'est autorisé. On considère que le sous-typage nominatif est utile pour prévenir des équivalences de type accidentels. On considère donc sa une meilleure sécurité de type est meilleure que le typage structurel. Le prix en est la flexibilité réduite. Ainsi, le typage nominal ne permet pas à des super-types d'être crées sans la modification des sous-types existants.

[modifier] Voir Aussi

[modifier] Liens externes

Autres langues