在.NET 4.0的运行时进行动态编程时,我们引入了一个新功能:动态语言运行时.可以这样理解,CLR的目的是为静态类型的编程语言提供一个统一的框架或编程模型,而DLR便是在.NET平台上为动态语言提供了统一的编程模型.CLR本身已经有一些支持动态编程能力,如反射,Emit等等.不过在.NET上实现动态语言的时候,总会一遍又一遍地去实现某些功能,还有如动态语言如何与静态语言进行交互,这些都由DLR来提供.DLR的特性包含了,如表达式树.动态分发.Call Site缓存,这可以提高动态代码的执行效率…