Brian On Software

Because there is so much MORE to software development than 1’s and 0’s…

Subscribe in a readerSubscribe in a reader Subscribe via emailSubscribe via email

Blessed be the God and Father of our Lord Jesus Christ! According to his great mercy, he has caused us to be born again to a living hope through the resurrection of Jesus Christ from the dead, to an inheritance that is imperishable, undefiled, and unfading, kept in heaven for you, who by God's power are being guarded through faith for a salvation ready to be revealed in the last time. (1 Peter 1:3-5, NIV)

Feb
5
2008

C# Language Specification and CLI Specification ECMA Standards

Have you ever wonder how some intrinsic mechanisms of the C# language actually work, i.e, generics, iterators and delegates?

What about the different syntax and constraints of the C# language?

Do you want to know more about the CLI, the CTS and the CLS, and how they participate in the .NET Framework, than just being satisfied with what their acronyms stand for?

Did you know that you can learn more about the C# programming language and the Common Language Infrastructure for free?

As a matter of fact, both the C# programming language and the Common Language Infrastructure are ECMA standards which are publicly available for anyone to download free of charge. ECMA, which stands for European Computer Manufacturers Association, is an international, private standards organization for the Information and Communication Technology and the Consumer Electronics. As stated in their website,

The aims of ECMA are:

  • To develop, in co-operation with the appropriate National, European and International organizations Standards and Technical Reports in order to facilitate and standardize the use of Information Communication Technology (ICT) and Consumer Electronics (CE).
  • To encourage the correct use of Standards by influencing the environment in which they are applied.
  • To publish these Standards and Technical Reports in electronic and printed form; the publications can be freely copied by all interested parties without restrictions.

 

The C# Language Specification standard (ECMA-334) is currently in its 4th edition, and "specifies the form and establishes the interpretation of programs written in the C# programming language". It emphasizes on:

  • The representation of C# programs;
  • The syntax and constraints of the C# language;
  • The semantic rules for interpreting C# programs;
  • The restrictions and limits imposed by a conforming implementation of C#.

Click here to download the C# Language Specification standard as a PDF (553 pages, 2.6MB)

 

The Common Language Infrastructure standard (ECMA-335) is also in its 4th edition. It consists of the following parts:

  • Partition I: Concepts and Architecture – Describes the overall architecture of the CLI, and provides the normative description of the Common Type System (CTS), the Virtual Execution System (VES), and the Common Language Specification (CLS). It also provides an informative description of the metadata.
  • Partition II: Metadata Definition and Semantics – Provides the normative description of the metadata: its physical layout (as a file format), its logical contents (as a set of tables and their relationships), and its semantics (as seen from a hypothetical assembler, ilasm).
  • Partition III: CIL Instruction Set – Describes the Common Intermediate Language (CIL) instruction set.
  • Partition IV: Profiles and Libraries – Provides an overview of the CLI Libraries, and a specification of their factoring into Profiles and Libraries. A companion file, CLILibrary.xml, considered to be part of this Partition, but distributed in XML format, provides details of each class, value type, and interface in the CLI Libraries.
  • Partition V: Debug Interchange Format.
  • Partition VI: Annexes – Contains some sample programs written in CIL Assembly Language (ILAsm), information about a particular implementation of an assembler, a machine-readable description of the CIL instruction set which can be used to derive parts of the grammar used by this assembler as well as other tools that manipulate CIL, a set of guidelines used in the design of the libraries of Partition IV , and portability considerations.

Click here to download the CLI standard as a PDF (556 pages, 3.2MB)

 

Other noteworthy standards that might be of interest are:

For a more detailed list of the available standards published by ECMA, check out the ECMA Standards List section.

Next time you have a job interview, a research project or a commercial project to deliver and you need to know more about the C# language and the CLI, save yourself the money and download the standards free of charge.

kick it on DotNetKicks.com

Similar posts you might be interested in reading:

Leave a Reply