我正在从 UC Berkeley 学习这门 Python 课程,并遇到了environment diagram的概念,它由与函数调用堆栈相似的框架组成(两者都是用新的函数调用创建的),但有两个很大的区别:
在环境图中,当前帧中的变量可以沿着帧链(即:环境)跟踪其值,但调用堆栈中的变量(全局变量除外)只有函数范围;
环境图中的每一帧都有一个父帧,它可以和调用者帧不同,而调用栈只知道它给调用者的返回地址;
我完全理解调用堆栈和相关汇编代码的机制。但是无法理解环境图模型如何在硬件上实现?
例子:
我正在从 UC Berkeley 学习这门 Python 课程,并遇到了environment diagram的概念,它由与函数调用堆栈相似的框架组成(两者都是用新的函数调用创建的),但有两个很大的区别:
在环境图中,当前帧中的变量可以沿着帧链(即:环境)跟踪其值,但调用堆栈中的变量(全局变量除外)只有函数范围;
环境图中的每一帧都有一个父帧,它可以和调用者帧不同,而调用栈只知道它给调用者的返回地址;
我完全理解调用堆栈和相关汇编代码的机制。但是无法理解环境图模型如何在硬件上实现?
例子: