| Stack | Dieser Text beschreibt Stack. Der untere Text beinhaltet die Stack Beschreibung. Soweit es sich um ein definierbares Objekt handelt, sollte hier eine Stack Definition vorhanden sein. Sollte eine Definition von Stack fehlen, kann diese von Ihnen verfaßt werden. Wir sind bestrebt die Beschreibung von Stack möglichst ausführlich zu halten.
Jeder Text bei Know-Library, sowie ein Teil davon (Definition, Beschreibung etc.), außer Bücher Beschreibungen kann bearbeitet werden. Falls die Beschreibung auf dieser Seite nicht korrekt ist klicken Sie auf 'Beschreibung editieren' um den Text zu korrigieren bzw. neuen einzufügen. Weitere Informationen und Bücher zum Thema Stack Beschreibung , so wie Link zum Forum finden Sie weiter unten. Eine Übersicht der Texte, die das Thema Stack beschreiben finden Sie auf der Seite alle Artikel über Stack. Fragen zu dem Thema Stack können im Forum gestellt werden. Klicken Sie hier um zu dem Forum zu wechseln.
Stack ArtikelIn der Informatik genannt Stack, zu deutsch Stapel, ab und zu auch Stapelspeicher oder Kellerspeicher genannt, eine häufig (aber meist unbewusst) eingesetzte, spezielle Datenstruktur. Sie wird von den meisten Mikroprozessoren in der Hardware direkt unterstützt.
Buch-Tipp: Compartmental Organization of the Golgi Stack Eine Beschreibung zum Buch " Compartmental Organization of the Golgi Stack" finden Sie auf der Seite des Buchhändlers. Um dorthin zu gelangen klicken Sie bitte auf den Link oberhalb von diesem Text. Sie werden automatisch zu diesem Buchtitel weiter geleitet. | |
Ein Stack kann eine beliebige Menge von Objekten aufnehmen und gibt diese entgegengesetzt zur Reihenfolge der Aufnahme wieder zurück. Dazu stellen Stacks die Operationen,
- push, zu dem Hinzufügen eines Objektes und
- pop, zu dem Zurückholen und Entfernen eines Objektes
bereit.
Dabei wird nachdem Last In - First Out-Prinzip (deutsch zuletzt hinein - zuerst heraus, kurz LIFO) gearbeitet, d.h. es wird von pop stets das Objekt aus dem Stack zurückgegeben, welches als letztes mit push hineingelegt wurde.
Buch-Tipp: Der Martha-Faktor. Der fröhliche Abschied vom Zwang, vollkommen zu sein. (Ratgeber) Schönheit ist eine Geste »Kleidung ist nie zufällig«, betont James Laver in seinem Buch »Modesty in Dress«. »Sie bedeutet stets etwas. « Und Gianni Versace meinte: »Unser Äußeres ist unsere Botschaft, eine öffentliche Deklaration. « In dem Heimatland der Innerlichkeit jedoch wird solchen Phänomenen der Alltagskultur von jeher wenig Aufmerksamkeit... |
| |
Man kann sich einen Stack wie einen Stapel von Umzugskisten vorstellen. Man kann stets eine neue Kiste oben auf den Stapel packen (push), oder eine Kiste von oben herunternehmen (pop).
Buch-Tipp: Die interpersonale Theorie der Psychiatrie. Eine Beschreibung zum Buch " Die interpersonale Theorie der Psychiatrie. " finden Sie auf der Seite des Buchhändlers. Um dorthin zu gelangen klicken Sie bitte auf den Link oberhalb von diesem Text. Sie werden automatisch zu diesem Buchtitel weiter geleitet. |
|
Buch-Tipp: Minimum-aperture Kirchhoff migration with CRS stack attributes Die Beschreibung für das Buch " Minimum-aperture Kirchhoff migration with CRS stack attributes" fehlt leider. Weitere informatione finden Sie auf der Seite des Buchhändlers. Klicken Sie dafür auf den Link über diesem Text. Die Seite des Händlers öffnet sich in neuem Fenster. |
Funktionale Programmiersprachen | |
Stacks werden in funktionalen Programmiersprachen meist ca. implizit benutzt, ohne dass sich der Programmierer Gedanken deshalb machen muss, beispielsweise bei rekursiven Funktionen. Will man eine rekursive Funktion in eine iterative Funktion umwandeln, so muss man häufig doch explizit einen Stack programmieren.
Buch-Tipp: Piraten Ahoi! Die Beschreibung für das Buch " Piraten Ahoi!" fehlt leider. Weitere informatione finden Sie auf der Seite des Buchhändlers. Klicken Sie dafür auf den Link über diesem Text. Die Seite des Händlers öffnet sich in neuem Fenster. |
| |
In Mikroprozessoren gibt es dazu häufig ein spezielles Register, den Stackpointer. Dieses Register enthält eine Speicheradresse, die auf den gerade obersten Stackeintrag zeigt. Wenn mit der Operation push ein weiteres Objekt auf dem Stack abgelegt wird, dann erhöht sich der Wert des Stackpointers und zeigt so auf die nächste Adresse in die der neue Stackeintrag geschrieben wird. Bei pop wird der Eintrag der Adresse gelesen und anschließend der Stackpointer vermindert, so dass er auf den letzten Stackeintrag zeigt. In manchen Prozessoren wird der Stackpointer bei push vermindert und bei pop erhöht. Am Prinzip ändert dies aber nichts.
Der Stack des Mikroprozessors wird häufig von diesem selbst bei Aufruf und Rücksprung von Subroutinen zur Speicherung der Rücksprungadresse genutzt, ohne dass ein zusätzliches push oder pop zu dem Ablegen oder Holen dieser Rücksprungadresse nötig ist. Compiler für moderne funktionale Programmiersprachen erweitern diesen Mechanismus oft, indem sie mit zusätzlichen push- und pop-Operationen vor dem Aufruf bzw. Rücksprung von der Subroutine Parameter an diese übergeben oder Funktionswerte von dieser zurückgeben.
Buch-Tipp: Prima Prinzessin Das Buch " Prima Prinzessin" ist leider ohne Beschreibung. Klicken Sie auf den Link über diesem Text um zu der Seite des Buchhändlers zu gelangen. Beim Klicken ö ffnet sich automatich ein neues Fenster mit dem Entsprechenden Buch. |
| |
Zur Übersetzung des Quellcodes einer Formalen Sprache nutzen Compiler und Interpreter einen Parser, der bei der Textanalyse Syntax-Regeln auf einem Stack ablegt und so vergleichend dem nachfolgenden Textelement eine angenommene Bedeutung (das oberste Stapelelement) zuordnen kann. Programmiersprachen, die auf eine virtuelle Maschine aufsetzen (z. B. Java, C#, P-Code-Pascal) optimieren entsprechend den kompilierten Zwischencode für die Verwendung eines Stack, um zur Laufzeit die Interpretation dieses Zwischencodes zu beschleunigen.
Buch-Tipp: Psychologie der zwischenmenschlichen Beziehungen. Um ausführliche Informationen zum Buch " Psychologie der zwischenmenschlichen Beziehungen. " zu bekommen klicken Sie bitte auf den Hyperlink oberhalb von diesem Text. Sie werden zum entsprechenden Buch auf der Händlerseite weiter geleitet. |
Umgekehrte Polnische Notation | |
Zur Berechnung von Termen wird gelegentlich die Umgekehrte Polnische Notation (UPN) benutzt, die mit Hilfe der Operationen eine Klammersetzung und Punkt-vor-Strich-Regeln überflüssig macht. Die Operationen werden auch hier nicht explizit angegeben, sondern ergeben sich aus den Rechenvorschriften der UPN. Zahlwerte werden automatisch auf dem Stapel abgelegt, Operatoren (+, -, *, /) holen die oberen beiden Werte (bei unitären Operatoren, z.B. Vorzeichenwechel, natürlich ca. einen) vom Stack und legen anschließend das (Zwischen-)Ergebnis dort wieder ab. Da hier der Operator als letztes angegeben wird (die Werte müssen zur Durchführung der Operation bereits auf dem Stack vorliegen), spricht man auch von einer Postfix-Notation .
Buch-Tipp: Sullivan neu entdecken Die Beschreibung für das Buch " Sullivan neu entdecken" fehlt leider. Weitere informatione finden Sie auf der Seite des Buchhändlers. Klicken Sie dafür auf den Link über diesem Text. Die Seite des Händlers öffnet sich in neuem Fenster. |
| |
Bei der maschinengestützten Auflösung von arithmetischen Ausdrücken in der so genannten Infix-Notation (der Operator steht zwischen den beteiligten Zahlwerten) werden zunächst vorrangige Teilterme in einem Stack zwischengelagert und so faktisch der Infix-Term schrittweise in einen UPN-Term umgewandelt, bevor das Ergebnis durch Abarbeiten des Stack errechnet wird. Die Umformung erfolgt auch hier wieder durch einen Parser.
|
Stapelorientierte Sprachen | |
Stapelorientierte Sprachen (z.B. Forth oder Postscript) wickeln fast alle Variablen-Operationen über eine Stapel-Struktur ab und stellen neben den oben genannten Operatoren noch weitere zur Verfügung. Beispielsweise tauscht der Forth-Operator swap die obersten beiden Elemente des Stack. Arithmetische Operationen werden in der UPN notiert und beeinflussen damit ebenfalls den Stack.
Forth benutzt einen zweiten Stack (Return-Stapel) zur Zwischenspeicherung der Rücksprungadressen von Routinen während der Ausführungsphase. Dieser Stapel wird auch während der Übersetzungsphase für die Adressen der Sprungziele für die Kontrollstrukturen benutzt. Die Übergabe und Rückgabe von Werten an Routinen geschieht über den ersten Stapel, der zweite nimmt die Rücksprungadresse auf.
|
Programmiersprachen mit rekursiv aufrufbaren Unterprogrammen | |
Viele Programmiersprachen wie C und Java erlauben rekursive Unterprogramme. Hier wird ein Stack zur Zwischenspeicherung der Rücksprungadressen, lokalen Variablen und Funktionsergebnisse benutzt. Dieser Stack wird in den meisten dieser Sprachen immer benutzt, auch für nicht rekursive Unterprogramme.
Siehe auch: Warteschlange, First In - First Out, Kellerautomat
|
Weiteres zu dem Artikel Stack | | Andere Leser interessierten sich auch für folgende Beschreibungen: | Ablegen, Aufnahme, Aufruf, Compiler, Ergebnis, Funktion, Hardware, Illustration, Menge, Objekt, Operation, Parameter, Prinzip, Programmierer, Sprache, Umformung | | Schnellzugrif auf verwandte Texte: | | | NEU! Frage im Forum zum Thema: | | Wenn die Beschreibung 'Stack' Ihrer Meinung nach nicht korrekt ist oder in aktueller Version Fehler enthalten sind oder es fehlt die Stack Definition, dann klicken Sie bitte auf "Beschreibung bearbeiten" und schreiben Sie die Eigene Version des Textes. Die Änderungen in der Beschreibung werden sofort aktiv und für alle sichtbar. Ein Administrator wird Ihre Version der Beschreibung und Definition von 'Stack' nachher prüfen. Bitte achten Sie auf die Urheberrechte (Copyright). Wir sind für die besseren Beschreibung von 'Stack' und 'Stack' Definition sehr dankbar.
Alle Tipps zu den Bücher auf dieser Seite wurden automatisch generiert. D.h. die Bücher wurden aus einer Datenbank von dem Computer ausgesucht. Deshalb kann es vorkommen, dass vorgeschlagene Bücher nicht ganz der 'Stack' Beschreibung entsprechen.
|
|
|
· Diese Seite wurde bisher 1.576 mal abgerufen. · Letzte Counteraktualisierung erfolgte am 17.05.2008 um 12:16:19 · Diese Seite wurde zuletzt geändert um 22:55, 21. Sep 2004. · Letzte Portalaktualisierung erfolgte um 08:00:00 GMT, 25.02.2008
|