.NET › CLR & Runtime

What is the CLR (Common Language Runtime), and what are its core responsibilities?

Beginner

Answer

The CLR is the execution engine of .NET, responsible for managing memory (allocation and garbage collection), just-in-time (JIT) compiling IL code to native machine code, enforcing type safety, handling exceptions, managing threads, and providing security sandboxing. Any .NET language (C#, F#, VB.NET) compiles down to a common Intermediate Language (IL) that the CLR executes uniformly.
// C# source compiles to IL, which the CLR JIT-compiles to native code at runtime
public int Add(int a, int b) => a + b;
// Compiled IL (simplified): ldarg.1, ldarg.2, add, ret
Real-world example Because the CLR provides a common execution model, a library written in F# can be seamlessly consumed by a C# application, since both compile to the same IL that the CLR executes identically regardless of source language.

Common follow-ups: What's the difference between IL and native machine code?;How does the CLR differ from the JVM conceptually?