有没有办法在C#中编写LLVM前端编译器?

时间:2010-08-24 17:51:05

标签: c# llvm

有没有办法在C#中编写LLVM前端编译器?

3 个答案:

答案 0 :(得分:9)

我不明白为什么不。有一个language reference for LLVM,只要您符合该语言,就没有理由不能在C#中编写一些可以解析该语言的东西:

  • 根据语言生成输出(如实时解释器)
  • 在C#中创建一个将执行LLVM指令的程序集

这并不是说它 easy ,但可以完成。

答案 1 :(得分:3)

有两种方法。您可以P / Invoke LLVM的C绑定(足以实现编译器后端),或者您可以使用C ++ / CLI编写自己的包装器。

我使用Clang生成的XML AST转换为LLVM的C绑定头自动生成.NET绑定。但是不可能再这样做,因为已经从Clang中删除了XML AST打印机,没有可用的替代品。

答案 2 :(得分:1)

如果您希望使用LLVM编译器FOR C#,Mono 2.6 can use LLVM