Warum wird der Hauptspeicher für die Objektzuweisung als "Heap" bezeichnet?


10

Hat jemand eine Idee, warum der Bereich des Hauptspeichers, in dem Objekte zugeordnet sind, als Heap bezeichnet wird. Ich kann die Gründe für die des Stapel-LIFO verstehen, möchte aber wissen, was die Gründe für den Namen "Heap" sind.


2
Ich habe keine Historie oder Beweise, um dies zu belegen, aber ich würde wetten, dass der Stapel an erster Stelle stand, und auf Englisch ist ein Haufen im Grunde das Gegenteil eines Stapels. Wenn also etwas kam, das kein Stapel war und keine strukturellen Garantien hatte, Haufen kam gerade für einige Gruppe von Menschen in den Sinn und es verbreitete sich wie Sprache dazu neigt ..
Jimmy Hoffa

2
@ JimmyHoffa: Du bist wahrscheinlich nicht weit weg. In den alten Tagen (für mich ca. 8086) wuchsen Heap und Stack in entgegengesetzte Richtungen zueinander, wobei der Stack von unten (Ende des Speichers) nach oben und der Heap von oben (Beginn des Benutzerspeichers) wuchs ) Nieder.
Robert Harvey

4
@DeadMG: Deshalb haben wir diese Abstimmung, um das Ding zu schließen, und Moderator-Flags, wenn Sie nicht genug Repräsentanten haben, um abzustimmen, um zu schließen. Andernfalls können Sie hier in den Kommentaren auf ein Duplikat verweisen. Auf jeden Fall habe ich gesucht und keine Dupes gefunden.
Robert Harvey

1
Zur Abschlussabstimmung - Diese Frage ist thematisch. Weitere Informationen finden Sie in dieser aktuellen Meta-Frage . Ironischerweise wurde diese Meta-Frage in meinem Community-Bulletin für diese Frage aufgeführt.

Antworten:


7

Aus den Informationen bei StackOverflow - Woher stammt der Begriff „Heap“ für den kostenlosen Shop? und warum werden zwei verschiedene Konzepte als "Haufen" bezeichnet?

Diese Informationen stammen mindestens aus Knuth im Jahr 1975 und beziehen sich auf andere (nicht genannte) Autoren:

Mehrere Autoren begannen ungefähr 1975, den Pool des verfügbaren Speichers als "Haufen" zu bezeichnen. In der vorliegenden Reihe von Büchern werden wir dieses Wort jedoch nur in seinem traditionelleren Sinne verwenden, der sich auf Prioritätswarteschlangen bezieht. (Die Kunst der Computerprogrammierung - Grundlegende Algorithmen, 3. Aufl., S. 435)

Es wird auch die Wijngaarden-Diskussion über Algol in den frühen 1970er Jahren erwähnt, in der der verfügbare Speicherpool als Heap bezeichnet wird ( heapein reserviertes Wort in Algol, das an einigen Stellen als "Variable etwas freien Speicherplatz aus dem globalen Heap zuweisen" definiert wird. - Algol68-Daten ab 1968).

Die Implementierung des ALGOL 68-Heaps aus dem Jahr 1970 kann hilfreich sein, um einige Aspekte des Wortursprungs aufzuspüren, wenn auch viel, wenn er sich hinter einer Paywall befindet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.