Skip to main content

Abstrakt datatype Indholdsfortegnelse Definition | Navigationsmenu4120827-4

Programmering


datalogiprogrammeringdatastrukturerstaktypesystemerprogrammeringssprogdatatypermodulergrænsefladedataabstraktionobjektorienteretkontraktbaseret programmeringsoftwareProgrammeringsparadigmedet imperative programmeringsparadigmealgoritmersorteringdet funktionelle programmeringsparadigmematematisk induktion










(function()var node=document.getElementById("mw-dismissablenotice-anonplace");if(node)node.outerHTML="u003Cdiv class="mw-dismissable-notice"u003Eu003Cdiv class="mw-dismissable-notice-close"u003E[u003Ca tabindex="0" role="button"u003ELuku003C/au003E]u003C/divu003Eu003Cdiv class="mw-dismissable-notice-body"u003Eu003Cdiv id="localNotice" lang="da" dir="ltr"u003Eu003Cpu003EI u003Ca href="/wiki/Wikipedia:Fokusm%C3%A5ned/marts_2019" title="Wikipedia:Fokusmåned/marts 2019"u003Emarts 2019u003C/au003E fokuserer vi på u003Cbu003Eu003Ca href="/wiki/Kategori:Mad_og_drikke" title="Kategori:Mad og drikke"u003Emad og drikkeu003C/au003Eu003C/bu003E.u003Cbr /u003EDu kan desuden deltage i årets u003Ciu003Eu003Ca href="/wiki/Bruger:Ramloser/for%C3%A5rskonkurrence_2019" title="Bruger:Ramloser/forårskonkurrence 2019"u003Eforårskonkurrenceu003C/au003Eu003C/iu003E.nu003Ciu003Eu003Csmallu003E(u003Ca href="/wiki/Hj%C3%A6lp:Sitenotice" title="Hjælp:Sitenotice"u003ELæs her om sitenoticeu003C/au003E)u003C/smallu003Eu003C/iu003Enu003C/pu003Eu003C/divu003Eu003C/divu003Eu003C/divu003E";());




Abstrakt datatype




Fra Wikipedia, den frie encyklopædi






Spring til navigation
Spring til søgning


I datalogi er en abstrakt datatype, eller abstrakt datastruktur en matematisk model for en bestemt klasse af strukturer som har indbyrdes lignende adfærd. I programmering kan begrebet bruges til at beskrive datastrukturer som grundlæggende modellerer det samme.


En abstrakt datatype kan indirekte defineres ud fra hvilke operationer man kan udføre på den og hvilke restriktioner disse operationer er underlagt. For eksempel kan en abstrakt datastruktur defineres ud fra to operationer: skub, som indsætter noget data i strukturen, og fjern, som udtager noget data i den. Med restriktionen at fjern altid udtager det stykke data som senest blev indsat, kan man sige at den abstrakte datatype svarer til en stak. Yderligere kunne man tilføje restriktionen at begge operationer skal tage den samme mængde tid uanset hvor stor stakken er.


Abstrakte datatyper er rent teoretiske modeller som bruges til at forsimple beskrivelsen af algoritmer, til at klassificere og evaluere datastrukturer og til formelt at beskrive typesystemer i programmeringssprog.


Abstrakte datatyper kan dog implementeres ved hjælp af specifikke datatyper eller datastrukturer eller beskrives i et formelt specifikationssprog. Abstrakte datatyper er ofte implementeret som moduler hvor modulets grænseflade deklarerer procedurer som svarer til den abstrakte datatypes operationer og med dokumentation som beskriver restriktioner.


Begrebet abstrakte datatyper er også relateret til begrebet dataabstraktion, som er vigtigt i objektorienteret og kontraktbaseret programmering inden for udvikling af software.




Indholdsfortegnelse





  • 1 Definition

    • 1.1 Imperative definitioner

      • 1.1.1 Abstrakte variable



    • 1.2 Funktionelle definitioner





Definition |


Der findes ingen standardiseret måde at definere abstrakte datatyper, men en populær måde at inddele definitioner er mellem imperativ og funktionel definitionsstilart (se Programmeringsparadigme).



Imperative definitioner |


I imperative definitioner, som i større grad lægger sig op ad det imperative programmeringsparadigme, betragtes datastrukturer som mutérbare, hvilket vil sige at den samme mængde data kan have forskellige tilstande på forskellige tidspunkter. Nogle operationer kan ændre på datastrukturens tilstand mens andre blot aflæser den. For at understrege denne pointe kan man sige at instruktionerne udføres eller anvendes på strukturen, snarere end at de blot evalueres.



Abstrakte variable |


