动态语言运行时

动态语言运行时Dynamic Language RuntimeDLR)是微软构架于CLR之上的一组服务集合,可提供下列功能:

  • 动态类型系统,以分享给所有使用DLR服务的语言。
  • 动态方法分派
  • 动态产生代码
  • Hosting API

DLR被用来在.NET Framework上实现如PythonRuby等动态语言。DLR服务目前已经使用在IronRuby(Ruby的.NET实现)和即将发布的IronPython 2.0。同时Microsoft也项目使用在Visual Basic .NET 10.0与Managed JScriptECMAScript 3.0)上。

要让多种动态语言实现能共享同样的系统,它应该要能很容易地让这些实现相互沟通。举例来说,它应该要让动态语言能使用以其他动态语言撰写的函数库。另外,Hosting API允许能与静态语言,如C#,相互操作。

源由

Microsoft DLR最早是由Microsoft在MIX 2007上公开。DLR代码目前仍未正式发布,只存在于IronPython的库(Repository)里面。Microsoft项目在IronPython 2.0发布的同时,发布DLR第一个可用的版本。

参见

  • Da Vinci Machine,在Java虚拟机层级让Java平台能支持动态语言的努力。

参考