Pourquoi la mémoire principale pour l'allocation d'objets est-elle appelée «tas»?


10

Quelqu'un at-il une idée pourquoi la zone de mémoire principale où les objets sont alloués est appelée le tas. Je peux comprendre la raison d'être de la pile LIFO, mais j'aimerais savoir quelle est la raison d'être du nom de «tas».


2
Je n'ai aucun historique ni aucune preuve à l'appui, mais je parierais que la pile est venue en premier, et en anglais, un tas est fondamentalement l'antithèse d'une pile, donc quand quelque chose est arrivé qui n'était pas une pile et n'avait aucune garantie structurelle, tas vient à l'esprit pour un certain nombre de personnes et il s'est propagé comme la langue a tendance à ..
Jimmy Hoffa

2
@JimmyHoffa: Vous n'êtes probablement pas loin. Dans l'ancien temps (qui pour moi était vers 8086), le tas et la pile croissaient dans des directions opposées les unes par rapport aux autres, la pile augmentant du bas (fin de la mémoire) vers le haut, et le tas croissant du haut (début de la mémoire de l'utilisateur) ) vers le bas.
Robert Harvey

4
@DeadMG: C'est pourquoi nous avons ce vote pour fermer le truc, et des drapeaux du modérateur si vous n'avez pas assez de représentants pour voter pour fermer. À défaut, vous pouvez créer un lien vers un double ici dans les commentaires. En tout cas, j'ai fait une recherche et je n'ai pas trouvé de dupes.
Robert Harvey

1
Au vote serré - Cette question est sur le sujet. Veuillez consulter cette récente question Meta pour plus de détails. Ironiquement, cette méta-question a été répertoriée dans ma liste de bulletins communautaires pour cette question.

2

Réponses:


7

D'après les informations trouvées sur StackOverflow - Quelle est l'origine du terme «tas» pour la boutique gratuite? et Pourquoi deux concepts différents sont-ils tous deux appelés «tas»?

Ces informations remontent au moins à Knuth en 1975 faisant référence à d'autres auteurs (non nommés):

Plusieurs auteurs ont commencé vers 1975 à appeler le pool de mémoire disponible un "tas". Mais dans la présente série de livres, nous n'utiliserons ce mot que dans son sens plus traditionnel lié aux files d'attente prioritaires. (L'art de la programmation informatique - Algorithmes fondamentaux, 3e éd., P. 435)

Il est également fait mention d'une discussion de Wijngaarden sur Algol au début des années 1970 faisant référence au pool de mémoire disponible comme un tas ( heapest un mot réservé dans Algol qui est défini par endroits comme "allouer une variable d'espace libre du tas global". - Dates Algol68 à partir de 1968).

La mise en œuvre du tas ALGOL 68 à partir de 1970 peut être utile pour retrouver certains aspects de l'origine des mots, bien que ce soit derrière un mur payant.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.