【发布时间】:2018-02-22 18:05:09
【问题描述】:
我正在学习构建一种可以编译为字节码的 OOP 语言,然后使用 c++ 中实现的基于堆栈的 vm 对其进行解释。我的问题是如何用我自己的语言调用本机函数(在我的例子中是 C++ 函数)。
比如我有一个c++文件:native.cpp
float div2(int x) {
return float(x) / 2;
}
用我的语言调用函数:
import native
void main() {
int foo = 1234;
print(native.div2(foo));
}
如果我创建一条新指令,我必须重新构建整个解释器。
对不起,我的英语不好。
【问题讨论】:
-
你的英文很好。你的问题不清楚。如果您想从您的语言中调用本机代码,则需要有一些以字节码表示的已定义机制(例如适当的指令),您的虚拟机可以理解。
标签: c++ virtual-machine native-code