CLR(COMMON LANGUAGE RUNTIME)
CLR is Common Language Runtime and it forms the heart of the .NET framework.
All Languages have runtime and its the responsibility of the runtime to take care of the code
execution of the program. For example VC++ has MSCRT40.DLL,VB6 has MSVBVM60.DLL,
Java has Java Virtual Machine etc.
The important points of CLR is:
• Lightweight Just-in-time compiler:
• MSIL to Native machine language; Can be ported to numerous platforms.
• The compiled code is transformed into an intermediate language called the Microsoft Intermediate Language (MSIL or IL)
• An integer in Visual Basic .NET or an int in C# are converted to the same .NET data type, which is Int32.
• The IL that is created is the same for all languages.
• The assembly is the compiled .NET program.
• The assembly contains the IL along with additional information called metadata.
• Metadata contains information about the assembly.
• Use the IL Disassembler (ildasm.exe) to view the IL within an assembly.
RESPONSIBILITY OF CLR
• Garbage Collection :- CLR automatically manages memory thus eliminating
memory leaks. When objects are not referred GC automatically releases those
memories thus providing efficient memory management.
• Code Access Security :- CAS grants rights to program depending on the security
configuration of the machine. Example the program has rights to edit or create
a new file but the security configuration of machine does not allow the program
to delete a file. CAS will take care that the code runs under the environment of
machines security configuration.
• Code Verification :- This ensures proper code execution and type safety while
the code runs. It prevents the source code to perform illegal operation such as
accessing invalid memory locations etc.
• IL( Intermediate language )-to-native translators and optimizer’s :- CLR uses
JIT and compiles the IL code to machine code and then executes. CLR also
determines depending on platform what is optimized way of running the IL