Monday 29 August 2011

Microsoft Intermediate Language (MSIL)

When compiling to managed code, the compiler translates your source code into
Microsoft intermediate language (MSIL), which is a CPU-independent set of
instructions that can be efficiently converted to native code. 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. Before code can be executed, MSIL
must be converted to CPU-specific code by a just in time (JIT) compiler. Because the
runtime supplies one or more JIT compilers, for each computer architecture it
supports, the same set of MSIL can be JIT-compiled and executed on any supported
architecture.
When a compiler produces MSIL, it also produces metadata. The MSIL and metadata
are contained in a portable executable (PE file) that is based on and extends the
published Microsoft PE and Common Object File Format (COFF) used historically for
executable content. This file format, which accommodates MSIL or native code as
well as metadata, enables the operating system to recognize common language
runtime images. The presence of metadata in the file along with the MSIL enables
your code to describe itself, which means that there is no need for type libraries or
Interface Definition Language (IDL). The runtime locates and extracts the metadata
from the file as needed during execution.

No comments:

Post a Comment