Common Intermediate Language

related topics
{system, computer, user}
{math, number, function}
{mi², represent, 1st}

Common Intermediate Language (CIL, pronounced either "sil" or "kil") (formerly called Microsoft Intermediate Language or MSIL) is the lowest-level human-readable programming language defined by the Common Language Infrastructure specification and used by the .NET Framework and Mono. Languages which target a CLI-compatible runtime environment compile to CIL, which is assembled into bytecode. CIL is an object-oriented assembly language, and is entirely stack-based. It is executed by a virtual machine.

CIL was originally known as Microsoft Intermediate Language (MSIL) during the beta releases of the .NET languages. Due to standardization of C# and the Common Language Infrastructure, the bytecode is now officially known as CIL.

Contents

General information

During compilation of .NET programming languages, the source code is translated into CIL code rather than platform or processor-specific object code. CIL is a CPU- and platform-independent instruction set that can be executed in any environment supporting the Common Language Infrastructure, such as the .NET runtime on Windows, or the cross-platform Mono runtime. In theory, this eliminates the need to distribute separate binaries for different platforms and CPU types. CIL code is verified for safety during runtime, providing better security and reliability than natively compiled binaries.

The execution process looks like this:

Instructions

CIL bytecode has instructions for the following groups of tasks:

Full article ▸

related documents
Longitudinal redundancy check
Input
Grid network
Dia (software)
A-law algorithm
UMSDOS
Data stream
Java Development Kit
Foobar
Name server
ANSI C
Yacc
Andrew Tridgell
ABC (programming language)
Typed link
Small-C
Numbering plan
ObjectPAL
Common Language Runtime
PowerBASIC
Galeon
BIND
Djbdns
Steelman language requirements
LAME
UnrealScript
SuperMemo
Java Transaction API
Carson bandwidth rule
Automatic data processing