Abstrakti tietotyyppi Lähteet | Aiheesta muualla | NavigointivalikkoTietorakenteiden luokitteluaTeoksen verkkoversio
Ohjelmointi
engl.rajapinnanpinolinkitettyyn listaan
Abstrakti tietotyyppi
Siirry navigaatioon
Siirry hakuun
Abstrakti tietotyyppi (engl. abstract data type, ADT) on tyypin määrittely, joka määrittelee vain tyypin tietosisällön ja tyyppiin kuuluvat operaatiot, ei tyypin toteutustapaa. Toisin sanoen ADT määrittelee tarkalleen ja täydellisesti tyypin julkisen rajapinnan eikä mitään muuta. Esimerkiksi abstraktin tietotyypin Stack (pino) määrittely voisi kertoa muun muassa, että tallennettavat alkiot ovat kokonaislukuja, alkion pinon päällimmäiseksi lisäävä operaatio on push ja pinon päältä alkion poistava operaatio on pop. Tietorakenteen toteutustapaan ADT ei ota mitään kantaa.
ADT siis määrittelee eräänlaisen rakenneosan, jota voidaan käyttää muita ohjelmia rakennettaessa. Ohjelmoija voi (ja hänen pitääkin) kirjoittaa ohjelmansa siten, että se käyttää vain ADT:n määrittelyn mukaisia ominaisuuksia, jolloin ohjelma toimii edelleenkin vaikka esimerkiksi kokonaislukutaulukkoon perustuva pino vaihdettaisiinkin linkitettyyn listaan perustuvaksi pinoksi.
Lähteet |
- Wang, Peng & Cuellar, Santiago & Chlipala, Adam: Compiler verification meets cross-language linking via data abstraction. OOPSLA '14: Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications, 2014. ACM. (englanniksi)
Aiheesta muualla |
- Malmi, L. & Korhonen, A. & Karavirta V.: Tietorakenteiden luokittelua Elektroninen oppikirja / Opetusmoniste. HUT. Viitattu 1.7.2015.
- Mäyrä, H.: ”3.1 Abstrakti tietotyyppi (ABSTRACT DATA TYPE)”, Tietorakenteet ja algoritmit. . Teoksen verkkoversio (viitattu 1.7.2015).
Luokka:
- Ohjelmointi
(window.RLQ=window.RLQ||[]).push(function()mw.config.set("wgPageParseReport":"limitreport":"cputime":"0.072","walltime":"0.094","ppvisitednodes":"value":529,"limit":1000000,"ppgeneratednodes":"value":0,"limit":1500000,"postexpandincludesize":"value":2256,"limit":2097152,"templateargumentsize":"value":1675,"limit":2097152,"expansiondepth":"value":11,"limit":40,"expensivefunctioncount":"value":0,"limit":500,"unstrip-depth":"value":0,"limit":20,"unstrip-size":"value":0,"limit":5000000,"entityaccesscount":"value":0,"limit":400,"timingprofile":["100.00% 82.704 1 -total"," 41.72% 34.505 1 Malline:Lehtiviite"," 40.59% 33.570 1 Malline:Verkkoviite"," 38.52% 31.861 3 Malline:Kotoista_päiväys"," 35.28% 29.175 3 Malline:Onko_päiväys_ISO_8601_muodossa?"," 23.32% 19.290 1 Malline:IETF-kielisymboli"," 12.19% 10.083 1 Malline:Kirjaviite"," 5.22% 4.318 1 Malline:En"," 5.16% 4.270 1 Malline:K-en"," 2.50% 2.067 1 Malline:K"],"scribunto":"limitreport-timeusage":"value":"0.024","limit":"10.000","limitreport-memusage":"value":1464444,"limit":52428800,"cachereport":"origin":"mw1271","timestamp":"20190311161323","ttl":2592000,"transientcontent":false);mw.config.set("wgBackendResponseTime":115,"wgHostname":"mw1268"););