オブジェクト割り当てのメインメモリが「ヒープ」と呼ばれるのはなぜですか?


10

オブジェクトが割り当てられるメインメモリの領域がヒープと呼ばれる理由を誰かが知っていますか?スタックLIFOの根拠は理解できますが、「ヒープ」名の根拠を知りたいのですが。


2
私はこれを裏付ける歴史や証拠はありませんが、スタックを最初に賭けます。英語では、ヒープは基本的にスタックの正反対です。そのため、スタックではなく、構造的な保証がなかった場合、ヒープ人だけのいくつかのセットのために心に来て、それは言語のように広がるは...傾向にある
ジミー・ホッファ

2
@JimmyHoffa:あなたはおそらくそれほど遠くないでしょう。昔(私にとっては8086年頃)、ヒープとスタックは互いに反対方向に成長し、スタックは下(メモリの終わり)から上に向かって成長し、ヒープは上(ユーザーメモリの始まり)から上に向かって成長しました。 )ダウン。
ロバートハーベイ

4
@DeadMG:これが、この投票で物事を閉じるための理由であり、投票するために十分な担当者がいない場合は、モデレーターのフラグが閉じるためです。これらすべてに失敗した場合は、コメント内の重複にリンクできます。いずれにせよ、私は捜索をしました、そして、どんなデュープも見つけられませんでした。
Robert Harvey、

1
近い投票へ-この質問はトピックについてです。詳細については、この最近のメタ質問を参照してください。皮肉なことに、そのメタ質問は、この質問のコミュニティ掲示リストに記載されていました。

回答:


7

StackOverflowにある情報から- 無料ストアの「ヒープ」という用語の起源は何ですか?そして、なぜ「ヒープ」と呼ばれる2つの異なる概念の両方がありますか?

この情報は少なくとも1975年にKnuthにさかのぼり、他の(名前のない)著者を参照しています。

1975年頃、何人かの著者が利用可能なメモリのプールを「ヒープ」と呼び始めました。しかし、現在の一連の本では、優先順位キューに関連する従来の意味でのみこの単語を使用します。(コンピュータプログラミングの芸術-基本的なアルゴリズム、第3版、p。435)

利用可能なメモリプールをヒープとして参照する1970年代初頭のAlgolに関するWijngaardenの議論についても言及されています(heapこれは、「グローバルヒープから可変の空き領域を割り当てる」として定義されているAlgolの予約語です。)-Algol68の日付1968年から)。

1970年からのALGOL 68ヒープの実装は、ワードウォールの起源のいくつかの側面を追跡するのに役立ちますが、ペイウォールの背後にある場合はそうです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.