Record (datatype)

En post  er en samlet datatype, der indkapsler uden at skjule et sæt værdier af forskellige typer .

Anvendes i mange programmeringssprog . På nogle sprog (for eksempel i Pascal ) er rækkefølgen, hvori værdier placeres i hukommelsen, angivet, når typen defineres og bevares i hele levetiden af ​​objekter, hvilket gør det muligt at få adgang indirekte (f.eks. gennem pointers ); på andre sprog (for eksempel i ML ) er placeringsrækkefølgen ikke defineret, så adgang til værdier er kun mulig med en kvalificeret identifikator. På nogle sprog, selvom rækkefølgen er bevaret, er justeringenstyres af compileren, så brugen af ​​adressearitmetik kan være platformsafhængig. Nogle sprog tillader tildeling mellem forekomster af forskellige poster, ignorerer forskelle i registreringskomponentidentifikatorer og kun baseret på rækkefølge. Andre sprog overvejer tværtimod kun sammenfaldet af navne og løser forskelle i den rækkefølge, de er defineret i.

Optegnelser blev først introduceret på Cobol-sproget , hvor de havde en ret kompleks notation. Ved kontrol af typekonsistens tager Cobol kun hensyn til overensstemmelsen med postfeltnavne og tager ikke hensyn til overensstemmelsen med deres ordre.

Tuples tjener som den formelle begrundelse for optegnelser i typeteori . Samtidig kan tuples på sprog nogle gange implementeres ved hjælp af poster, der bruger indeksnumrene for felterne i den resulterende tuple som identifikatorer. En mere præcis teoretisk registreringsmodel er System F-sub (en udvidelse af System F med begrebet undertyper ). Komponenterne i poster kan være førsteklasses funktioner , som tillader implementering af de grundlæggende begreber for objektorienteret programmering . Der er praktiske implementeringer af denne model [1] . På den anden side er klasser i objektorienteret programmering naturligt repræsenteret som poster, der indeholder datafelter, som desuden er tildelt en synlighedsattribut , ledsaget af metodefelter orienteret til at behandle disse poster. For eksempel er det sådan, klasser implementeres i C++ .

Noter

  1. Bernard Berthomieu. OO programmeringsstile i ML . — LAAS-rapport #2000111, Centre National De La Recherche Scientifique Laboratoire d'Analyse et d'Architecture des Systèmes, 2000.