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

编写一个针对LLVM的C#编译器有意义吗?,c#,compiler-construction,llvm,C#,Compiler Construction,Llvm,我正在考虑编写一个小型C#编译器 我一直在玩弄的一个想法是编写C#文法的子集,比如说为ANTLR编写2.0。然后,使用它来针对LLVM并为C#编写本机代码编译器 这个想法有意义吗?还是行不通?有没有办法再打电话给BCL 我知道有一些方法可以帮助我简单地生成.NET可执行文件。但我很好奇我上面说的是否可能 不过,请查看限制部分 更新:从Mono 2.8开始,LLVM后端已逐渐稳定。请参阅。除非您也要重写整个标准库,否则如果您只是想做点什么,最好找一个不同的项目。一种可能是编写一个.NET字节码

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

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

这个想法有意义吗?还是行不通?有没有办法再打电话给BCL

我知道有一些方法可以帮助我简单地生成.NET可执行文件。但我很好奇我上面说的是否可能

不过,请查看限制部分


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

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

除了已经提到的Mono之外,微软正在开发自己的名为的实现(这不仅仅是一个实验)。所以这很有意义。

我对.NET的内部结构不太了解,无法真正帮助您,但据我所知,除了调用外部.NET assembliesDefine“small”之外,这应该不会有任何问题。规范有500页之长。@Eric Lippert,Mike Stall,我相信他是你们的编译器团队的成员,他写了一个相对“小”的C#编译器,名为“Blue”,它能够自我引导成为他的第一个C#程序;迈克以前的办公室在我的隔壁。不幸的是,他不再是编译器团队的成员,尽管他仍然在部门。