Enregistrement (structure de données)

structure de données

En programmation, un enregistrement est une structure de données qui rassemble plusieurs champs, ceux-ci contenant des valeurs qui peuvent être de types différents[1]. Typiquement, le nombre de champ et leur séquence sont fixés[1]. Les champs d'un enregistrement peuvent aussi être nommés "membres", en particulier dans la programmation orientée objet. Les champs peuvent encore être appelés "éléments", mais cela entraîne un risque de confusion avec les éléments d'une collection.

Par exemple, une date peut être stockée en mémoire comme un enregistrement avec un champ numérique année, le mois représenté comme une chaîne de caractères, et un champ numérique pour le jour-du-mois.

Les enregistrements se distinguent des tableaux (arrays) par le fait que le nombre de leurs champs est généralement fixé, que chaque champ a un nom et que chaque champ peut être de type différent.

Un type enregistrement est un type de donnée qui décrit de telles variables. La majorité des langages de programmation utilisés aujourd'hui donne au programmeur la capacité de définir de nouveaux types d'enregistrements. La définition comprend la spécification du type de données de chaque champ et un identifiant (nom ou étiquette) par lequel on peut y accéder.

Les enregistrements peuvent exister dans n'importe quelle forme de stockage de données (mémoire vive, bandes magnétiques, disques durs...). Les enregistrements sont fondamentaux pour la majorité des structures de données, en particulier les structures de données liées.

Un objet dans la programmation orientée objet est essentiellement un enregistrement qui contient les procédures spécialisées pour cet enregistrement. Dans la majorité des langages orientés objet, les enregistrements sont des cas spécifiques des objets, et sont nommés plain old data structures, ou passive data structures.

Un enregistrement peut être considéré comme l'équivalent informatique d'un n-uplet mathématique. Dans la même veine, il peut aussi être vu comme une version technologique d'un produit cartésien de deux ou plusieurs ensembles mathématiques.

Voir aussiModifier

Notes et référencesModifier

  1. a et b (en) Felleisen, Matthias; Findler, Robert Bruce; Flatt, Matthew; and Krishnamurthi, Shriram, « How To Design Programs », MIT Press,‎