.NET Framework General CLR: What is the Common Language Runtime?
Q: What is the Common Language Runtime?A: The .NET Framework provides a runtime environment which runs the code and provides services that make the development process easier. This runtime environment in .NET Framework is known as Common Language Runtime (CLR). The CLR sits at the very heart of managed code. Common Language Runtime is the generalized multi-language, reflective execution engine on which code originally written in various languages runs. At a higher level, CLR is simply an engine that takes in Intermediate Language (IL) instructions, translates them into machine instructions, and executes them. Although the common language runtime provides many standard runtime services, managed code is never interpreted. A feature called just-in-time (JIT) compiling enables all managed code to run in the native machine language of the system on which it is executing. The CLR shares much in common with a traditional operating system.
Managed code is the term used for any code that is running on .NET Framework.
When compiling to managed code, the compiler translates your source
code into Microsoft intermediate language (MSIL), which is a
CPU-independent set of instructions that can be efficiently converted to
native code. Intermediate Language is a binary assembly language that
is compiled at runtime down to whatever machine language is appropriate
for the host CPU. This runtime compilation is called Just-In-Time
Compiling or JIT-compiling.
Advantages of Managed Execution Environments
In unmanaged environments the compiler and linker directly compile the source code in to native instructions that are targeted at a specific processor. The disadvantage of this process is that each time you want to run your executable on a different platform you will have to re-compile the code using a compiler and linker that will compile the code that is targeted at the specific hardware. This means that each time you want your application to run on a different platform, you will have to ship the compiled instructions again and again. As this leads to compiling and maintaining multiple versions of the same application, the companies try to create a more generalized compiled version in order to target most of the environments. This process is known as the Lowest Common Denominator approach. This leads to a more generalized program which is not optimized properly and does not take advantages of the underlying hardware infrastructure (processor, cache, etc). Because the CLR supplies one or more Just in Time Compiler for each computer architecture it supports, the same set of MSIL can be JIT-compiled and run on any supported architecture. This
CLR provides the following benefits for developers:
- Vastly simplified development.
- Seamless integration of code written in various languages.
- Evidence-based security with code identity.
- Assembly-based deployment that eliminates DLL Hell.
- Side-by-side versioning of reusable components.
- Code reuse through implementation inheritance.
- Automatic object lifetime management.
- Code access security.
- Cross Language Integration.
- Self describing objects.
No comments:
Post a Comment