.NET 4.0 DLR支持的动态语言

10

你知道.NET 4.0 DLR支持哪些动态语言的列表吗?

我知道IronRuby和IronPython被支持了。不确定是否支持IronScheme和F#。还有什么呢?

谢谢!


5
F# 不是一种动态语言。它是一种函数式语言,不以任何方式直接使用 DLR。 - JaredPar
3
编程语言将支持/使用DLR,而不是相反。 - nos
我发现,任何使用DLR服务实现的动态语言都可以在.NET框架上运行。 - tranmq
3个回答

10

IronPython和IronRuby将是唯一官方支持的动态语言。

C # 4.0将有一个新关键字“dynamic”,基于DLR创建动态对象。具有讽刺意味的是,使用dynamic关键字是静态声明。有关“dynamic”关键字的更多信息,请参见IronPython URLs

我认为很多关于DLR的混淆来自其他语言的许多错误尝试。出于我仍然无法完全理解的原因,Microsoft选择不继续支持Managed JScript。在Codeplex上的DLR页面上有一个有趣的讨论,其中一位MS员工发表了以下声明:

DLR JScript是用于通知DLR设计(表达式树,Interop,callsites,托管等)的实验性内容。我们发布的JS与asp futures和Silverlight dynamic sdk变得非常陈旧且无法维护,因为DLR持续演进以发布CLR 4.0。不幸的是,在Managed JScript成为第一类DLR语言之后,暂时没有开发和发布DLR-hostable JScript的计划。

即使在Managed JScript被引入作为第一类DLR语言之后,该观点也没有改变。VBx似乎从未在动态特征方面起步。IronLisp变成了IronScheme,虽然它不完全死亡(其RC版本于10月发布,但自11月以来没有更新)。Nua(DLR的Lua)于2008年无法启动。

值得注意的是Phalanger,.Net下的PHP。虽然目前尚未在DLR上,但根据维基百科上的描述,正在进行将其放入DLR的努力。


非常感谢您提供了一份非常有教育意义的答案。这就是我正在寻找的答案类型,而不是像“这是链接,请去查看”这样的回答。我当然可以使用谷歌搜索。 - tranmq

2

Jetfire是一种基于C#语法的.net动态语言,可以在http://jetfire.codeplex.com上获得。该项目提供了使用.net C# 4.0 'dynamic'对象(DLR)访问Jetfire对象的功能。


1

来自维基百科:动态语言运行时

DLR服务目前在IronRuby的开发版本中使用,这是Ruby语言的.NET实现,并且也用于IronPython。2007年,微软计划在即将推出的Visual Basic .NET 10.0(VBx)和Managed JScript(ECMAScript 3.0)中使用DLR。然而,截至2009年8月,微软已经没有计划在DLR上实现Managed JScript(ECMAScript 3.0),并且在Visual Basic开发更新中,微软没有进一步提到Visual Basic .NET正在使用DLR。与C#类似,Visual Basic将能够访问基于DLR构建的动态语言(如IronPython和IronRuby)中的对象。即将推出的Scheme实现IronScheme曾计划基于DLR构建,但决定放弃这个想法,因为该项目使用的DLR分支与主干不同步,并且根据开发人员的说法,DLR无法支持Scheme的大部分要求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接