编写一个针对LLVM的C#编译器是否有意义?

时间:2010-02-11 22:05:54

标签: c# compiler-construction llvm

我正在考虑编写一个小型的C#编译器。

我一直在想的一个想法就是写一个C#语法的子集,比如说ANTLR的2.0。然后,使用它来定位LLVM并为C#编写本机代码编译器

这个想法是否有意义或者这不起作用?有没有办法继续拨打BCL?

我知道有CCI (Common Compiler Infrastructure)可以帮助我简单地生成.NET可执行文件。但我很好奇我上面说过的可能吗?

3 个答案:

答案 0 :(得分:16)

Mono already can be used with a LLVM backend

More details in the Mono docs

查看限制部分。

更新:从Mono 2.8开始,LLVM后端已经逐渐稳定下来。请参阅Mono 2.8 release notes

答案 1 :(得分:3)

超越Mono已被引用,微软正在开发名为LLILC的实现(它不仅仅是一个实验)。所以这很有道理。

答案 2 :(得分:1)

除非您想要重写整个标准库,否则最好找一个不同的项目,如果您只是在寻找可以做的事情。可能是编写.NET字节码编译器或IL汇编程序。