Abstract datatype: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Addbot (overleg | bijdragen)
k Robot: Verplaatsing van 21 interwikilinks. Deze staan nu op Wikidata onder d:q827335
Regel 1:
Een '''abstract datatype''' (afgekort '''ADT''') of '''abstract gegevenstype''' is een [[wiskundig model|model]]leerconcept uit de [[informatica]]. De term is afgeleid van de Engelse term ''abstract data type''.
 
ADT's worden gebruikt om bestaande [[programmeertaal|programmeertalen]] uit te breiden met [[datatype]]s die niet in die talen ingebouwd zijn. Deze datatypes zijn van een hoger abstractieniveau dan de types die ingebouwd zijn in de programmeertaal die voor implementatie gebruikt wordt en zijn ieder voorzien van specifieke operaties om instanties van het ADT te bewerken.
Regel 86:
 
UNIT StackADT;
 
INTERFACE
CONST capacity = 128;
TYPE stack = array[0..capacity - 1] of integer;
 
PROCEDURE push(var s : stack, num: integer);
PROCEDURE pop(var s : stack);
FUNCTION top(s : stack) : integer;
FUNCTION empty(s : stack) : boolean;
FUNCTION new():stack;
 
IMPLEMENTATION
CONST
empty_flag = -32768;
 
PROCEDURE push(var s : stack, num: integer);
VAR
counter : integer;
BEGIN
counter := capacity;
while (s[counter - 1] = empty_flag) do counter := counter - 1;
{s[counter] is nu de eerste vrije ruimte}
s[counter] := num
END
 
PROCEDURE pop(var s : stack);
VAR
counter : integer;
BEGIN
counter := capacity - 1;
while (s[counter] = empty_flag) do counter := counter - 1;
{s[counter] is nu de top}
s[counter] := empty_flag
END
 
FUNCTION top(s : stack) : integer;
VAR
counter : integer;
BEGIN
counter := capacity - 1;
while (s[counter] = empty_flag) do counter := counter - 1;
{s[counter] is nu de top}
top := s[counter]
END
 
FUNCTION empty(s : stack) : boolean;
BEGIN
empty := s[0] = empty_flag
END
 
FUNCTION new():stack;
VAR
s : stack;
counter : integer;
BEGIN
counter := 0;
while counter < capacity do
begin
s[counter] := empty_flag;
counter := counter + 1
end
END
 
Merk bij het voorgaande voorbeeld op dat deze niet geheel voldoet aan de specificatie in het eerdere hoofdstuk: we kunnen bij de voorgaande implementatie niet eeuwig elementen blijven toevoegen, op een gegeven moment is de stack vol. Een specificatie van deze ADT zou dat mee moeten nemen. Daarnaast geldt uiteraard dat het voorbeeld de waarde van empty_flag misbruikt als vlag en dus eigenlijk niet geschikt is om alle elementen van het type integer te bevatten. Ook dat zou gespecificeerd moeten worden.
Regel 165:
 
[[Categorie:Programmeerconcept|Abstract datatype]]
 
[[sv:Datatyp#Abstrakta typer]]