4

javascriptのような言語を想定すると、次のようなシステムをどのように実装できますか。

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

LLVM C ++ APIを使用していますか?

複雑なデータ型(Valueから継承するHashMapなど)に関するドキュメントが見つからなかったため、ここで少し迷っています。C / C ++にはそのようなデータ型がないため、LLVMCデモWebページも役に立ちません。

万華鏡のチュートリアルを行いましたが、他に本当に良いチュートリアルは見つかりませんでした。

4

2 に答える 2

4

llvmを使用してPythonで記述されたjit言語の例は、学生プロジェクトへのリンクです。
それは直接必要なものではありませんが、オブジェクト指向であり、レポートは言語のオブジェクト指向を実装するための簡単な方法論をカバーしています。

于 2012-11-26T17:09:18.047 に答える
3

他の低レベルのセマンティクスの上でそれを行うのとまったく同じ方法です。独自のランタイムライブラリ、独自のハッシュマップ(または動的ディスパッチに使用したいもの)を実装する必要があります。LLVMは、生成するコードのランタイムを提供しません(また、提供すべきではありません)。

于 2012-07-23T08:44:10.263 に答える