我只是希望将ECMA语言翻译成具有基本运行时(垃圾收集器)等的本机代码。我不是在谈论.NET只是C#的语言规范。
像任何其他本机编译语言一样使用C#作为Delphi,D或C ++的替代品,因为它提供了泛型,扩展类型,垃圾收集和许多其他不错的功能。作为一个语言,它非常好。
但我不喜欢.NET,也不觉得它非常便携(适用于PA-RISC的HP-UX的.NET?)。
因此,编译到C99会比编译本地更好,这对于Eiffel来说效果非常好。
答案 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的依赖性的工具可能就是您想要的。