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

在.NET 4.0中我们使用了DLR,不仅仅是IronPython和IronRuby,还有C# 4和VB.NET 10,它们使用DLR实现动态分发功能。因此我们共享了语言的动态能力实现方式,于是这些语言之间可以轻松地进行交互。同样我们可以与其他多样性的技术进行交互,例如使用JavaScript操作Silverlight的DOM,或是与Ruby、Python代码沟通,甚至用来控制Office等自动化服务

最新文章

  1. SQLite剖析之设计与概念
  2. 第三个Sprint冲刺第七天
  3. nginx rewrite重写与防盗链配置
  4. Safari HTML5 Canvas Guide: Creating Charts and Graphs
  5. EasyUI 使用
  6. 使用 MyEclipse远程调试 Java 应用程序
  7. javaScript 工作必知(七) 对象继承
  8. 尝试使用Memcached
  9. 用PHPExcel类读取excel文件的内容
  10. 质量:“PM,你怎么可以放弃我?!”
  11. 【CF1151F】Sonya and Informatics(动态规划,矩阵快速幂)
  12. IntelliJ IDEA 下载安装以及破解
  13. line-height 设置为 1
  14. Python学习之旅(二十二)
  15. 编写灵活、稳定、高质量的 css代码的规范
  16. [Java] Hashtable 源码简要分析
  17. Java泛型简单理解
  18. 第四章 logstash - type与tags属性
  19. .Net C# 5.0 规范:迭代器
  20. Eltwise层解析

热门文章

  1. PayPal支付-Reaact框架
  2. gin中自定义http的配置
  3. 大厂面试:一个四年多经验程序员的BAT面经(字节、阿里、腾讯)
  4. keepalived的抢占与非抢占模式
  5. HTTPS加密证书流程(2)
  6. redis与集群实用操作笔记
  7. 学习JAVAWEB第三十七天(读构建之法有感)
  8. ajaxl利用json 传送数据的 三种提交方式?
  9. ApacheCN C# 译文集 20211124 更新
  10. Bootstrap 弹出表单