Push und Pop
Feb 9th 2010, 04:54 PM 1 Bewertungen
Hier kommt eine Antwort für Dich, Mel. :)
'Push' und 'Pop' sind zwei Befehle aus der Assembler-Sprache. Das ist eine Programmiersprache ganz nahe an der Maschinencode-Ebene, wo alles in einem Computer nur noch mit 'Nullen' oder 'Einsen', also eigentlich mit 'keine Spannung' oder 'Spannung' beschrieben wird. Auch der Begriff des Stapels (Stack) stammt aus dieser Programmiersprache.
Das sind alles so Hilfsbegriffe, welche die Vorgänge beim Programmieren veranschaulichen sollen.
Sie kommen aus dem Amerikanischen, wo früher in den großen Bürokantinen das Geschirr und die Teller in so Vorrichtungen in Stapeln untergebracht war.
Die Stapel hatten oben immer die gleiche Höhe, weil sie sich nach unten über Federzüge und Gegengewichte ausdehnen konnten, oder sie nahmen nach oben bei weniger Tellern wieder ab.
Das Ablegen des gebrauchten Tellers auf den Stapel war das "push", und das Entnehmen eines sauberen von einem anderen Stapel wurde "pop" genannt.
Und beim Programmieren gibt es einen Befehl, um den Inhalt eines sogenannten Registers zwischenzuspeichern, damit es kurzzeitig andere Aufgaben (Berechnungen o.ä.) übernehmen kann.
"Push A" heißt z.B. den Inhalt des Arbeitsregisters A auf den 'Stapel' zu schieben.
Nach der Zwischenberechnung wird der auf dem Stapel gespeicherte Wert mit "Pop A" wieder vom 'Stapel' geholt, und das Register A wird mit dem alten Inhalt wiederhergestellt.
Es gibt natürlich im Computer nicht sowas wie einen realen Stapel.
Aber die Programmsprache hat sich so entwickelt, indem man sprachlich dann so tut als ob. Es ist eben dann gut merkbar.
Der 'oberste' Wert auf dem Stapel ist immer der zuletzt abgelegte. Wenn man ihn mit "Pop" entnimmt, kommt man als nächstes an den 'darunterliegenden' Wert.
Zumindest ist das die einfachste, herkömmliche Art, mit dem Stack umzugehen.
Es gibt aber Tricks, wie man den Stapel manipulieren kann. Und damit lassen sich fantastische Programmbeschleunigungen erreichen, und gleichzeitig lässt sich Speicherplatz einsparen, weil es ganze Unterprogramme ersetzen kann.
Doch das würde hier zu weit führen. :)
'Push' und 'Pop' sind zwei Befehle aus der Assembler-Sprache. Das ist eine Programmiersprache ganz nahe an der Maschinencode-Ebene, wo alles in einem Computer nur noch mit 'Nullen' oder 'Einsen', also eigentlich mit 'keine Spannung' oder 'Spannung' beschrieben wird. Auch der Begriff des Stapels (Stack) stammt aus dieser Programmiersprache.
Das sind alles so Hilfsbegriffe, welche die Vorgänge beim Programmieren veranschaulichen sollen.
Sie kommen aus dem Amerikanischen, wo früher in den großen Bürokantinen das Geschirr und die Teller in so Vorrichtungen in Stapeln untergebracht war.
Die Stapel hatten oben immer die gleiche Höhe, weil sie sich nach unten über Federzüge und Gegengewichte ausdehnen konnten, oder sie nahmen nach oben bei weniger Tellern wieder ab.
Das Ablegen des gebrauchten Tellers auf den Stapel war das "push", und das Entnehmen eines sauberen von einem anderen Stapel wurde "pop" genannt.
Und beim Programmieren gibt es einen Befehl, um den Inhalt eines sogenannten Registers zwischenzuspeichern, damit es kurzzeitig andere Aufgaben (Berechnungen o.ä.) übernehmen kann.
"Push A" heißt z.B. den Inhalt des Arbeitsregisters A auf den 'Stapel' zu schieben.
Nach der Zwischenberechnung wird der auf dem Stapel gespeicherte Wert mit "Pop A" wieder vom 'Stapel' geholt, und das Register A wird mit dem alten Inhalt wiederhergestellt.
Es gibt natürlich im Computer nicht sowas wie einen realen Stapel.
Aber die Programmsprache hat sich so entwickelt, indem man sprachlich dann so tut als ob. Es ist eben dann gut merkbar.
Der 'oberste' Wert auf dem Stapel ist immer der zuletzt abgelegte. Wenn man ihn mit "Pop" entnimmt, kommt man als nächstes an den 'darunterliegenden' Wert.
Zumindest ist das die einfachste, herkömmliche Art, mit dem Stack umzugehen.
Es gibt aber Tricks, wie man den Stapel manipulieren kann. Und damit lassen sich fantastische Programmbeschleunigungen erreichen, und gleichzeitig lässt sich Speicherplatz einsparen, weil es ganze Unterprogramme ersetzen kann.
Doch das würde hier zu weit führen. :)
Tags: pop push stack Stapel
4 Kommentare / Kommentar senden
Keine Kommentare:
Kommentar veröffentlichen