Data structures 是否有任何计算机语言不使用堆栈?

Data structures 是否有任何计算机语言不使用堆栈?,data-structures,programming-languages,Data Structures,Programming Languages,是否有任何计算机语言不使用堆栈数据结构来跟踪执行进度 或者这种数据结构的使用是一种紧急需求,它源自大多数计算机语言或图灵机的固有特性?对于传统的“C风格”堆栈,某些语言功能很难或不可能实现。例如,闭包不能用传统堆栈轻松实现,因为闭包需要一个指向旧激活记录的指针才能正常工作,并且内存会在C风格的堆栈中自动回收。另一个例子是,生成器和协同路由需要自己的内存来存储局部变量和相对偏移量信息,因此如果使用标准堆栈实现,就很难实现 希望这有帮助 请让我知道如何改进问题以避免结束。你写“这是普遍的吗?”是什么

是否有任何计算机语言不使用堆栈数据结构来跟踪执行进度

或者这种数据结构的使用是一种紧急需求,它源自大多数计算机语言或图灵机的固有特性?

对于传统的“C风格”堆栈,某些语言功能很难或不可能实现。例如,闭包不能用传统堆栈轻松实现,因为闭包需要一个指向旧激活记录的指针才能正常工作,并且内存会在C风格的堆栈中自动回收。另一个例子是,生成器和协同路由需要自己的内存来存储局部变量和相对偏移量信息,因此如果使用标准堆栈实现,就很难实现


希望这有帮助

请让我知道如何改进问题以避免结束。你写“这是普遍的吗?”是什么意思?你能更具体一点吗?也许这个问题与JavaScript实现闭包更相关,但保留了一个堆栈数据结构来记录激活记录。只是因为堆栈的后进先出行为正是计算机语言所需要的,后进先出定义了堆栈吗?@BenAston堆栈工作是因为正常函数调用和返回的工作方式是只有当前函数处于活动状态,调用函数会挂起该函数并激活新函数,从函数返回完全结束函数调用的内存,并公开最近调用的函数。这正是从堆栈中得到的行为。我上面给出的示例表明,这些约束不一定必须保持不变,因此不能总是在C样式模型中使用堆栈。