4

假设是一种类似 javascript 的语言,我们如何实现一个系统,例如:

a = {};
a.foo = {};
a.foo.bar = 42;
print a.foo['bar'];

使用 LLVM C++ API?

我没有找到任何关于复杂数据类型的文档(例如从 Value 继承的 HashMap),所以我有点迷失在这里。LLVM C 演示网页也没有用,因为 C/C++ 中没有这种数据类型。

我已经完成了 Kaleidoscope 教程,但没有找到任何其他非常好的教程。

4

2 回答 2

4

使用 llvm 用 python 编写的jit 语言示例在这里链接到一个学生项目
它不是您直接需要的,而是面向对象的,并且该报告涵盖了一种实现语言面向对象的简单方法。

于 2012-11-26T17:09:18.047 回答
3

就像您在任何其他低级语义之上执行此操作一样。你必须实现你自己的运行时库、你自己的哈希映射(或者你想用于动态调度的任何其他东西)。LLVM 不(也不应该)为其生成的代码提供任何运行时。

于 2012-07-23T08:44:10.263 回答