Кто-нибудь понял, почему область основной памяти, где размещаются объекты, называется кучей. Я могу понять обоснование для стека LIFO, но хотел бы знать, каково обоснование для имени «кучи».
Кто-нибудь понял, почему область основной памяти, где размещаются объекты, называется кучей. Я могу понять обоснование для стека LIFO, но хотел бы знать, каково обоснование для имени «кучи».
Ответы:
Из информации, найденной в StackOverflow - Каково происхождение термина «куча» для бесплатного магазина? и почему два разных понятия оба называются «куча»?
Эта информация по крайней мере восходит к Кнуту в 1975 году, ссылаясь на других (неназванных) авторов:
В 1975 году несколько авторов стали называть пул доступной памяти «кучей». Но в данной серии книг мы будем использовать это слово только в более традиционном смысле, связанном с приоритетными очередями. (Искусство компьютерного программирования - фундаментальные алгоритмы, 3-е изд., Стр. 435)
Также есть упоминание о дискуссии Вийнгаардена об Algol в начале 1970-х годов, в которой доступный пул памяти обозначается как куча ( heap
это зарезервированное слово в Algol, которое местами определяется как «выделять переменной некоторое свободное пространство из глобальной кучи». - Даты Algol68 с 1968 года).
Реализация кучи ALGOL 68 1970 года может быть полезна для отслеживания некоторых аспектов происхождения слова, хотя и в значительной степени, если она находится за платным доступом.