我正在考虑编写一个小型的C#编译器。
我一直在想的一个想法就是写一个C#语法的子集,比如说ANTLR的2.0。然后,使用它来定位LLVM并为C#编写本机代码编译器
这个想法是否有意义或者这不起作用?有没有办法继续拨打BCL?
我知道有CCI (Common Compiler Infrastructure)可以帮助我简单地生成.NET可执行文件。但我很好奇我上面说过的可能吗?
答案 0 :(得分:16)
Mono already can be used with a LLVM backend
查看限制部分。
更新:从Mono 2.8开始,LLVM后端已经逐渐稳定下来。请参阅Mono 2.8 release notes。
答案 1 :(得分:3)
超越Mono已被引用,微软正在开发名为LLILC的实现(它不仅仅是一个实验)。所以这很有道理。
答案 2 :(得分:1)
除非您想要重写整个标准库,否则最好找一个不同的项目,如果您只是在寻找可以做的事情。可能是编写.NET字节码编译器或IL汇编程序。