Content deleted Content added
→Overview: Moved stray sentence into VES. |
Changing short description from "open specification for architecture-independent executables and runtime environment" to "Open specification for runtime environments" |
||
(13 intermediate revisions by 9 users not shown) | |||
Line 1:
{{Short description|Open specification
{{Infobox technology standard
| title = Common Language Infrastructure
Line 11:
| abbreviation = CLI
| ___domain = Common Language ([[Cross-platform]])
| website = {{URL|
| long_name = ISO/IEC 23271:2012(E)
| first_published = {{Start date and age|2001}} (Ecma) and {{Start date and age|2003}} (ISO/IEC)
Line 17:
| license = [[Reasonable and non-discriminatory licensing|RAND]]
}}
The '''Common Language Infrastructure''' ('''CLI''') is an open [[specification]] and [[technical standard]] originally developed by [[Microsoft]] and standardized by [[International Organization for Standardization|ISO]]/[[International Electrotechnical Commission|IEC]] ('''ISO/IEC 23271''') and [[Ecma International]] ('''ECMA 335''')<ref name="iso_iec_23271_2012">{{cite web| url = http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=58046| title = ISO/IEC 23271:2012 - Information technology -- Common Language Infrastructure (CLI) |website=ISO |url-status=live |archive-url=https://web.archive.org/web/20230702003946/https://www.iso.org/standard/58046.html |archive-date= Jul 2, 2023 }}</ref><ref name="ecma_355_2012">{{cite web| url =
The [[metadata]] format is also used to specify the [[API]] definitions exposed by the [[Windows Runtime]].<ref>{{cite web| url = https://www.microsoftpressstore.com/articles/article.aspx?p=2199428&seqNum=3| title = Introduction to Advanced Windows Store App Development using HTML5 and JavaScript
==Overview==
Line 34:
: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.
:In the CLI standard initially developed by Microsoft,
;The [[Standard Libraries (CLI)|Standard Libraries]]
Line 42:
In August 2000, [[Microsoft]], [[Hewlett-Packard]], [[Intel]], and others worked to standardize CLI. By December 2001, it was ratified by the [[Ecma International|Ecma]], with [[International Organization for Standardization|ISO]]/[[International Electrotechnical Commission|IEC]] standardization following in April 2003.
Microsoft and its partners hold patents for CLI. Ecma and ISO/IEC require that all patents essential to implementation be made available under "[[Reasonable and non-discriminatory licensing|reasonable and non-discriminatory (RAND) terms]]." It is common for RAND licensing to require some royalty payment, which could be a cause for concern with [[Mono (software)|Mono]].
|url=http://port25.technet.com/archive/2009/07/06/the-ecma-c-and-cli-standards.aspx
|title=The Ecma C# and CLI Standards
|website=Port 25
|first1=Peter |last1=Galli
|date=2009-07-06
|access-date=September 26, 2009
Line 52 ⟶ 54:
|archive-date=July 9, 2009
|url-status=dead
}}</ref> [[Microsoft]] added [[C Sharp (programming language)|C#]] and CLI to the list of specifications that the [[Microsoft Community Promise]] applies to,<ref>{{Cite web |last=v-alje |title=[MS-DEVCENTLP]: Microsoft Community Promise |url=https://learn.microsoft.com/en-us/openspecs/dev_center/ms-devcentlp/8b8d1b7a-a10a-4667-9558-6d9c43adf60d |access-date=2023-05-01 |website=
In 2012, Ecma and ISO/IEC published the new edition of the CLI standard.<ref name="iso_iec_23271_2012"/><ref name="ecma_355_2012"/>
Line 62 ⟶ 64:
*[[.NET Micro Framework]] is an open source implementation of the CLI for resource-constrained devices.
*[[Mono (software)|Mono]] is an alternative open source implementation of CLI and accompanying technologies, mainly used for mobile and game development.
*[[DotGNU]] is a decommissioned part of the GNU Project started in January 2001 that aimed to provide a [[free and open source software]] alternative to Microsoft's [[.NET Framework]].
==See also==
Line 75 ⟶ 78:
|title = Standard ECMA-335, Common Language Infrastructure (CLI)
|work = Ecma International
|url =
|access-date =
}}
*{{Cite web
Line 93 ⟶ 96:
|title = Language independence and language-independent components
|work = Microsoft Learn
|date = December 21, 2022
|url = https://learn.microsoft.com/en-us/dotnet/standard/language-independence
|access-date = May 19, 2023
}}
==External links==
|