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

有没有办法用C#编写LLVM前端编译器?,c#,llvm,C#,Llvm,有没有办法用C语言编写LLVM前端编译器?如果你想用C语言编写LLVM编译器,我不知道为什么不可以。有一种方法,只要您遵守该语言,就没有理由不能用C#编写一些东西来解析该语言,或者: 根据语言生成输出(如实时解释器) 在C#中创建一个程序集,该程序集将执行LLVM指令 这并不是说这很容易,但可以做到。有两种方法。您可以P/调用LLVM的C绑定(足以实现编译器后端),也可以使用C++/CLI编写自己的包装器 我为LLVM的C绑定头使用了Clang生成的XML AST转储来自动为它们生成.NET

有没有办法用C语言编写LLVM前端编译器?

如果你想用C语言编写LLVM编译器,

我不知道为什么不可以。有一种方法,只要您遵守该语言,就没有理由不能用C#编写一些东西来解析该语言,或者:

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

这并不是说这很容易,但可以做到。

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


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

不,我正在寻找用C#编写LLVM编译器。如果您愿意,我将删除此anwserUpdate供将来的人使用:不要尝试为C#编写位码/ll解析器/编写器,而是使用一些绑定,例如或(我没有试过)。--免责声明,我是这些的作者。现代(2021年)的答案是:和