Javascript解释器实现:需要存储在内存中的是什么?

时间:2015-10-25 04:17:12

标签: javascript compiler-construction

我正在用高级语言实现Javascript解释器。我以前没有这样做过,所以我得到了自己的方向......学习分流码算法和类似的基础知识。现在,我正在尝试粗略地执行功能,我想确保我清楚需要存储在内存中的内容。似乎需要记住的事物的数量比人们想象的要小:

  • 陈述(这些陈述在内存中应该是什么样的?)
  • 调用堆栈,它是一堆打开的上下文。
  • 每个上下文包含:1:变量,2:指向父上下文的指针,以及触发调用的语句的副本及其表达式及其当前评估状态。 3:使用 new 调用该函数的指示符。
  • 对于闭包,我们在一些封闭的上下文中也有变量。这些是即使它们被关闭也可能仍然需要的上下文,因为仍然有一个指向它们的指针,以在闭合上下文中创建的函数的形式。 (并附上封闭的内容。)
  • 当前声明及其当前的评估状态。
  • 接下来是什么声明。

这是对的吗?

0 个答案:

没有答案