Enregistrement (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 aussi
Notes et références
- (en) Felleisen, Matthias; Findler, Robert Bruce; Flatt, Matthew; and Krishnamurthi, Shriram, « How To Design Programs », MIT Press,â