【发布时间】:2012-04-08 13:37:27
【问题描述】:
还有一个相关的问题:堆栈跟踪/类似的调试功能会是什么样子?
如果这是一个愚蠢的问题,请原谅,但我对低级编程知之甚少。我知道大多数 CPU 都有与堆栈相关的指令,但是经过适当优化的无堆栈语言真的会慢很多吗?
【问题讨论】:
-
C、C++ 和 Pascal 语言本身是无堆栈的,它们没有任何直接与堆栈相关的编程结构。它是由利用堆栈操作的编译器生成的目标 x86 机器语言。
-
不,这些语言有基于堆栈的子例程调用。我不明白它们中的任何一个如何被认为是无堆栈的。然而,Watcom C 编译器使用寄存器作为其堆栈的顶部,只是为了使调用/返回更快。
-
@shawnhcorey:只有实现才有; C 和 C++ 标准都不需要基于堆栈的实现。
标签: performance language-design stackless