Por que a memória principal da alocação de objetos é chamada de 'heap'?

10

Alguém já teve uma idéia de por que a área da memória principal onde os objetos estão alocados é chamada de heap. Eu posso entender a justificativa para a pilha LIFO, mas gostaria de saber qual é a justificativa para o nome 'heap'.

cobie
fonte
2
Não tenho histórico ou evidência nula para apoiar isso, mas aposto que a pilha veio primeiro e, em inglês, um monte é basicamente a antítese de uma pilha; portanto, quando surgiu algo que não era uma pilha e não tinha garantias estruturais, montão só veio à mente para um conjunto de pessoas e se espalhou como a linguagem tende a ..
Jimmy Hoffa
2
@ JimmyHoffa: Você provavelmente não está longe. Nos velhos tempos (que para mim era por volta de 8086), a pilha e a pilha cresciam em direções opostas uma para a outra, a pilha crescendo de baixo (fim da memória) para cima e a pilha crescendo de cima (início da memória do usuário) ) baixa.
Robert Harvey
4
@DeadMG: É por isso que temos esse voto para fechar as coisas e sinalizadores de moderador, se você não tiver representante suficiente para votar para fechar. Na falta de tudo isso, você pode vincular a uma duplicata aqui nos comentários. De qualquer forma, fiz uma pesquisa e não consegui encontrar nenhum engano.
Robert Harvey
11
À votação apertada - Esta questão está relacionada ao tópico. Consulte esta recente pergunta Meta para obter mais detalhes. Ironicamente, essa meta questão foi listada na minha lista de boletins da comunidade para esta pergunta.

Respostas:

7

Das informações encontradas no StackOverflow - Qual é a origem do termo "heap" para o armazenamento gratuito? e Por que dois conceitos diferentes são chamados de "heap"?

Esta informação remonta pelo menos a Knuth em 1975, referenciando outros autores (sem nome):

Vários autores começaram por volta de 1975 a chamar o pool de memória disponível de "pilha". Porém, na presente série de livros, usaremos essa palavra apenas em seu sentido mais tradicional, relacionado às filas prioritárias. (A arte da programação de computadores - Algoritmos fundamentais, 3ª ed., P. 435)

Há também menção à discussão de Wijngaarden sobre Algol no início dos anos 70, referindo-se ao pool de memória disponível como um heap ( heapé uma palavra reservada em Algol, definida em alguns lugares como "aloque espaço livre variável para o heap global".) - datas de Algol68 de 1968).

A implementação do heap ALGOL 68 de 1970 pode ser útil para rastrear alguns aspectos da origem das palavras, embora muito se estiver atrás de um paywall.

Comunidade
fonte