版权归原作者所有,如有侵权,请联系我们

[科普中国]-受控代码

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

受控代码(managed code)是来自微软公司的术语,在中国大陆较多译为托管代码。受控代码以CLI虚拟机执行,如微软的.NET Framework共通语言执行平台,其它的CLI实作有Mono和DotGNU

受控代码的执行一般以较易为人所理解的编程语言来为受控代码环境撰写程序,具代表性的编程语言为C#、J#、C++或Visual Basic .NET。

执行代码时,运行库编译器(runtime-aware compiler)在受控执行环境下,将中间语言(Intermediate Language)编译成本机的机器码。受控执行环境可为代码插入垃圾回收、异常处理、类型安全、阵列边界和索引检查等,以保证代码安全的执行。

这正是即时编译(Just-in-time compilation)的手法。不同的是,档案中除了保存假机器码,同时也可包含提供给不同机器(如x86和PowerPC)的已编译执行码。类似于苹果的通用执行码格式的概念。1

受控代码和非受控代码在微软Windows环境下,所有不属于受控代码的,就被认为是非受控代码。在非微软Windows和混合环境下,受控代码有时泛化为用来指任何解译式编程语言。2

通用语言架构通用语言基础架构Common Language Infrastructure,简称CLI)是一个开放的技术规范。它是由微软联合惠普以及英特尔于2000年向ECMA倡议的。通用语言基础架构定义了构成.NET Framework基础结构的可执行码以及代码的运行时环境的规范,它定义了一个语言无关的跨体系结构的运行环境,这使得开发者可以用规范内定义的各种高级语言来开发软件,并且无需修正即可将软件运行在不同的计算机体系结构上。国际标准CLI定义在ISO/IEC 23271,最新版本在2012年修定。

通用语言运行库(CLR)则是微软对此标准(CLI)的实现。1

通用语言运行库通用语言运行平台Common Language Runtime,简称CLR)是微软为他们的.NET的虚拟机所选用的名称。它是微软对通用语言架构(CLI)的实现版本,它定义了一个代码运行的环境。CLR运行一种称为通用中间语言的字节码,这个是微软的通用中间语言实现版本。

CLR运行在微软的视窗操作系统上。查看通用语言架构可以找到该规格的实现版本列表。其中有一些版本是运行在非Windows的操作系统中。1

本词条内容贡献者为:

黄伦先 - 副教授 - 西南大学