|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
是不是实质都是API?有的好像不只是API那么简单的,有的也是一种框架就像MFC一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^)在从此的数月和数年内,静态言语将成为.NET平台上愈来愈主要的脚色。微软在静态言语和CLR之间的集成作了大批的投资。在我们进进集成事情之前,必要花点工夫来会商一下开源。在.NET平台上最主要的静态言语是IronPython和IronRuby。这两种言语都接纳的是开源协定,它们其实不依照一般的企图修正言语。一切由微软撑持的开源言语都有两个公布周期。针对开源项目会有公布前/公布的一般企图,这会有很多的展现版本。与此同时还会有正式的微软首选的举行过深切测试的版本。公司和开辟职员能够选择任一种公布体例的版本,它们都是基于一样的代码。至于集成,都是环绕着IDynamicObject接口。这类办法作为一个办法绑定器以同意每一个对象利用的这些言语的语义。开箱即用的言语包含IronPython,IronRuby,JScript和COM。是的,COM被以为是前期绑定和静态办法挪用方面的一门静态言语。在特定的言语绑定器以外,开辟职员能够在单一的类上利用出格划定规矩。最复杂的办法是从利用笼统类DynamicObject入手下手。上面是能够被重写自界说举动的举措清单。你看这个清单的时分,你会发明你所利用的言语的语法其实不撑持某些举措。
- GetMember
- SetMember
- DeleteMember
- UnaryOperation
- BinaryOperation
- Convert
- InvokeMember
- Invoke
- CreateInstance
- GetIndex
- SetIndex
- DeleteIndex
开辟职员其实不必要完成一切的这些办法。比方,它们能够只经由过程撑持SetMember和GetMember来创立一个属性包。恰是如许计划的体例,一个真正静态的类能够用任何言语来编写,乃至是像C#那样静态范例的言语。IronPython在最后是有它本人言语特定的言语笼统语法树。在DLR的开辟过程当中发明在分歧言语之间的差别现实上是很小的。最初,断定LINQ表达式树(LINQExpression)是任何静态言语所必要的工具。将在.NET4上增添所短少的特征是分派、流程把持(轮回和goto)和静态调剂节点。静态调剂节点是言语特定和用于办法挪用和重载决议的特定于言语的划定规矩。特定于言语语义的一个示例是2乘以20亿的了局。假如表达式树表达IronRuby大概IronPython的语义,它将前往40亿。利用C#的默许语义将会溢出和VB的语义将抛出一个非常。大概想晓得为何,IronRuby和IronPython在大概产生溢出的时分会主动转换Int32到BigInteger。为了进步功能,DLR利用一种新的callsite机制。DLR中的Callsites是静态挪用基于托付的静态范例化的暗示。因为创立托付的开支是很年夜的,托付被缓存到一个列表中。关于每个挪用,从列表中找到一个婚配的。假如看到一个之前没见过的范例,一个新的基于共享笼统语法树的范例被增加到列表中。要断定一个参数范例是不是看到过,每一个言语必要供应一个MetaObject。这用于反省参数范例是不是与已往所见过的范例婚配和假如范例婚配的话怎样处置。创立新的MetaObject的才能同意开辟职员交换失落高贵的基于哈希表的称号,而往查找代表了被挪用的办法的实践表达式树。这取决于它是怎样编写的,乃至能够凌驾静态言语天下中所看到的功能。检察英文原文:.NETandDynamicLanguages
本文来自:http://www.infoq.com/cn/news/2008/10/DLR-NET4有专家说:net网页编程不是跨平台,net网页编程就是平台,这很好的定义了net网页编程的特点。有了net网页编程,你只需要等待net网页编程平台在新平台上移植。这还不错吧!只是,net网页编程不是一个平台,而是多个平台。你需要在这个net网页编程平台移植到另一个net网页编程平台。 |
|