扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:Demien Watkins 2007年10月26日
关键字: net
运行库既执行托管代码,又执行非托管代码。托管代码是在运行库的控制下执行的,因此可以访问运行库提供的服务,如内存管理、实时 (JIT) 编译,以及本文涉及的最重要部分 — 安全性服务,如安全策略系统和验证。非托管代码是经过编译、要运行在特定硬件平台上的代码,它不能直接利用运行库。然而,当语言编译器生成托管代码时,该编译器的输出是以 Microsoft 中间语言 (MSIL) 表示的。MSIL 通常被描述为一种用于抽象、基于堆栈的计算机的面向对象的伪汇编语言。之所以说 MSIL 是面向对象的,是因为它有一些支持面向对象概念的指令,如对象分配 (newobj) 和虚函数调用 (callvirt)。之所以说是抽象的计算机,是因为 MSIL 不依赖于任何特定的平台。也就是说,它对于在其上运行的硬件不会作出任何假设。它之所以是基于堆栈的,是因为从本质上看,MSIL 是通过向堆栈压入 (push) 值和从中弹出 (pop) 值以及调用方法来执行的。MSIL 通常会在执行前被 JIT 编译为本机代码。(MSIL 也可以在运行该代码前编译为本机代码。这有助于缩短程序集的启动时间,但是 MSIL 代码通常是在方法级别进行 JIT 编译的。)
查看本文来源如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者