User:Soumyasch/Incubator/CIL

Common Intermediate Language (CIL, pronounced either sil or kil) is the lowest-level human-readable programming language in the Common Language Infrastructure. It is a processor and operating system-independent stack-based object-oriented assembly language, that is executed by the Common Language Runtime virtual machine (Virtual Execution System or VES). CIL is used by all implementations of the Common Language Infrastructure, including .NET Framework and the Mono runtime. All .NET languages that target the VES, including C#, VB.NET and C++/CLI, compile to CIL, which is then assembled into bytecode and packaged as .NET assemblies. As such, CIL supports capabilities, including namespaces, inheritance, polymorphism and virtual functions, function overloading, generics and reflection, as required by the higher-level languages.

CIL was originally known as Microsoft Intermediate Language (MSIL) during the beta releases of the .NET Framework. Due to subsequent standardization of C# and the Common Language Infrastructure, the bytecode is now officially known as CIL. Because of this legacy, CIL is still frequently referred to as MSIL.

Overview
Common Intermediate Language defines an instruction set, with different opcodes defined for performing different operations.

Type system

 * Object orientation
 * Support for features used by customer languages
 * Overloading (only on return type)