ทำไมหน่วยความจำหลักสำหรับการจัดสรรวัตถุจึงเรียกว่า 'ฮีป'


10

มีใครมีความคิดว่าเหตุใดพื้นที่ของหน่วยความจำหลักที่มีการจัดสรรออบเจ็กต์นั้นเรียกว่าฮีป ฉันเข้าใจเหตุผลของสแต็ค LIFO แต่อยากรู้ว่าเหตุผลคืออะไรสำหรับชื่อ 'heap'


2
ฉันไม่มีประวัติหรือหลักฐานที่จะสนับสนุนสิ่งนี้ แต่ฉันจะเดิมพันสแต็กมาก่อนและในอังกฤษ heap นั้นเป็นสิ่งที่ตรงกันข้ามของสแต็คดังนั้นเมื่อมีบางสิ่งมาพร้อมกันนั้นไม่ใช่สแต็กและไม่มีการรับประกันโครงสร้าง กองเพิ่งมาถึงใจสำหรับคนบางกลุ่มและมันแพร่กระจายเหมือนภาษามีแนวโน้มที่จะ ..
จิมมี่ฮอฟฟา

2
@JimmyHoffa: คุณอาจอยู่ไม่ไกล ในสมัยก่อน (ซึ่งสำหรับฉันประมาณ 8086) กองและกองขยายตัวในทิศทางตรงกันข้ามไปหากันและกันกองที่เติบโตจากด้านล่าง (จุดสิ้นสุดของหน่วยความจำ) ขึ้นและกองเติบโตจากด้านบน (จุดเริ่มต้นของหน่วยความจำผู้ใช้ ) ลง
Robert Harvey

4
@DeadMG: นั่นเป็นเหตุผลว่าทำไมเราถึงลงคะแนนให้ปิดสิ่งนี้และผู้ดำเนินรายการตั้งค่าสถานะถ้าคุณมีตัวแทนไม่เพียงพอที่จะปิดการโหวต ความล้มเหลวทั้งหมดนั้นคุณสามารถลิงก์ไปยังสิ่งที่ซ้ำกันได้ที่นี่ในความคิดเห็น ไม่ว่าในกรณีใดฉันได้ทำการค้นหาและไม่สามารถค้นหาสิ่งที่หลอกได้
Robert Harvey

1
ลงคะแนนปิด - คำถามนี้อยู่ในหัวข้อ โปรดดูคำถาม Meta ล่าสุดนี้สำหรับรายละเอียดเพิ่มเติม กระแทกแดกดันว่าคำถามเมตาที่ถูกระบุไว้ในรายการกระดานข่าวชุมชนของฉันสำหรับคำถามนี้

2
ซ้ำไม่ได้อยู่ใน P.SE แต่เป็น SO - stackoverflow.com/questions/660855/…และstackoverflow.com/questions/1699057/…

คำตอบ:


7

จากข้อมูลที่พบใน StackOverflow - ต้นกำเนิดของคำว่า "heap" สำหรับร้านค้าฟรีคืออะไร และทำไมสองแนวคิดที่แตกต่างกันทั้งสองเรียกว่า "ฮีป"

ข้อมูลอย่างน้อยวันนี้กลับไป Knuth ในปี 1975 อ้างอิงผู้เขียนอื่น ๆ (ไม่มีชื่อ):

ผู้เขียนหลายคนเริ่มประมาณปี 1975 เพื่อเรียกกองหน่วยความจำที่มีอยู่ว่า "กอง" แต่ในหนังสือชุดปัจจุบันเราจะใช้คำนั้นเฉพาะในความหมายดั้งเดิมที่เกี่ยวข้องกับการจัดลำดับความสำคัญ (ศิลปะการเขียนโปรแกรมคอมพิวเตอร์ - อัลกอริธึมพื้นฐาน, 3 ed., p. 435)

นอกจากนี้ยังมีการพูดถึง Wijngaarden การอภิปรายใน Algol ในช่วงต้นยุค 70 หมายถึงหน่วยความจำที่มีอยู่ในกอง ( heapเป็นคำสงวนใน Algol ซึ่งกำหนดไว้ในสถานที่ที่ "จัดสรรตัวแปรบางพื้นที่ว่างจากกองโลก" - Algol68 วัน จาก 1968)

การใช้ ALGOL 68 heapตั้งแต่ปี 1970 อาจใช้ในการติดตามคำที่มาของคำบางคำแม้ว่าจะอยู่ด้านหลัง paywall ก็ตาม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.