动态语言运行时
动态语言运行时(Dynamic Language Runtime,DLR)是微软构架于CLR之上的一组服务集合,可提供下列功能:
- 动态类型系统,以分享给所有使用DLR服务的语言。
- 动态方法分派
- 动态产生代码
- Hosting API
DLR被用来在.NET Framework上实现如Python和Ruby等动态语言。DLR服务目前已经使用在IronRuby(Ruby的.NET实现)和即将发布的IronPython 2.0。同时Microsoft也项目使用在Visual Basic .NET 10.0与Managed JScript(ECMAScript 3.0)上。
要让多种动态语言实现能共享同样的系统,它应该要能很容易地让这些实现相互沟通。举例来说,它应该要让动态语言能使用以其他动态语言撰写的函数库。另外,Hosting API允许能与静态语言,如C#,相互操作。
源由
Microsoft DLR最早是由Microsoft在MIX 2007上公开。DLR代码目前仍未正式发布,只存在于IronPython的库(Repository)里面。Microsoft项目在IronPython 2.0发布的同时,发布DLR第一个可用的版本。
参见
- Da Vinci Machine,在Java虚拟机层级让Java平台能支持动态语言的努力。
参考
- MIX 07 - Silverlight shines brighter!. [2007-04-30]. (原始内容存档于2007-05-02).
- MIX 07 Video Presentation - DEV02 - Just Glue It! Ruby and the DLR in Silverlight. [2007-05-04]. (原始内容存档于2007-05-08).