Diskussion:Kellerspeicher
Eine Pascal-P-Code-Maschine interpretierte einen aus Pascalprogrammen erzeugten Zwischencode. Dieser benutzte hauptsächlich den Kellerspeicher. Auch die virtuelle Maschine, die den Java-Byte-Code interpretiert beruht auf einem Kellerspeicher.
Brauchen wir wirklich jedes x-beliebige Beispiel, wo ein Kellerspeicher benutzt wird? Abgesehen davon glaube ich, dass obiger Abschnitte schon allgemein dargestellt wurde?!. --Coma 11:30, 13. Jan 2003 (CET)
- Ich denke es ist gut Beispiele zu haben, wo Kellerspeicher prominent angewendet werden. Pascal war historisch wichtig und Java ist ein aktuelles Beispiel. In der theoretischen Informatik werden verschiedene abstrakte Maschinen untersucht, darunter auch Kellerspeicher-Maschinen. die Pascal-P-Code-Maschine war eine Anwendung davon. Ich verschiebe den Absatz wieder zurück. --HHK
- die stack-operationen sind aber nicht charakteristisch für den p-code, sondern kommen bei jedem parser zum zuge. ein c-compiler funzt also prinzipiell nicht anders. ich würds ja gerne im artikel entsprechend ändern, aber ich renn andauernd in einen bearbeitungskonflikt ;) Siehe im Speziellen Abschnitt 3.5.2 Java Virtual Machine Stacks --Sebastian
- Ok, ich geb mich geschlagen... Ich kenn mich mit Java-Zwischencode und VMs zwar nicht so aus, aber ganz klar ist mir nicht, wo da was anders gemacht werden soll, als bei jedem anderen Compiler und Interpreter. Da geb ich Sebastian recht. --Coma 18:46, 13. Jan 2003 (CET)
- Das wäre eine gute Voraussetzung um sich ein wenig einzulesen http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html und einen Artikel darüber zu schreiben ;-) Siehe im Speziellen Abschnitt 3.5.2 Java Virtual Machine Stacks --HHK
- Ok, ich geb mich geschlagen... Ich kenn mich mit Java-Zwischencode und VMs zwar nicht so aus, aber ganz klar ist mir nicht, wo da was anders gemacht werden soll, als bei jedem anderen Compiler und Interpreter. Da geb ich Sebastian recht. --Coma 18:46, 13. Jan 2003 (CET)
Ich bin nicht ganz mit einigen Aussagen des Artikels einverstanden. Zunächst ist der Begriff Kellerspeicher unglücklich, er ist wesentlich weniger aussagekräftig als Stapelspeicher; der Begriff Stapel wird dann ja auch im Artikel verwendet. Dass nur auf das oberste Element zugegriffen werden kann, ist völlig falsch: Die meisten Stacksysteme besitzen Mechanismen zum Zugriff auf darunterliegende Elemente (wesentlich ist nur, dass sie nicht entfernt werden können). Dann ist auch die Verwendung des Begriffes "Objekt" in dem Zusammenhang (und in der Zeit der OO Programmierung) unglücklich, IMHO könnte/sollte man besser von Elementen sprechen. Letztlich ist die Frage der "temporären" Natur eines Stapelspeichers am Thema vorbei - natürlich kann ein Stapel auch sehr langfristige Daten halten, das hängt nur von der Anwendung ab. -- HelmutLeitner
- Kellerspeicher ist der historische Begriff. Daß er nicht sehr bildlich ist, ist leider so. --Walter
- Einen Kellerspeicher machen die Operationen push und pop aus, und sonst nichts! Wenn jemand einen Kellerspeicher mit mehr Funktionalitiät implementiert ist das ok, aber dies hat dann nichts mehr mit dem Kellerspeicher zu tun. Ferner stimme ich Walter zu. Daher sollten wir im Artikel durchgängig Kellerspeicher benutzten! Objekt ist tatsächlich ungünstigt, ein Element ist letztlich aber auch nichts anders. Von mir aus können wir Objekt durch Element ersetzten. --Coma 00:11, 14. Jan 2003 (CET)
- Hab Objekt zu Element geändert und Stapel oder Stack in Kellerspeicher! Den von HelmutLeitner als unrichtig bezeichnete Abschnitt hab ich gelöscht. War tatsächlich so nicht richtig. --Coma 00:20, 14. Jan 2003 (CET)
Kellerspeicher ist nach meiner Auffassung genauso gängig wie alle anderen Varianten. Die Aussage von Walter läßt diesem zu meinem Favoriten werden. Es gibt sicher auch Gründe für oder gegen die anderen Begriffe, aber ich finde einen Streit darüber ziemlich sinnlos. --Coma 22:50, 19. Jan 2003 (CET)
- Schon die deutsche Bezeichnung Stapelspeicher ist eher unüblich, aber Kellerspeicher war mir nicht bekannt, bis ich auf diesen Artikel gestoßen bin. Der mit abstand am häufigsten verwendete Begriff ist mMn auch im deutschen Sprachraum einfach Stack. (Das zeigt sich auch dadurch, dass die meisten Artikel über den Stack-Redirect hierher verlinken.) Das Kellerspeicher der ursprüngliche Begriff war, ist ja durchaus erwähnenswert, aber der Begriff ist nach meiner Auffassung äußerst unüblich. -- Mx2000 13:02, 3. Apr 2004 (CEST)
- Wir sind die deutsche Wikipedia und solange es gute und gängige deutsche Begriffe gibt, kommen die Artikel dorthin, egal ob das engl. Pendant schon häufiger benutzt wird. Außerdem sehe ich das anderes, in deutscher Literatur wird "Kellerspeicher" sehr sehr oft verwendet. Vielleicht ließt du einfach nur andere Bücher als ich. Das über Stack hierher umgeleitet wird ist ja auch Sinn der Redirs... --Coma 13:35, 3. Apr 2004 (CEST)
In der IA32-Architektur gibt es ein Register ESP, den Stackpointer. Dieses Register einthält eine Speicheradresse, die auf den gerade aktuellen Kellerspeichereintrag zeigt. Wenn mit der Operation Push ein weiterer Registerwert auf dem Kellerspeicher abgelegt wird, dann erniedright sich der Wert des Registers ESP. Der Kellerspeicher wächst also von grössern Hauptspeicheradressen in Richtung kleinere Hauptspeicheradressen. Indem man eine bestimmte Adressierungsart wählt kann man auch auf andere statt nur das aktuelle Kellerspeicherelement zugreifen.
Abschnitt rausgenommen, weil hier überflüssig, das kann fast jeder Prozessor und das steht auch im ersten Satz des Artikels! --Coma 11:42, 21. Jan 2003 (CET)
- Der Abschnitt dient als Illustration zum ersten Satz des Artikels. Es gibt hunderte von andern Prozessortypen, die auch einen Stackpointer haben, aber das tut hier nichts zur Sache. Es geht ja darum, das etwas auszuführen und da bietet sich doch eine Mikroporzessor-Architektur an, die eine grosse Bedeutung hat.
Interessant ist doch zumindest dass der Kellerspeicher 'von oben nach unten wächst.
Bei nichtrealen Objekten ist das doch pure Auslegungssache, wo oben und unten oder vorne und hinten ist!? Auch ein Prozessor kann das prinzipiell handhaben wie er das will (ob er bei pop oder push inkrementiert).
Ich sehe nicht, wo der Abschnitt zu IA32 etwas klarstellt/illustriert. Ich brauch nur 3 Worte ändern, und kann für eine andere bedeutende Architektur das selbe erläutern!? Und es tut schon etwas zu Sache, ob wir das reinnehmen. Es hat nämlich auch etwas mit NPOV zu tun. Warum gerade IA32 (wird sich vielleicht der MAC-User fragen)? In ein paar Jahren redet von IA32 auch keiner mehr! Wir können das ganze auch allgemein genug halten, so dass es für jeden Prozessor gilt. Damit wäre ich einverstanden, aber dann kommt fast genau die Beschreibung des Kellerspeichers raus. Ich werd das mal versuchen so umzuschreiben. --Coma 17:12, 21. Jan 2003 (CET)
- Die IA32-Architektur beruht auf dem 80386-Mikroprozessor und ist mittlerweile 17 Jahre alt. Nicht nur Windows-Betriebssysteme nutzen sie sondern auch viele Unix-Systeme einschliesslich Linux. Ich habe kein Problem damit, wenn auch etwas über die im Mac verwendete PowerPC-Architektur geschrieben wird. Das hat doch mit NPOV überhaupt nichts zu tun. Die englische WP hat interessantes Material zur PowerPC-Architektur. Was ich möchte ist, dass sich die Benutzer der WP konkret etwas vorstellen können, wie so etwas abläuft und nicht mit allgemeinen Informatikerfloskeln abgespeist wird. Sogar eine Grafik wäre fände ich nützlich! --HHK
Ich hoffe es ist auch in der allgemeinen Fassung verständlich :-) und das die zusätzlichen Infos ebenfalls vertändlich und nützlich sind. Ein Bild ist immer gut! Zeichnest Du eins?
Es hat in sofern etwas mit dem NPOV zu tun, als das es genug Leute gibt, die vorlieben haben und IA32 nicht akzeptieren, ohne ihr eigenenes Modell vorstellen zu dürfen. Und ich will vermeiden, dass wir irgendwann 20 mal das selbe im Artikel stehen zu haben oder ständig die Architektur gewechselt wird. Das hat dann auch den Nachteil das die Leute anfangen die Vorzüge und speziellen Features ihres Stacks zu präsentieren, obwohl das mit dem Stack im allgemeinen nichts zu tun hat. Dann hab ich doch lieber einen Artikel unter dem Titel Der Kellerspeicher der IA32-Architektur oder einen Artikel über diese Architektur im allgemeinen, in der man dann diese Info finden kann.
Ich behaupte mal, älter als 20 wird IA32 nicht werden! IA64 steht ja schon in den Startlöchern. Genau weiß ich es natürlich auch nicht :-). --Coma 17:46, 21. Jan 2003 (CET)
Noch eine Anmerkung zur Bezeichnung Kellerspeicher: Mit fast vierzig Jahren Verspätung wurde die Erfindung des Kellerspeichers honoriert. Einer der Beteiligten, Prof. Bauer (München), erhielt 1988 den Computer Pioneer Award der IEEE für die Erfindung des Stacks. Mir erscheint es interessant, dass dieser grundlegende Beitrag zur Computertechnik und zu den Datenstrukturen in Deutschland gemacht wurde. Sollte man das nicht hinzufügen und auch das begriffliche Dickicht der beiden Bezeichnungen Kellerspeicher und Stapelspeicher (stack) dadurch ein bisschen lichten? --Hhoffmann
Wer waren die anderen beteiligten? Wurden diese auch geehrt? Wenn nein, warum nicht? Ja, dass gehört auch in den Artikel. Übrigens wurden viele Erfinungen der Informatik erst sehr spät geehrt. Das liegt wohl auch daran, dass man erst nach sehr langer Zeit erkennen kann, was wirklich wichtig ist, und was wohl doch eher nur ein Flop war. --Coma 10:47, 6. Mai 2003 (CEST)
Weitere Informationen kannst Du der Datei http://www.activeart.de/dim-shops/training/demo18/stackInfo.html entnehmen. Wesentlich mitbeteiligt war der Freund und Kollege Samelson. Dieser verstarb aber vor dem Jahre 1988 und wurde nicht bei der Preisverleihung berücksichtigt. Mir ist der Vorgang aus zwei Gründen bedeutsam: 1. Wie auch bei anderen Arbeiten (z.B. Zuse: Z3, Plankalkül, Schachprogramm etc.) ist wenigen Menschen in Deutschland bewusst, wie gross der Anteil deutscher WissenschaftlerInnen und ErfinderInnen u.a. an der Computertechnik ist. 2. Die Sprachverwirrung Keller / Stapel wird nun klar: Das Kellerprinzip war jahrelang leitend bei dem Entwurf von Hardware und Programmstrukturen. Daher hatte sich der Begriff im deutschsprachigen Raum festgesetzt. Der US-amerikanische Ausdruck stack wurde (später) international gebräuchlich und wurde mit Stapel ins Deutsche übersetzt. Daher spielen beide Begriffe bis heute eine Rolle. Der Begriff Keller hat laut Bauer etwas mit der Form des ersten Kellerspeichers zu tun. Dieser ähnelte einer Treppe. Ich kann die Assoziationskette zwar nicht vollständig nachvollziehen Treppe -- Keller, aber vielleicht ist das ein Phänomen der Kriegs- und Nachkriegserfahrungen. Außerdem kann man sich da noch mit Bauer oder anderen Zeitzeugen absprechen, was diese Bezeichnung alles bedeuten sollte.
Soweit zum Kellerspeicher / Bauer / Samelson. Jetzt noch eine Frage zu Lukasiewicz. Laut Brockhaus stammt die Arbeit über die polnische Notation aus dem Jahre 1929 und wurde 1951 international bekannt. Auf das letztere bezieht sich auch das HP Museum. Laut Brockhaus ist die UPN erst durch HP eingeführt worden. Woher stammt die Angabe 1920 für die UPN? Ist die in Ordnung? Vorstellen kann ich es mir, denn die polnische Notation ist Teil von Forschungen von Lukasiewicz, die auch gut auf die Jahre 1920/1921 datiert werden können. --Hhoffmann 07.05.2003