5

Durante el aprendizaje del lenguaje de programación C++, es necesario conocer y comprender el tema de las variables denominadas “punteros”. Estas variables se encuentran relacionadas a las direcciones de memoria. En la manipulación de las direcciones de memoria, es frecuente la aparición de la palabra “heap”, que podríamos traducir al lenguaje español como “montón” o en el tema de la Informática como “pila”. Sin embargo, ¿existe una expresión que pueda definir de mejor manera la palabra “heap”, que frecuentemente se usa en los temas de Informática o Lenguajes de programación?

Agradezco su apoyo.

6
  • 1
    Hola, has probado hacer estas preguntas de informática en SO en español? Quizás allí encuentres usuarios acostumbrados a trabajar con los mismos lenguajes y te pueden dar respuestas de manejo habitual.
    – Danielillo
    Jul 26, 2022 at 19:04
  • La estructura de datos se traduce como montículo en la Wikipedia pero, claro, no es a eso a lo que se refiere tu pregunta.
    – Rodrigo
    Jul 26, 2022 at 19:12
  • 1
    Ya lo hice @Danielillo, realice mis preguntas en SO en español y los moderadores cerraron las preguntas; recomendándome que esas mismas preguntas la hiciera en esta comunidad.
    – Luke Solo
    Jul 26, 2022 at 19:17
  • Jaja, vaya, bueno, retiro el comentario entonces.
    – Danielillo
    Jul 26, 2022 at 19:19
  • "Pila" y "montón" son los téminos habitualmente utilizados para traducir "stack" y "heap" respectivamente. Si buscas "memoria pila montón" en google, salen más de 1 millón de entradas.
    – aerobiomat
    Jul 27, 2022 at 14:29

4 Answers 4

-1

Entre otras, se conoce como "heap" a aquella parte de la memoria donde se almacenan y crean datos de las variables relacionadas con las direcciones de memoria durante el mismo transcurso en ejecución del programa. Por tanto, cuando existe un nuevo dato, el ciclo consiste en una petición de memoria y una vez que ese dato ya no es necesitado, se devuelve la memoria para poder ser reutilizada, completando así un proceso que vuelve a comenzar.

A este proceso se le ha llamado proceso de recolección de basura, montón o pila, pues la idea que subyace es que igual que imaginamos una "pila" o "montón" de ropa sucia, apilada como "basura" una encima de otra y que hay que administrar. Los datos, conexiones y reutilizaciones, en este sentido, crean igualmente cierta pila o montón de basura que hay que gestionar.

Esta manipulación de la memoria y el ciclo de petición, utilización y reutilización, es para muchos como basura o una montaña de ropa ya usada, apilada de la que hay que deshacerse.

A este mismo esquema en su versión completa se le conoce como “gestión explícita de memoria” ya que requiere ejecutar una operación para pedir la memoria y otra para liberarla. Por tanto el "heap", vendría a ser la "gestión expresa de esa liberación de basura o pila de ropa amontonada. Claro que cuando se dice "pila o montón", no se explica nada de esto y se siguen conceptos que no entendemos por inercia.

Una vez aclarado, podrías poner un nombre basado en alguna idea anterior de localización de datos variables u otro simplemente como "gestor de ciclo", "gestor de ciclos de datos", "gestor de limpieza", "Limpia variables", "gestor de purria", "gestor de vertedero", "el tacho", "muladar", "Gemerreu o "Jennry" G/Jestor de memoria reutilizada".... por ejemplo y en el que ya se explican los conceptos que intervienen o simplemente utilizar los nombres clásicos, "pila - montón", pero con conocimiento interno. En fin. Un saludo.

1
  • 1
    Usas "pila" y "montón" como si fueran la misma cosa, pero en informática representan dos conceptos claramente diferentes.
    – aerobiomat
    Jul 27, 2022 at 14:32
1

Pila (stack) y montón (heap)

Como el yin y el yang, conviene hablar de ambos conceptos simultáneamente para entenderlos mejor.

La pila es una zona de memoria de tamaño fijo en la cual se almacenan las variables locales de las funciones o procedimientos de un programa. Como las variables locales se ubican al entrar en una función (avanzando la frontera llamada "stack pointer") y se eliminan al salir de ella (retrocediendo la frontera), tiene estructura de "pila".

El montón es el resto de la memoria, donde se ubican las variables no locales. Es lo que queda después de quitar el espacio usado por el código del programa y por la pila (y lo que usan otros programas y el sistema operativo, claro). No tiene ninguna estructura definida, es sólo memoria usada o sin usar.

Curiosidad: este foro está ubicado en StackExchange, llamado así porque el primero de los sus foros se llamó StackOverflow, dedicado a la programación. Un "stack overflow", o "desbordamiento de pila", es el error que se produce cuando hay demasiadas llamadas de unas funciones a otras y la frontera de la pila supera su tamaño.

2
  • Se te agradece @aerobiomat compartir el párrafo de curiosidad. Como lo mencionas, en temas de programación, nos encontramos los términos "stack" y "heap". Resaltaría de tu respuesta que "heap" es memoria usada o sin usar, es decir compilador se dirigirá a esos "slots" de memoria que están sin usar.
    – Luke Solo
    Jul 28, 2022 at 0:21
  • Por eso es importante nunca traducir heap como «pila», ya que esta traducción debería reservarse para stack, y así poder diferenciar estos dos tipos de memoria. May 7 at 8:58
0

Almacenamiento libre

El montículo libre, zona libre, almacenamiento libre o heap es una estructura dinámica de datos utilizada para almacenar datos en ejecución. A diferencia de la pila de ejecución que solamente almacena las variables declaradas en los bloques previo a su ejecución, el heap permite reservar memoria dinámicamente, es decir, es el encargado de que la «magia» de la memoria dinámica ocurra. Las variables globales y estáticas también son almacenadas en él.

Fuente

2
  • Entonces, el heap lo puedo expresar como "una estructura de datos que nos permite reservar memoria dinámica o almacenar datos durante la ejecución de programa". Gracias @Danielillo por compartir la fuente de información.
    – Luke Solo
    Jul 26, 2022 at 19:08
  • Permíteme insistir: SO en español
    – Danielillo
    Jul 26, 2022 at 19:10
0

A partir de la información que nos dan tú y Danielillo, creo que no estaría mal tradicir heap cómo área (o zona) de memoria dinámica.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.