首页 > 解决方案 > 如何在解释性编程语言中实现函数调用?

问题描述

我正在创建一种解释性编程语言,并且我想支持函数调用。

我试图按如下方式实现这一点。当解释器遇到:

我对使用这种方法犹豫不决,因为它不是线性的,而且似乎使用了太多资源。

在编译型编程语言中,标签和 goto 用于实现调用函数。它是线性的,只存储函数体的引用。

例如,此 C 代码将生成该汇编代码:

C代码:

int sum (int x, int y) {
    return x + y;
}

sum(2, 3);

汇编代码:

sum:
    push ebp
    mov ebp, esp
    mov eax, [ebp + 8]
    mov edx, [ebp + 12]
    add eax, edx
    pop ebp
    ret

push 3
push 2
call sum
add esp, 8

我想实现一种类似于编译编程语言使用的方法。

标签: programming-languages

解决方案


推荐阅读