Système de type

Système de type

Type (informatique)

Page d'aide sur l'homonymie Pour les articles homonymes, voir Type (homonymie).

En programmation un type de données, ou simplement type, définit le genre de contenu d'une donnée et les opérations pouvant être effectuées sur la variable correspondante.

Sommaire

Types de données

Types prédéfinis

Tous les langages de programmation offrent des types de base correspondant aux données qui peuvent être traitées directement — à savoir : sans conversion ou formatage préalable — par le processeur :

  • Type booléen : valeurs vrai ou faux — ou respectivement 1 ou 0.
  • Type entier signé ou non signé : valeurs codées sur 8 bits, 16 bits, 32 bits voire 64 bits.
Les caractères sont parfois assimilés à des entiers non signés codés sur 8 bits.

Les langages permettant un accès direct à la mémoire du système offrent par ailleurs le type pointeur.

Beaucoup proposent également un type prédéfini, string, pour les chaînes de caractères. Les langages de haut niveau peuvent également supporter nativement des types correspondant à d'autres structures de données.

Types paramétrés

Par exemple la déclaration des pointeurs ou des tableaux en langage C nécessite de préciser le type qui doit servir de base aux données manipulées. La programmation générique étend cette pratique pour permettre à l'utilisateur de créer ses propres types paramétrés.

Types énumérés

Des langages permettent au développeur de définir des types spécifiques à son application. Les types énumérés correspondent à des ensembles « finis » (cf. les remarques ci-après) de valeurs possibles pour une variable. Le code suivant illustre la définition d'un nouveau type, suivie de la déclaration d'une variable typée :

type couleur:{rouge, bleu, vert};
var c:couleur;  // La variable c, du type couleur, peut prendre les valeurs
                // rouge, bleu ou vert uniquement.
Remarques
  • Par construction, tout type de donnée informatique est de domaine (à cardinal) fini, c'est-à-dire en bijection avec un sous-ensemble strict (noté arbitrairement ici : S) de l'ensemble des entiers (naturels). Par exemple, un type entier peut être défini sur 32 bits, soit une plage de valeurs entières variant de 0 à 232-1 pour un type non signé, ou une plage de -231 à +231-1 pour un type signé.
  • Le caractère « fini » d'un type énuméré (dit aussi : énumératif) s'assimile ici à un ensemble de valeurs (homogènes ou non) en bijection avec une partie stricte (notée arbitrairement ici : P) de S. En pratique, le cardinal de P est plutôt de l'ordre de la dizaine (exemple : palette de couleurs), voire du millier (exemple : plage des ports logiciels standards).

Types composés

Les types composés (struct en C) permettent de grouper plusieurs champs de types distincts dans une même variable (qui contient alors des "sous-variables"). En programmation orientée objet, on nomme classe un type composé associé à du code spécifique — la définition des méthodes de la classe — propre à la manipulation de variables de ce type.

Types hiérarchiques

La programmation orientée objet étend le paradigme précédent en organisant hiérarchiquement les classes de telle manière qu'une variable d'une sous-classe puisse être utilisée de manière transparente à la place de n'importe quelle classe située à un niveau supérieur dans la hiérarchie définie.

Typage

Typage statique et typage dynamique

On parle de typage statique quand la majorité des vérifications de type sont effectuées au moment de la compilation.

Au contraire, on parle de typage dynamique quand ces vérifications sont effectuées pendant l'exécution.

Typage explicite et typage implicite

Avec un typage explicite, c'est à l'utilisateur d'indiquer lui-même les types qu'il utilise, par exemple lors des déclarations de variables ou de fonctions.

Par exemple, en langage C, le typage est explicite :

int i = 0;  // cette déclaration indique explicitement que la variable i est de type entier

Au contraire, avec un système de typage implicite, le développeur laisse au compilateur ou au runtime le soin de déterminer tout seul les types de données utilisées, par exemple par inférence.

Par exemple, en Objective Caml, le typage est implicite :

let i = 0 ;; (* le compilateur détermine automatiquement que la variable i est de type entier *)

Typage fort et typage faible

La sûreté du typage est destinée à prévenir les erreurs de type, à savoir : l'emploi d'une variable dont le format est incompatible. La définition d'un langage fortement typé est assez floue :

  • Pour certains, elle est à rapprocher de celle de langage à typage statique : Le compilateur assure la détection au plus tôt des erreurs de type ;
  • D'autres préfèrent juger de la force du typage d'un langage selon les conversions de type implicites qu'il autorise.

Avec cette dernière approche, on pourrait par exemple obtenir le classement suivant :

Typage Fort Faible
Statique Ada Langage C : short add ( int x, int y ) { return x+y; }
Dynamique Ruby JavaScript : "2" + 4 → "24"

Voir aussi

Ce document provient de « Type (informatique) ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Système de type de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • système radar type H — H radarų sistema statusas T sritis radioelektronika atitikmenys: angl. H radar system vok. H Radarsystem, n rus. радиолокационная система H типа, f pranc. système radar type H, m …   Radioelektronikos terminų žodynas

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

  • Systeme de controle automatise du trafic aerien — Système de contrôle automatisé du trafic aérien Attention : cet article confond un peu les services de contrôle et d alerte rendus par les organismes de la circulation aérienne (CRNAs,...) et le système de control automatisé du trafic aérien …   Wikipédia en Français

  • Système de Contrôle Automatisé du Trafic Aérien — Attention : cet article confond un peu les services de contrôle et d alerte rendus par les organismes de la circulation aérienne (CRNAs,...) et le système de control automatisé du trafic aérien, traitement plus informatique des informations… …   Wikipédia en Français

  • Systeme de Detection et de Commandement Aeroporte — Système de détection et de commandement aéroporté Un SDCA (AWACS) moderne : le Boeing E 3 Sentry Le système de détection et de commandement aéroporté (SDCA) (souvent reconnu par l acronyme anglais AWACS pour Airborne Warning and Control… …   Wikipédia en Français

  • Système de Détection et de Commandement Aéroporté — Un SDCA (AWACS) moderne : le Boeing E 3 Sentry Le système de détection et de commandement aéroporté (SDCA) (souvent reconnu par l acronyme anglais AWACS pour Airborne Warning and Control System) est un système de stations radar montées sur… …   Wikipédia en Français

  • Systeme de navigation Omega — Système de navigation Oméga Le système de navigation Oméga, développé puis utilisé par les États Unis d Amérique et six pays partenaires, était le premier système de radionavigation aérienne et maritime véritablement universel. Sommaire 1 L… …   Wikipédia en Français

  • Système de navigation oméga — Le système de navigation Oméga, développé puis utilisé par les États Unis d Amérique et six pays partenaires, était le premier système de radionavigation aérienne et maritime véritablement universel. Sommaire 1 L histoire 2 Principe du système… …   Wikipédia en Français

  • Type recursif — Type récursif Dans un langage de programmation, un type récursif ou type inductif est un type de données pour des valeurs qui contiennent d autres valeurs du même type. Un exemple est le type liste en Haskell : data List a = Nil | Cons a… …   Wikipédia en Français

  • Type X — Taito Type X Le Taito Type X est un système de jeux vidéo pour borne d arcade compatible JAMMA destiné aux salles d arcade, créé par la société japonaise Taito en 2004. Sommaire 1 Description 2 Specifications techniques 2.1 …   Wikipédia en Français

Share the article and excerpts

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