Sí, tienes razón. Pero la base de pila es solo una parte de toda la historia. Por ejemplo, el intérprete de bytecode de Java también se basa en la pila (el código compilado funciona, por razones de eficiencia, de manera diferente). Esto nos dice que cualquier idioma se puede transformar en un lenguaje de pila.
Lo que importa son los objetos fuera de la pila, aquellos que pueden sobrevivir a la ejecución del método actual. Mientras el idioma no tenga nada como malloc
o new
, no hay tales objetos y no necesita delete
ni GC.
Un lenguaje que carece de asignación de memoria dinámica es bastante limitado en su utilidad.