3、DLR 基础:运行时、编译时、动态与静态语言解析

DLR 基础:运行时、编译时、动态与静态语言解析

1. DLR 与 CLR 的关系及优势

DLR(动态语言运行时)构建于 CLR(公共语言运行时)之上,这使得基于 DLR 的应用程序能自动受益于 CLR 的服务。例如,在 DLR 托管 API 中利用了 .NET 应用程序域和远程处理功能,允许在单独的进程或远程机器上托管动态语言。同时,CLR 的垃圾回收机制也可供基于 DLR 构建的动态语言使用。若不借助 DLR、CLR 或 JVM 来实现一门语言,实现垃圾回收器等功能将是一项艰巨的任务。

以 IronPython 为例,它是一个解释 Python 代码的运行时,且基于 DLR 构建。当运行 IronPython 代码时,会有 CLR、DLR 和 IronPython 这三个语言运行时协同工作。

2. 运行时(Runtime)与运行时间(Run Time)的区别

为避免混淆,需明确“运行时(Runtime)”和“运行时间(Run Time)”的区别。在本文语境中,运行时是一个软件组件,而运行时间指的是代码运行的时间。例如,说“我的程序在运行时间抛出异常”,人们能理解为“你的程序在运行时抛出异常”;但说“我的程序在运行时抛出异常”就不太合适。在其他书籍或文章中,这两个词可能看似可以互换,但本文为便于讨论,对它们进行了区分。

3. 运行时间与编译时间的对比

“运行时间”和“编译时间”常用来表示某件事是在程序执行时还是编译时发生。运行时间指代码运行的时间,编译时间指代码正在被编译的时间。下面通过典型的活动流程来对比两者。

3.1 编译时间活动流程

编译时,编译器将源代码作为输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值