我想知道,如果有一个.网兼容的CLR实施的使用CLI (共同语言的基础设施),例如使用。净本身,或至少,如果有任何资源,这将有助于建立一个。

基本上,类似的东西。净的程序负荷的组件作为MemoryStreams,分析的字节,建的类型,并执行该指示。或者,它可以JIT汇编为标准的IL使用的反思。发射或但是。

我不想要 汇编 a.净的语言由运行原CLR。我想要一个CLR的 中的一个。净语言 (不不受管理C++或C,因为它通常是) 运行 CIL。 如果做得对的,它应该能够运行的本身。

任何思想上使用单。塞西尔对这样的事情吗?

有帮助吗?

解决方案

我认为目前没有任何独立的.net虚拟机可以自托管,但是 Cosmos 和< a href =“http://sharpos.org”rel =“noreferrer”> SharpOS 是用C#编写的.net运行时。

可以重用一些运行时代码来增加独立运行时。 Cosmos可用于在启动时托管自定义应用程序: http://www.codeproject.com /KB/system/CosmosIntro.aspx

其他提示

您应该查看 IKVM.NET Project 。它包括一个用.NET编写的Java虚拟机。

http://www.ikvm.net/

我知道这不是一个在CLR之上运行的实际CLR,但它是我所知道的最接近你想要的东西。

我不知道一个,而是想法frm JVM上运行JVM应该是有帮助的。

如果您愿意扩展“运行CIL”的定义,到“JIT-将CIL编译为本机代码”,然后你应该看看托管操作系统联盟 - 一群人(包括我自己)工作创建编写托管操作系统内核所需的运行时片段。

目前还有很多工作要做,但有可能JIT编译并运行简单方法(仅限Win32 - 我们目前使用P / Invoke创建本机代码缓冲区)

它是可能的,原则上通过结合技术:

  • Jikes功 是Java虚拟机执行情况编写的。
  • IKVM.NET, 实施的平台。网。

它可能还可能 , 编来编程码,编译码Javascript使用 Emscripten, 和运行Javascript。净使用任何不同的口译员。

查看System.Reflection.Emit命名空间,特别是ILGenerator类。

你可以动态发射IL。

http://msdn.microsoft.com /en-us/library/system.reflection.emit.ilgenerator_members.aspx

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top