解释器如何解析函数调用或分支(跳转)语句



我知道这个问题似乎有点宽泛。我试着寻找答案,找不到太多。如果有人能描述或指出我正确的来源。

假设是基于字节码的解释器,通常的方法如下:

你有一个变量,程序计数器,它告诉你要执行的指令的索引。通常,您将该计数器增加 1,但在执行分支时,请将其设置为跳转的目标位置。

对于函数调用,您执行相同的操作,但您还将计数器的旧值加 1 推送到调用堆栈上。然后,当您执行返回指令时,您弹出堆栈的值并将计数器设置为该值。

最新更新