Structural type system

http://dbpedia.org/resource/Structural_type_system an entity of type: WikicatTypeSystems

A structural type system (or property-based type system) is a major class of type systems in which type compatibility and equivalence are determined by the type's actual structure or definition and not by other characteristics such as its name or place of declaration. Structural systems are used to determine if types are equivalent and whether a type is a subtype of another. It contrasts with nominative systems, where comparisons are based on the names of the types or explicit declarations, and duck typing, in which only the part of the structure accessed at runtime is checked for compatibility. rdf:langString
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. rdf:langString
rdf:langString Système structurel de types
rdf:langString Structural type system
xsd:integer 4471383
xsd:integer 1085029838
rdf:langString 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 dansl'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 intègrent le , 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 typeset 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 et pour des buts différents, sont tous deux constitués de la même manière (par exemple d’une paire de nombres), alors ils seront considérés du même type par le système de type car ils ont une structure identique. Cela peut être une source d’erreur si par mégarde un élément d’un type est passé à une routine qui traite des éléments de l’autre type. 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.
rdf:langString A structural type system (or property-based type system) is a major class of type systems in which type compatibility and equivalence are determined by the type's actual structure or definition and not by other characteristics such as its name or place of declaration. Structural systems are used to determine if types are equivalent and whether a type is a subtype of another. It contrasts with nominative systems, where comparisons are based on the names of the types or explicit declarations, and duck typing, in which only the part of the structure accessed at runtime is checked for compatibility.
xsd:nonNegativeInteger 8338

data from the linked data cloud