Imperative definitioner for abstrakte datatyper afhænger ofte af abstrakte variable, der kan betragtes som de simpleste abstrakte datatyper idet de har to operationer: gem, som tilskriver en værdi til en given abstrakt variabel, og hent, som svarer til værdien for en given abstrakt variabel, med den begrænsning at værdien for en abstrakt variabel altid er den seneste værdi den er tilskrevet.


I beskrivelser af algoritmer benyttes ofte syntaksen V ← x eller V := x når en værdi x gemmes i en abstrakt variabel V, og når værdien for en abstrakt variabel hentes nøjes man med at skrive V.


I beskrivelsen af nogle algoritmer benyttes kun en enkelt abstrakt datastruktur af en given type, for eksempel ved sortering, hvor operationsnavne som gem og hent således implicit altid refererer til denne ene struktur.



Funktionelle definitioner |


En anden måde at definere abstrakte datatyper, som i større grad lægger sig op ad det funktionelle programmeringsparadigme, er ved at betragte hver tilstand af sin abstrakte datastruktur som separate enheder, altså som immutérbare.


Her betragtes altså ikke instanser af data, men kun værdier som returneres af funktioner. Det funktionelle paradigme kan være nyttigt i beskrivelser af algoritmer som afhænger af rekursion, eller hvis man ønsker at bevise korrektheden af en algoritme ved matematisk induktion.





Hentet fra "https://da.wikipedia.org/w/index.php?title=Abstrakt_datatype&oldid=7639283"










Navigationsmenu




























(window.RLQ=window.RLQ||[]).push(function()mw.config.set("wgPageParseReport":"limitreport":"cputime":"0.052","walltime":"0.073","ppvisitednodes":"value":49,"limit":1000000,"ppgeneratednodes":"value":0,"limit":1500000,"postexpandincludesize":"value":1216,"limit":2097152,"templateargumentsize":"value":0,"limit":2097152,"expansiondepth":"value":3,"limit":40,"expensivefunctioncount":"value":0,"limit":500,"unstrip-depth":"value":0,"limit":20,"unstrip-size":"value":0,"limit":5000000,"entityaccesscount":"value":1,"limit":400,"timingprofile":["100.00% 54.258 1 Skabelon:Autoritetsdata","100.00% 54.258 1 -total"],"scribunto":"limitreport-timeusage":"value":"0.026","limit":"10.000","limitreport-memusage":"value":781912,"limit":52428800,"cachereport":"origin":"mw1321","timestamp":"20190225131035","ttl":2592000,"transientcontent":false););"@context":"https://schema.org","@type":"Article","name":"Abstrakt datatype","url":"https://da.wikipedia.org/wiki/Abstrakt_datatype","sameAs":"http://www.wikidata.org/entity/Q827335","mainEntity":"http://www.wikidata.org/entity/Q827335","author":"@type":"Organization","name":"Bidragsydere til Wikimedia-projekter","publisher":"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":"@type":"ImageObject","url":"https://www.wikimedia.org/static/images/wmf-hor-googpub.png","datePublished":"2010-05-07T00:51:02Z","dateModified":"2014-05-28T05:58:16Z"(window.RLQ=window.RLQ||[]).push(function()mw.config.set("wgBackendResponseTime":126,"wgHostname":"mw1264"););

Popular posts from this blog

Reverse int within the 32-bit signed integer range: [−2^31, 2^31 − 1]Combining two 32-bit integers into one 64-bit integerDetermine if an int is within rangeLossy packing 32 bit integer to 16 bitComputing the square root of a 64-bit integerKeeping integer addition within boundsSafe multiplication of two 64-bit signed integersLeetcode 10: Regular Expression MatchingSigned integer-to-ascii x86_64 assembler macroReverse the digits of an Integer“Add two numbers given in reverse order from a linked list”

Category:Fedor von Bock Media in category "Fedor von Bock"Navigation menuUpload mediaISNI: 0000 0000 5511 3417VIAF ID: 24712551GND ID: 119294796Library of Congress authority ID: n96068363BnF ID: 12534305fSUDOC authorities ID: 034604189Open Library ID: OL338253ANKCR AUT ID: jn19990000869National Library of Israel ID: 000514068National Thesaurus for Author Names ID: 341574317ReasonatorScholiaStatistics

Kiel Indholdsfortegnelse Historie | Transport og færgeforbindelser | Sejlsport og anden sport | Kultur | Kendte personer fra Kiel | Noter | Litteratur | Eksterne henvisninger | Navigationsmenuwww.kiel.de54°19′31″N 10°8′26″Ø / 54.32528°N 10.14056°Ø / 54.32528; 10.14056Oberbürgermeister Dr. Ulf Kämpferwww.statistik-nord.deDen danske Stats StatistikKiels hjemmesiderrrWorldCat312794080n790547494030481-4