For faster navigation, this Iframe is preloading the Wikiwand page for Système nominatif de types.

Système nominatif de types

Un système nominatif de types est une classe majeure de système de types en programmation informatique. C'est avec lui qu'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 contraste avec le système structurel, où les comparaisons sont fondées sur la structure des types en question et donc ces types ne nécessitent pas de déclarations explicites.

Typage nominatif

[modifier | modifier le code]

Un typage nominatif signifie que deux variables ont un type compatible si elles apparaissent 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 la 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 typiquement 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++ et 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.

Certains 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 accidentelles ; on considère donc qu'une 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éés sans la modification des sous-types existants.

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]
{{bottomLinkPreText}} {{bottomLinkText}}
Système nominatif de types
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?