Perché la memoria principale per l'allocazione degli oggetti si chiama 'heap'?


10

Qualcuno ha idea del perché l'area della memoria principale in cui sono allocati gli oggetti viene definita heap. Riesco a capire la logica di quella dello stack LIFO ma vorrei sapere quale sia la logica per il nome "heap".


2
Ho zero storia o prove a sostegno di questo, ma scommetterei che lo stack è venuto prima, e in inglese un heap è sostanzialmente l'antitesi di uno stack, quindi quando è arrivato qualcosa che non era uno stack e non aveva garanzie strutturali, l'heap mi è appena venuto in mente per alcune persone e si è diffuso come il linguaggio tende a ..
Jimmy Hoffa,

2
@JimmyHoffa: probabilmente non sei lontano. Ai vecchi tempi (che per me era circa 8086), l'heap e lo stack crescevano in direzioni opposte l'uno verso l'altro, lo stack cresceva dal basso (fine della memoria) verso l'alto e l'heap cresceva dall'alto (inizio della memoria dell'utente ) giù.
Robert Harvey,

4
@DeadMG: ecco perché abbiamo questo voto per chiudere le cose, e il moderatore segnala se non hai abbastanza rappresentante per votare per chiudere. In mancanza di tutto ciò, è possibile collegarsi a un duplicato qui nei commenti. In ogni caso, ho fatto una ricerca e non sono riuscito a trovare alcun duplicato.
Robert Harvey,

1
Per il voto vicino - Questa domanda è sull'argomento. Si prega di vedere questa recente domanda Meta per maggiori dettagli. Ironia della sorte, quella meta domanda era elencata nell'elenco dei bollettini della mia comunità per questa domanda.

Risposte:


7

Dalle informazioni trovate su StackOverflow - Qual è l'origine del termine "heap" per il negozio gratuito? e perché due concetti diversi sono entrambi chiamati "heap"?

Questa informazione risale almeno a Knuth nel 1975 riferendosi ad altri autori (senza nome):

Numerosi autori iniziarono verso il 1975 a definire un "mucchio" di memoria disponibile. Ma nella presente serie di libri, useremo quella parola solo nel suo senso più tradizionale legato alle code prioritarie. (The Art of Computer Programming - Fundamental Algorithms, 3rd ed., P. 435)

Si parla anche della discussione di Wijngaarden su Algol nei primi anni '70, riferendosi al pool di memoria disponibile come un heap ( heapè una parola riservata in Algol che è definita in alcuni punti come "allocare variabile dello spazio libero dall'heap globale". - Algol68 date dal 1968).

L'implementazione dell'heap ALGOL 68 dal 1970 può essere utile per rintracciare alcuni aspetti dell'origine delle parole, anche se molto se si trova dietro un paywall.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.