Systeme structural de types

Systeme structural de types

Système structural de types

En Programmation informatique, un système structurel de types est une classe majeure de système de types, dans laquelle la compatibilité et l'équivalence de type est déterminée par la structure du type et non par des déclarations explicites. On utilise les systèmes structuraux pour déterminer si les types sont équivalents, ou si un type est un sous-type d'un autre. Ce système est en opposition avec les systèmes nominatifs où les comparaisons sont basées sur des déclarations explicites ou sur le nom des types.

Avec le typage structurel deux objets ou termes sont considérés comme ayant des types compatibles si leurs types ont une structure identique. Selon la sémantique du langage, cela signifie généralement que pour chaque fonctionnalité dans un type il doit y voir une fonctionnalité correspondante dans l'autre type. Les détails changent selon les langages. Ainsi sur le fait que deux fonctionnalités doivent avoir le même nom pour être considérées identiques.

Haskell et ML sont deux langages au typage structurel. Haxe est un langage au typage structurel bien que ses classes ne soient pas structurellement sous-typées.

Dans les langages qui supportent le sous-typage polymorphique, on peut former une dichotomie similaire pour définir une relation de sous-type. Un type est un sous-type d'un autre si et seulement il contient toutes les fonctionnalités du type de base ou de l'un de ses sous-types. Le sous-type peut contenir des fonctionnalités additionnelles telles que des membres non présents dans le type de base ou des invariants plus forts.

Le sous-typage structurel est plus flexible que le sous-typage nominal, car il permet la création de types et d'interfaces ad hoc. Il permet en particulier la création d'un type qui est un super-type d'un type existant T sans modifier la définition de T. Mais cela peut ne pas être désirable quand un programmeur veut créer des abstractions fermées.

Le piège du typage structurel comparé au typage nominal est que si deux types définis séparément pour des buts différents, chacun consistant en une paire de nombres sont considéres du même type par le système de type, simplement parce qu'ils ont une structure identique, Une manière d'éviter cela est de créer un type algébrique pour un type de paire et un autre pour l'autre type de paire.

Duck typing

Un système intéressant de type qui se comporte de manière similaire au sous-typage structurel est le duck typing. Le ducktyping n'est pas un vrai système de types car il est implanté dans des langages dynamiquement typés qui n'effectuent pas de jugement de type à la compilation. Mais c'est un système populaire car il offre une grande flexibilité au programmeur, tout en préservant la possibilité de générer des abstractions fermées.

Liens externes

  • Portail de l’informatique Portail de l’informatique
  • Portail des mathématiques Portail des mathématiques
Ce document provient de « Syst%C3%A8me structural de types ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Systeme structural de types de Wikipédia en français (auteurs)

Игры ⚽ Нужен реферат?

Regardez d'autres dictionnaires:

  • Système structural de types — En Programmation informatique, un système structurel de types est une classe majeure de système de types, dans laquelle la compatibilité et l équivalence de type est déterminée par la structure du type et non par des déclarations explicites. On… …   Wikipédia en Français

  • Systeme 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… …   Wikipédia en Français

  • 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… …   Wikipédia en Français

  • structural — structural, ale, aux [ stryktyral, o ] adj. • 1877; de structure ♦ Didact. 1 ♦ De la structure, quant à la structure (2o et 3o). État structural d un organe (opposé à fonctionnel) . Coupe, carte structurale. Écon. ⇒ structurel. Math. Topologie… …   Encyclopédie Universelle

  • Systeme Palladium — Système Palladium Note : à l heure de la rédaction de cet article, aucun jeu Palladium Books n a été traduit en français. Les termes utilisés seront peuvent différer d une possible traduction officielle ultérieure. Cet article fait partie de …   Wikipédia en Français

  • Système Palladium — Note : à l heure de la rédaction de cet article, aucun jeu Palladium Books n a été traduit en français. Les termes utilisés seront peuvent différer d une possible traduction officielle ultérieure. Le système Palladium est un ensemble de… …   Wikipédia en Français

  • NERVEUX (SYSTÈME) - Neurogenèse — L’évolution phylogénétique du système nerveux des métazoaires, évolution si remarquable par la croissante complexité d’organisation et de fonctionnement qui la caractérise, offre au naturaliste un champ d’étude à l’intérêt fascinant. Cependant,… …   Encyclopédie Universelle

  • Projet:Mathématiques/Liste des articles de mathématiques — Cette page n est plus mise à jour depuis l arrêt de DumZiBoT. Pour demander sa remise en service, faire une requête sur WP:RBOT Cette page recense les articles relatifs aux mathématiques, qui sont liés aux portails de mathématiques, géométrie ou… …   Wikipédia en Français

  • Liste des articles de mathematiques — Projet:Mathématiques/Liste des articles de mathématiques Cette page recense les articles relatifs aux mathématiques, qui sont liés aux portails de mathématiques, géométrie ou probabilités et statistiques via l un des trois bandeaux suivants  …   Wikipédia en Français

  • Alpes Dinariques — Carte topographique des Alpes dinariques Géographie Altitude 2 692 m …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”