The Common Language
Infrastructure (CLI) is an open specification developed
by Microsoft and standardized
by ISO] and ECMA that describes the executable code and
runtime environment that form the core of the Microsoft .NET
Framework and the free and open
source implementations Mono and Portable.NET. The
specification defines an environment that allows multiple high-level languages
to be used on different computer platforms without being rewritten for specific
architectures.
Among other things, the CLI specification describes the
following four aspects:
A set of data types and
operations that are shared by all CTS-compliant programming languages.
Metadata Information about program structure
is language-agnostic, so that it can be referenced one's not using.
Common Language Specification (CLS)
A set of base rules to which any language
targeting the CLI should conform in order to interoperate between languages and
tools, making it easy to work with code written in a language with other
CLS-compliant languages. The CLS rules define a subset of the Common Type
System.
Virtual Execution System (VES)
The VES loads and executes CLI-compatible
programs, using the metadata to combine separately generated pieces of code at
runtime.
All compatible languages compile
to Common Intermediate Language (CIL), which is an intermediate
language that is abstracted from the platform hardware. When the code is
executed, the platform-specific VES will compile the CIL to the machine
language according to the specific hardware and operating system.
Functions of the Common Type System
- To establish a framework that helps enable cross-language integration, type safety, and high performance code execution.
- To provide an object-oriented model that supports the complete implementation of many programming languages.
- To define rules that languages must follow, which helps ensure that objects written in different languages can interact with each other.
- The CTS also defines the rules that ensures that the data types of objects written in various languages are able to interact with each other.
- The CTS also specifies the rules for type visibility and access to the members of a type, i.e. the CTS establishes the rules by which assemblies form scope for a type, and the Common Language Runtime enforces the visibility rules.
- The CTS defines the rules governing type inheritance, virtual methods and object lifetime. Languages supported by .NET can implement all or some common data types…
When rounding fractional values,
the halfway-to-even ("banker's") method is used by default,
throughout the Framework. Since version 2, "Symmetric Arithmetic
Rounding" (round halves away from zero) is also available by programmer's
option.
it is used to communicate with
other languages
Base Class Library:
The Base Class Library (BCL)
is a Common Language Infrastructure (CLI) standard
library available to all CLI languages. CLI includes the BCL in order
to encapsulate a large number of common functions, such as file reading and
writing, graphic rendering, database interaction,
and XML document manipulation, which makes the programmer's job
easier.
It is much larger in scope than standard libraries for most other
languages, including C++, and is comparable in scope and coverage to
the standard libraries of Java.
The .NET Framework, being the
first implementation of CLI, is the origin of the BCL. It is sometimes
incorrectly referred to as the Framework Class Library (FCL), but the
FCL is actually a superset including Microsoft specific namespaces.
The BCL is
updated with each version of the .NET Framework.
Framework Class Library:
The Framework Class Library (FCL) is
a standard library and one of two core components of Microsoft .NET
Framework. The FCL is a collection of reusable classes, interfaces and value
types. The Base Class Library is a part of FCL and provides the most
fundamental functionality, which includes classes in namespaces System,
System.CodeDom, System. Collections, System. Diagnostics, System. Globalization,
System.IO, System. Resources and System.Text.
No comments:
Post a Comment