9

C# で LLVM フロントエンド コンパイラを作成する方法はありますか?

4

3 に答える 3

9

理由がわかりません。LLVMの言語リファレンスがあり、言語に準拠している限り、その言語を解析する C# で何かを記述できない理由はありません。

  • 言語に基づいて出力を生成する (リアルタイム インタープリターのように)
  • LLVM 命令を実行するアセンブリを C# で作成します。

これは、簡単だと言っているわけではありませんが、実行できます。

于 2010-08-24T18:16:09.317 に答える
3

2 つの方法があります。LLVM の C バインディングを P/Invoke する (コンパイラ バックエンドを実装するには十分すぎる) か、C++/CLI を使用して独自のラッパーを作成することができます。

LLVM の C バインディング ヘッダーに対して Clang で生成された XML AST ダンプを使用して、.NET バインディングを自動的に生成しました。しかし、XML AST プリンターが Clang から削除されており、代替品がないため、これを行うことはできなくなりました。

于 2010-08-25T12:53:04.307 に答える
1

C# 用の LLVM コンパイラが必要な場合は、Mono 2.6 で LLVM を使用できます。

于 2010-08-24T17:53:51.670 に答える