The Full form of CLR is Common Language Runtime and it is the heart of the .NET framework. All Languages have its own runtime and its the responsibility of the runtime to take care of the code execution of the program. For ex. VB6 has MSVBVM60.DLL, VC++ has MSCRT40.DLL, Java has Java Virtual Machine etc.On the same way .NET has CLR.The responsibilities of the CLR are as follows:
Garbage Collection :- CLR automatically manages memory thus prevents memory leaks. When the object is not referred GC automatically releases those memories results in efficient memory management.
Code Access Security :- CAS has the rights to program depending on the security configuration of that machine. For Ex. the program has the right to edit or create a new file but the security configuration of machine does not allow the program to delete the file. CAS take care that code runs under the environment of machines security configuration.
Code Verification :- It ensures proper code execution and the type safety while code runs. It also prevents the source code to perform illegal operation such as accessing invalid memory locations etc.
IL( Intermediate language ) to native translators and optimizer's :- By using JIT, CLR compiles the IL code to machine code and executes them. CLR also determines, depending on the platform what is optimized way of running the IL code.