动态语言运行时

动态语言运行时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平台能支援动态语言的努力。

参考