Common Type System - CTS
Common Type System (CTS) describes a set of types
that can be used in different .Net languages in common . That is , the
Common Type System (CTS) ensure that objects written in different .Net
languages can interact with each other. For Communicating between
programs written in any .NET complaint language, the types have to be
compatible on the basic level .
These types can be Value Types or Reference Types .
The Value Types are passed by values and stored in the stack. The
Reference Types are passed by references and stored in the heap. Common
Type System (CTS) provides base set of Data Types which is responsible for cross language integration. The Common Language Runtime
(CLR) can load and execute the source code written in any .Net
language, only if the type is described in the Common Type System (CTS)
.Most of the members defined by types in the .NET Framework Class Library (FCL) are Common Language Specification (CLS) compliant Types.
Microsoft Intermediate Language - MSIL
MSIL stands for Microsoft Intermediate Language. We
can call it as Intermediate Language (IL) or Common Intermediate
Language (CIL). During the compile time , the compiler convert the
source code into Microsoft Intermediate Language (MSIL) .Microsoft
Intermediate Language (MSIL) is a CPU-independent set of instructions
that can be efficiently converted to the native code. During the runtime
the Common Language Runtime (CLR)'s Just In Time (JIT) compiler converts the Microsoft Intermediate Language (MSIL) code into native code to the Operating System.
When a compiler produces Microsoft Intermediate Language (MSIL), it also produces Metadata.
The Microsoft Intermediate Language (MSIL) and Metadata are contained
in a portable executable (PE) file . Microsoft Intermediate Language
(MSIL) includes instructions for loading, storing, initializing, and
calling methods on objects, as well as instructions for arithmetic and
logical operations, control flow, direct memory access, exception
handling, and other operations