Generated by GPT-5-mini| ECMA-335 | |
|---|---|
| Name | ECMA-335 |
| Other names | Common Language Infrastructure (CLI) standard |
| Status | Published |
| Version | 6th Edition (2012) et seq. |
| Organization | ECMA International |
| First published | 2002 |
| Domain | Software, Programming Languages, Virtual Machines |
ECMA-335 is the international specification that defines the Common Language Infrastructure, a platform for executing managed code across diverse programming languages and operating systems. It standardizes the Common Intermediate Language, metadata, type system, and virtual execution environment used by implementations such as Microsoft's .NET Framework, Mono, and CoreCLR. The standard underpins interoperability among language implementations, runtime environments, and toolchains developed by vendors and open-source communities.
The standard specifies a type system, metadata format, a Common Intermediate Language, and a virtual execution system that together enable language interoperability and platform portability. It defines file formats, calling conventions, and exception handling mechanisms relied upon by implementations produced by Microsoft, Novell, Xamarin, Red Hat, and independent projects like Mono and .NET Core. Key stakeholders include industry bodies and corporations such as ECMA International, ISO/IEC JTC 1, Intel Corporation, and Samsung Electronics. The specification facilitates cross-language integration among languages created by individuals and organizations including Anders Hejlsberg's projects and compilers produced by teams at Microsoft Research.
Initial work on the Common Language Infrastructure arose from efforts at Microsoft during the late 1990s and early 2000s to create a platform combining managed execution and language interoperability, contemporaneous with efforts by teams at Sun Microsystems and research groups at University of Cambridge. The specification was submitted to ECMA International and published as an ECMA standard in 2002, later approved by ISO/IEC JTC 1 as an international standard. Revisions and editions have been influenced by implementations from Microsoft Corporation, contributions from Novell engineers, and cross-industry feedback from corporations such as IBM, Intel, Google, and Apple Inc.. Major legal and licensing discussions involved entities like Microsoft and community projects associated with Xamarin acquisitions and collaboration with open-source foundations including the Free Software Foundation and Apache Software Foundation.
The specification decomposes the runtime into discrete components: the type system, metadata tables, the Common Intermediate Language, a virtual execution system, and a verification model. The type system aligns with designs from programming language research groups at University of Cambridge and compiler engineering teams at Microsoft Research. File and assembly semantics draw on portable executable conventions used by Microsoft Windows and cross-platform packaging approaches employed by distributions maintained by Debian and Red Hat. The verification and security model interacts with platform-level mechanisms from OpenSSL-related projects and system integration approaches found in Linux kernel-based distributions.
Metadata tables and attributes in the specification provide a language-neutral way to describe types, members, and references, enabling reflection and tooling produced by projects like JetBrains and Visual Studio. The Common Intermediate Language (CIL) is a low-level instruction set similar in role to bytecode designs from Java and research systems at University of California, Berkeley; it supports verification, garbage-collection-friendly semantics, and interop features. Compiler toolchains developed by teams at Microsoft Visual C#, Mono project, and independent contributors translate high-level languages authored by figures such as Anders Hejlsberg and organizations like ECMA International member companies into CIL and associated metadata.
The virtual execution system defined by the specification prescribes an execution engine, loader, garbage collector interface, exception handling, and interoperability with native code via P/Invoke and interop mechanisms. Implementations provide just-in-time compilation, ahead-of-time compilation, or interpretation strategies adopted by projects such as CoreCLR, Mono, and Xamarin.iOS to meet platform constraints imposed by vendors like Apple Inc. and device manufacturers including Samsung Electronics. Security-critical features interact with platform attestation and sandboxing approaches developed in contexts like Common Criteria evaluations and enterprise deployments at organizations such as Microsoft Azure and Amazon Web Services.
Major implementations include Microsoft .NET Framework, .NET Core, Mono, and CoreRT runtimes, with language implementations such as C#, Visual Basic .NET, F#, and third-party languages targeting the infrastructure. Conformance suites and test collections are produced by standards bodies and vendors including ECMA International, ISO/IEC JTC 1, Microsoft Corporation, and community repositories hosted by organizations like GitHub. Commercial products from Red Hat, Novell, and cloud providers such as Google Cloud Platform and Amazon Web Services implement or host runtimes based on the specification, while academic research from institutions like Massachusetts Institute of Technology and Stanford University investigates performance and security aspects.
The specification catalyzed a broad ecosystem of compilers, tooling, libraries, and cross-platform runtimes, influencing enterprise software at corporations like Microsoft, cloud architectures at Amazon Web Services, and mobile frameworks developed by Xamarin and Google. It contributed to language design discourse alongside milestones such as the Java bytecode specification and inspired academic work at Carnegie Mellon University and University of Cambridge. Its legacy persists in contemporary open-source initiatives, industry standards endorsed by ECMA International and ISO/IEC JTC 1, and ongoing development by vendor projects at Microsoft Corporation, Red Hat, and community efforts hosted on platforms such as GitHub.
Category:Standards