JIT: “just in time” compiler that translates IL (intermediate language) into native machine code at runtime. Also known as ‘Jitter’, it will cache already compiled machine code in memory.
CLR: “common language runtime”, primary role is to locate, load, and manage .NET types on your behalf. Also takes care of memory management and performs security checks.
CTS: “common type system”, describes all possible data types and programming constructs supported by the runtime, specifies how they can interact with each other, details how they are represented in the .NET metadata format.
CLS: “common language specification”, subset of common types and programming constructs that all .NET programming languages can agree on.