【24h】

Faster than C#: efficient implementation of dynamic languages on .NET

机译:比C#更快:.NET上动态语言的有效实现

获取原文
获取原文并翻译 | 示例

摘要

The Common Language Infrastructure (CLI) is a virtual machine expressly designed for implementing statically typed languages such as C#, therefore programs written in dynamically typed languages are typically much slower than C# when executed on .NET.rnRecent developments show that Just In Time (JIT) compilers can exploit runtime type information to generate quite efficient code. Unfortunately, writing a JIT compiler is far from being simple.rnIn this paper we report our positive experience with automatic generation of JIT compilers as supported by the PyPy infrastructure, by focusing on JIT compilation for .NET. Following this approach, we have in fact added a second layer of JIT compilation, by allowing dynamic generation of more efficient .NET bytecode, which in turn can be compiled to machine code by the .NET JIT compiler.rnThe main and novel contribution of this paper is to show that this two-layers JIT technique is effective, since programs written in dynamic languages can run on .NET as fast as (and in some cases even faster than) the equivalent C# programs.rnThe practicality of the approach is demonstrated by showing some promising experiments done with benchmarks written in a simple dynamic language.
机译:公共语言基础结构(CLI)是专门用于实现诸如C#之类的静态类型语言的虚拟机,因此,在.NET上执行时,以动态类型语言编写的程序通常比C#慢得多。rn最近的发展表明,Just In Time(JIT) ),编译器可以利用运行时类型信息来生成高效的代码。不幸的是,编写JIT编译器绝非易事。在本文中,我们重点介绍了.NET的JIT编译,报告了我们在PyPy基础结构支持下自动生成JIT编译器的积极经验。按照这种方法,我们实际上通过允许动态生成更高效的.NET字节码,实际上又增加了JIT编译的第二层,而该字节又可以由.NET JIT编译器编译为机器代码。本文将证明这种两层JIT技术是有效的,因为用动态语言编写的程序可以在.NET上以与等效C#程序一样快的速度运行(在某些情况下甚至比同等C#程序还要快。)展示了用一种简单的动态语言编写的基准进行的一些有希望的实验。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号