This chapter described many new terms and acronyms that are important to understanding the context under which C# programs run. The preponderance of three-letter acronyms can be confusing. Figure provides a summary list of the terms and acronyms that are part of the CLI.
Common C#-Related Acronyms
Microsoft's implementation of the entire CLI stack. Includes the CLR, CIL, and various languages, all of which are CLS compliant.
Base Class Library
The portion of the CLI specification that defines the collection, threading, console, and other base classes necessary to build virtually all programs.
A programming language. Note that separate from the CLI standard there is a C# Language Specification, also ratified by the ECMA and ISO standards bodies.
Common Intermediate Language
The language of the CLI specification that defines the instructions for the code executable on implementations of the CLI. This is sometimes also referred to as IL or Microsoft IL (MSIL) to distinguish it from other intermediate languages. (To indicate that it is a standard broader than Microsoft, CIL is preferred over MSIL and even IL.)
Common Language Infrastructure
The specification that defines the intermediate language, base classes, and behavioral characteristics which enable implementers to create Virtual Execution Systems and compilers in which source languages are interoperable on top of a common execution environment.
Common Language Runtime
Microsoft's implementation of the runtime, as defined in the CLI specification.
Common Language Specification
The portion of the CLI specification that defines the core subset of features which source languages must support in order to be executable on runtimes implemented according to the CLI specification.
Common Type System
A standard generally implanted by CLI-compliant languages that defines the representation and behavior of types that the language exposes visibly outside of a module. It includes concepts for how types can be combined to form new types.
.NET Framework Class Library
The class library that comprises Microsoft's .NET Framework. It includes Microsoft's implementation of the BCL as well as a large library of classes for such things as web development, distributed communication, database access, rich client user interface development, and a host of others.
Virtual Execution System
An agent that manages the execution of a program that is compiled for the CLI.