Stack (ICT)

Wat betekent Stack?

Een stack is een logisch concept dat bestaat uit een verzameling gelijkaardige elementen. De term wordt vaak gebruikt bij programmeren en geheugenorganisatie in computers.

Programmeerstacks zijn gebaseerd op het principe van ‘last in first out’ (LIFO), een veelgebruikt type data abstract dat bestaat uit twee belangrijke operaties, push en pop. De push-bewerking voegt een element toe aan de bodem van de stack terwijl de pop-bewerking een element verwijdert van de bovenste positie.

Software-implementaties van het stack-concept, maken gebruik van arrays en gelinkte lijsten waarbij de bovenste positie wordt bijgehouden met behulp van respectievelijk een variabele of een header pointer. Veel programmeertalen bieden ingebouwde functies om stackimplementatie te ondersteunen.

In de informatie- en communicatietechnologie (ICT) zijn er bekende soorten stacks:

  • Software stacks – programmeercomponenten die samenwerken om de uitvoering van een applicatie te ondersteunen. LAMP (Linux, Apache, MYSQL, Perl of PHP of Python) is een populaire softwarestack.
  • Full stacks – alle front-end en back-end technologieën en vaardigheden die een IT-doel ondersteunen.
  • Protocolstacks – interconnectiviteitsregels voor een gelaagd netwerkmodel zoals TCP/IP of Open Systems Interconnection (OSI). Om een stack te worden, moeten de protocollen verticaal interoperabel zijn tussen de lagen van het netwerk en horizontaal tussen de eindpunten van elk transmissiesegment.

Techopedia legt Stack uit

Bij programmeren is een stack een buffer die gebruikt wordt om verzoeken tijdelijk op te slaan. Dit type stack heeft een begrensde bodem en alle bewerkingen van de data worden uitgevoerd op de bovenste positie. Wanneer een element aan de stack wordt toegevoegd door de push operatie, wordt de bovenste waarde met één verhoogd, en wanneer een element uit de stack wordt gehaald, wordt de bovenste waarde met één verlaagd. Een pointer naar de bovenste positie van de stack wordt ook wel de stack-pointer genoemd.

Buffer-stacks kunnen een vaste grootte hebben of dynamisch zijn. Stack-registers worden gebruikt om de waarde van de pointer op te slaan.

In het geval van begrensde capaciteit-stacks, veroorzaakt het  toevoegen van een element aan een reeds volle stapel een stack overflow. Op dezelfde manier staat een toestand waarbij een pop-operatie een element probeert te verwijderen van een reeds lege stack bekend als underflow.

Een stack wordt beschouwd als een beperkte datastructuur omdat slechts een beperkt aantal operaties zijn toegestaan. Naast de push- en pop-operaties kunnen bepaalde implementaties geavanceerde operaties toestaan zoals:

  • Peek – Bekijk het bovenste item in de stack.
  • Duplicate – Kopieer de waarde van het bovenste item naar een variabele en push het terug in de stack.
  • Wisselen – Wissel de twee bovenste items in de stack.
  • Roteren – Verplaats de bovenste elementen in de stack zoals gespecificeerd door een getal of verplaats ze roterend.

Gerelateerde begrippen

Margaret Rouse

Margaret Rouse is een bekroond technisch schrijver en docent die bekend staat om haar vermogen om complexe technische onderwerpen uit te leggen aan een niet-technisch, zakelijk publiek. In de afgelopen twintig jaar is haar uitleg verschenen op vele websites en is ze als autoriteit aangehaald in artikelen van de New York Times, Time Magazine, USA Today, ZDNet, PC Magazine en Discovery Magazine. Margaret geniet ervan om IT- en business professionals te helpen om elkaars zeer gespecialiseerde talen te begrijpen. Als je een suggestie hebt voor een nieuwe definitie of hoe je een technische uitleg kunt verbeteren, stuur Margaret dan een…