CLR,全称Common Language Runtime,即公共语言运行时,在.NET Framework框架下扮演着非常重要的角色,是.NET二进制代码的执行引擎。
CLR将IL(Intermediate Language中间语言)编译为机器代码,并提供内存管理、垃圾回收、线程管理、安全性、类型安全、异常处理、代码验证等运行时服务,使得 .NET Framework能够支持多种编程语言编写特定格式的代码, 并运行在多个操作系统上,CLR在此过程中占据着至关重要的角色。
CLR实现了中间语言IL到机器语言的 JIT (Just In Time)编译器,具有很好的跨平台性能,并使得 .NET 开发人员可以使用 C#、F#、VB 和许多其他语言编写应用程序或跨平台应用,而不用关心代码底层实现细节。
CLR还可以支持动态项目和代码的运行,跨越文件夹和文件进行链接和合成,大大增加了代码的可重用性。
在框架的设计中,CLR以面向对象的方式来支持各种语言的交互。同样作为公共语言运行时的一部分,即 Objective-C 与 C# 相比较具有更高的动态性,此时 CLR将有助于更方便的实现代码的动态。
CLR将各种程序代码编译成了一个中间语言,再通过托管执行的机制使程序代码即使由于环境的变化而影响整体的性能,也不会影响程序的正常执行。
CLR提供了强制的类型检查和有名字的空间保护,这样就可以保证代码不会误用和不合法的访问。此外,CLR还提供了安全代码接口权限模型,使得代码可以信赖性更加得到保证。
CLR在 .NET平台上的应用非常广泛,可以支持 .NET 语言的编译、发布和执行,也可以支持不同语言之间的交互操作,这项技术的发展, 为各种行业、各种应用、各种背景下的编程带来了巨大的便利,因此得到了广泛的应用和拥护。