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'.
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'.
Respostas:
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.