在.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等自动化服务

C# 开始支持动态化编程的更多相关文章

  1. 5000量子位支持量子编程,D-Wave推出下一代量子计算平台计划

    5000量子位支持量子编程,D-Wave推出下一代量子计算平台计划 近日,全球量子商用化重要参与者 D-Wave 公司又有大动作:推出其5000量子比特量子计算的发展蓝图.D-Wave 下一代量子计算 ...

  2. GitHub的实现是否是基于此语言的支持网络编程性呢?

    我觉好像是的,我之前很奇怪为什么那样就可以引用了,后来发现GitHub中的java  JavaScript  phton等语言都支持网络编程.

  3. c++ 11开始语言本身和标准库支持并发编程

    c++ 11开始语言本身和标准库支持并发编程,意味着真正要到编译器从语言和标准库层面开始稳定,估计得到17标准出来.14稳定之后的事情了,根据历史经验,新特性的引入到稳定被广泛采用至少要一个大版本的跨 ...

  4. 假如 Web 当初不支持动态化

    楔子 Web 生而具有极其灵活的动态化基础能力,诸如: 动态插入script标签执行任意脚本逻辑 动态插入style标签引入任何 CSS 样式规则 通过iframe标签嵌入整站 以上标签均可直接加载网 ...

  5. 5.QT制作编译器,可以简单支持中文编程

    学习了文件操作,那么先做一个自制的IDE吧,就是简单的读取,修改,保存文件,使用QT语言,附上github的代码:QT基本文件操作实现中文编程 截图: 运行效果

  6. KTL 一个支持C++14编辑公式的K线技术工具平台 - 第四版,稳定支持Qt5编程,zqt5语法升级,MA函数提升性能1000%,更多公式算法的内置优化实现。

    K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...

  7. 通过 Redis 实现 RPC 远程方法调用(支持多种编程语

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/101.html?1455869487 我发现经常研究并且为之兴奋的一件事就 ...

  8. 让Netbeans 8.0 支持 Python 编程

    发布人 admin. 分类 Python, 技术手札 Netbeans版本:Netbeans 8.0 for PHP Python版本:python 2.7.8 1.添加插件更新中心 打开Netbea ...

  9. VB.NET 编程元素支持更改总结

    Visual Basic 2005 更改了它支持各种编程元素的方式,主要是为了提供与公共语言运行库的互操作性.许多 Visual Basic 6.0 元素被重新命名,重新分类或与 Visual Bas ...

随机推荐

  1. 使用Flightradar24's CesiumJS App追踪世界商用航线

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 每天,超过10万架商业航班在世界各地运送乘客.在任何特定时刻,您 ...

  2. 写react项目需要注意的

    key应该是稳定的,且唯一的,尽量不要用索引作为key 都知道React组件渲染列表时需要为每个列表元素分配一个在列表中独一无二的key,key可以在DOM中的某些元素被增加或删除视乎帮助React识 ...

  3. PowerDotNet平台化软件架构设计与实现系列(12):HCRM人员管理平台

    技术服务于业务,良好的技术设计和实现能够大幅提升业务质量和效率. PowerDotNet已经形成了自己的开发风格,很多项目已被应用于生产环境,可行性可用性可靠性都得到了生产环境验证. 编程是非常讲究动 ...

  4. python使用制表符或者换行符来添加空白--3

    #!/usr/bin/python #coding=utf-8 message="python" print(message) print("\tpython" ...

  5. contos 6.9 和 centos7 配置docker?

    一.contos 6.9 配置docker? 1.检查centos的内核,因为目前docker的版本所支持的centos最低内核版本为2.4 // uname -r // 2.6.32-696.el6 ...

  6. Linux 安装和 连接xshell

    一.介绍和安装 /*一.linux:? 为什么要学习它. 常见的操作系统? 1.windows, linux,mac 使用命令行进行操作 Windows cmd Linux 和Mac 中的命令行是 s ...

  7. AGC004 部分简要题解

    E 首先问题可以转化为:每次将出口带着边界走,出了边界的机器人立马消失,最大化出口碰到的机器人数量. 考虑哪些机器人是已经出界了的,不难有观察: 当前出界的机器人只与当前出口往四个方向走过的最远距离有 ...

  8. 编译PHP扩展的方式

    编译的两种方式其实很简单,这里记录只是为了以后遇到这种情况时不加思索地运用上,而不是花费一些时间去回忆. C/C++程序编译有两种方式:动态编译.静态编译.PHP 是使用 C/C++程序开发的一门脚本 ...

  9. Webpack 多html入口、devServer、热更新配置

    一.clean-webpack-plugin: 在每次生成dist目录前,先删除本地的dist文件(每次自动删除太麻烦) 1.安装clean-webpack-plugin   npm/cnpm i c ...

  10. JavaWeb开发获取客户IP地址

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11737637.html 本地调试如果使用的是localhost进行访问, 则会获取到 0:0: ...