【问题标题】:Which processors can run CIL哪些处理器可以运行 CIL
【发布时间】:2011-01-27 17:33:51
【问题描述】:

哪些处理器能够运行Common Intermediate Language(CIL),以前称为 Microsoft 中间语言 (MSIL)?显然,任何可以运行带有 .net 的 Microsoft Windows 的机器以及 Mono 项目所针对的机器都符合条件。

.NET Micro Framework 似乎能够针对上述未涵盖的其他处理器,但我不清楚它是否使用 CIL。

是否有人列出了哪些处理器能够在 CIL 中运行程序或直接解释 C#(就像 .NET Micro Framework 似乎所做的那样)?

EDIT 澄清一下,我知道 CLI 不是直接在金属上执行的,而是由运行时引擎执行的。因此,对于这个问题,任何具有执行 CIL 的运行时引擎的处理器都符合条件。

【问题讨论】:

  • 你的问题没有真正的意义。要么你在问哪些处理器实际上使用 CIL 作为它们的机器指令代码,在这种情况下,答案当然是“无”——或者你在问什么处理器理论上可以执行 CLR,在这种情况下,答案显然是“所有这些,除了那些非常有限以至于不能真正执行任意程序的程序”。

标签: cil


【解决方案1】:

没有。没有运行 CIL 的处理器 - 据我所知,CIL 总是被翻译成另一种形式的机器代码。

我认为有一个 CIL 处理器“浮动”是研究项目,但目前还没有在现实世界中看到。

【讨论】:

    【解决方案2】:

    .NET Micro Framework 不允许处理器直接解释 CIL。它只是一个更轻量级的解释器,可以在嵌入式硬件上运行,而不需要完整的 PC 架构。它类似于 .NET Compact Framework,但占用空间更小。查看它支持的架构:

    .NET Micro Framework Hardware

    【讨论】:

    • 从技术上讲,它是解释器而不是编译器。 web.cs.wpi.edu/~gpollice/cs544-f05/CourseNotes/maps/Class1/… 您可以在此处查看有关 .NET 框架的详细信息:en.wikipedia.org/wiki/.NET_Framework 有一个编译器可以将您的 C# 转换为 CIL,然后 .NET 解释器使用它来实际工作。
    • CLR 将 CIL 编译为机器码并执行它,即它是编译器而不是解释器。见 Futamura 预测:en.wikipedia.org/wiki/Partial_evaluation#Futamura_projections
    • Jon,采用中间语言并执行它(通过使其成为机器代码,因为这是处理器能够理解的全部内容)解释器 (en.wikipedia.org/wiki/Interpreter_(computing))。不同之处在于,它是在执行期间即时发生还是在开发人员在程序运行之前点击编译时发生。你正在分裂头发,因为随着计算的发展,这两个定义都变得模糊了。多年来,基于 VM 的语言一直被认为是解释性语言(Java、C#——甚至 Lisp)。试图争论解释器也是编译器是没有实际意义的。
    • 为了争论而争论是没有意义的。浪费时间,我相信我们都有更好的事情要做。
    • 抱歉,.NET Micro Framework 在执行前将 CIL 编译为机器码,因此它是解释器而不是编译器。 .NET Compact Framework 进行 JIT 编译,.NET Micro 源代码包含 JIT 编译器,但它被禁用 (!)。我的错。 netmf.codeplex.com/SourceControl/changeset/view/12176#39401
    【解决方案3】:

    Afaik,TomTom 是对的。 他们称它为中级是有原因的……它介于程序员的语言和处理器的语言之间。 不过,一个有趣的想法 - 拥有一个运行 CIL 代码的处理器。

    【讨论】:

      【解决方案4】:

      我发现两个 research 处理器本机执行 CIL,就像 JOP 对 Java 字节码所做的一样:

      SCIL 根据论文,它支持 CIL 的一个子集,因此 CIL 的某些部分必须在子程序中进行模拟。老实说,虽然处理器和纸张看起来不太好。

      DSP Core for Hardware Based CIL Machine 这个看起来更合法,但它的设计考虑了一个非常特定的目的(手机上的 DSP)。

      意识到这些内核是为与 FPGA 一起使用而设计的。遗憾的是,他们都没有提供源代码或位文件,所以如果你真的想使用它们,你必须向作者索取更多信息。

      【讨论】:

        【解决方案5】:

        .NET Micro Framework 页面上,它提到了运行 CIL 的 CLR。​​

        它包括一个小版本的 .NET CLR...

        supported platforms on mono-project.com 列出了一些架构。

        虽然在投入太多时间之前要小心测试它。 唯一有保证的目标是与 Xamarin 产品捆绑在一起的目标。 在过去,mono 缺少对某些 ARM 架构的浮点支持,此后已添加。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-01-31
          • 2018-11-08
          • 2017-06-10
          • 2016-07-11
          • 2013-09-01
          • 1970-01-01
          • 2017-08-08
          相关资源
          最近更新 更多