是否有基于.NET / CLI的C#编译器实现?

时间:2009-10-12 10:28:36

标签: c# compiler-construction

我只是希望将ECMA语言翻译成具有基本运行时(垃圾收集器)等的本机代码。我不是在谈论.NET只是C#的语言规范。

像任何其他本机编译语言一样使用C#作为Delphi,D或C ++的替代品,因为它提供了泛型,扩展类型,垃圾收集和许多其他不错的功能。作为一个语言,它非常好。

但我不喜欢.NET,也不觉得它非常便携(适用于PA-RISC的HP-UX的.NET?)。

因此,编译到C99会比编译本地更好,这对于Eiffel来说效果非常好。

4 个答案:

答案 0 :(得分:1)

Mono框架支持本机编译,它们称之为Ahead Of Time(AOT)编译。更多信息:http://www.mono-project.com/AOT

答案 1 :(得分:0)

Singularity RDK使用Bartok。此外.Net Micro Framework有几个本机编译器(最后我使用Micro Framework,没有有一个本机x86编译器)。

第三方选项是使用Salamander .NET Linker

答案 2 :(得分:0)

也许Salamander .NET Mini-Deployment tool可能对您有所帮助,它确实将代码转换为本机代码并具有嵌入式运行时,因此您无需使用.NET框架进行部署。

答案 3 :(得分:0)

Microsoft的Native Image Generator (NGEN)能够将.NET程序集转换为本机程序。但是,它只表示绕过了JIT编译器,仍然需要安装.NET Framework。

  

原生图像生成器(Ngen.exe)   是一个改善的工具   托管应用程序的性能。   Ngen.exe创建本机映像   是包含已编译的文件   特定于处理器的机器代码,以及   将它们安装到本机映像中   缓存在本地计算机上。该   运行时可以使用来自的本机映像   缓存而不是使用   即时(JIT)编译器进行编译   原装配。

也许您可以详细说明您需要.NET程序集的本机代码的上下文?根据目的,NGEN可能已经足够好,但实际上可以消除对.NET Framework的依赖性的工具可能就是您想要的。