Společná jazyková infrastruktura - Common Language Infrastructure
The Společná jazyková infrastruktura (CLI) je otevřený Specifikace (technická norma) vyvinutá Microsoft a standardizováno ISO a Ecma[1][2] který popisuje spustitelný kód a běhové prostředí, které umožňuje více jazyků na vysoké úrovni které mají být použity na různých počítačových platformách, aniž by byly přepsány pro konkrétní architektury. To znamená, že jde o agnostickou platformu. The .NET Framework, .NET Core a Mono jsou implementace CLI.
Přehled
Specifikace CLI mimo jiné popisuje následující čtyři aspekty:
- The Společný typ systému (CTS)
- Sada typy dat a operace, které jsou sdíleny všemi kompatibilními s CTS programovací jazyky.
- The Metadata
- Informace o struktuře programu jsou jazykově agnostický, aby na něj bylo možné odkazovat mezi jazyky a nástroji, což usnadňuje práci s kódem napsaným v jazyce, který vývojář nepoužívá.
- Specifikace společného jazyka (CLS)
- Sada základních pravidel, kterým by měl vyhovovat jakýkoli jazyk cílený na rozhraní příkazového řádku, aby spolupracoval s jinými jazyky kompatibilními s CLS. Pravidla CLS definují podmnožinu systému Common Type.
- The Virtuální spouštěcí systém (VES)
- VES načítá a spouští programy kompatibilní s CLI, pomocí metadat kombinuje samostatně generované části kódu za běhu.
Všechny kompatibilní jazyky se kompilují do Společný střední jazyk (CIL), což je střední jazyk který je odebrán z hardwaru platformy. Když je kód spuštěn, VES specifický pro platformu sestaví CIL do jazyk stroje podle konkrétního hardwaru a operačního systému.
Standardizace a licencování
V srpnu 2000 Microsoft, Hewlett Packard, Intel a další pracovali na standardizaci CLI. V prosinci 2001 byla ratifikována Ecma, s ISO standardizace následující v dubnu 2003.
Microsoft a její partneři jsou držiteli patentů na CLI. Ecma a ISO vyžadují, aby všechny patenty nezbytné pro implementaci byly dostupné pod „rozumné a nediskriminační podmínky (RAND) „Je běžné, že licence RAND vyžaduje určité platby licenčních poplatků, což by mohlo být důvodem k obavám Mono. V lednu 2013 společnost Microsoft ani její partneři neidentifikovali žádné patenty nezbytné pro implementaci CLI, na které se vztahují podmínky RAND.
Jak července 2009,[3] Microsoft přidané C# a CLI na seznam specifikací, které Microsoft Community Promise platí pro,[4] takže kdokoli může bezpečně implementovat specifikovaná vydání standardů bez obav z patentového sporu společnosti Microsoft. Implementace standardu CLI vyžaduje shodu s jedním z podporovaných a definovaných profilů standardu, minimálním je profil jádra. Profil jádra je ve skutečnosti velmi malá sada typů, které je třeba podporovat ve srovnání se známou základní knihovnou výchozích instalací .NET. Klauzule o shodě rozhraní příkazového řádku však umožňuje rozšíření podporovaného profilu přidáním nových metod a typů do tříd a také odvozením z nových jmenných prostorů. Ale neumožňuje přidávání nových členů do rozhraní. To znamená, že lze použít a rozšířit funkce rozhraní příkazového řádku, pokud implementace vyhovujícího profilu nezmění chování programu určeného ke spuštění v daném profilu a zároveň umožní nespecifikované chování programů napsaných speciálně pro tuto implementaci.
V roce 2012 vydaly Ecma a ISO nové vydání standardu CLI,[1][2] na které se slib Společenství nevztahuje.[4]
Implementace
- .NET Framework je původní komerční implementace CLI společnosti Microsoft. Podporuje pouze Windows. V listopadu 2020 bude nahrazen .NET Core.
- .NET Core je bezplatný a open-source multiplatformní nástupce .NET Framework, vydaný pod Licence MIT
- .NET Compact Framework je komerční implementace CLI společnosti Microsoft pro přenosná zařízení a Xbox 360.
- .NET Micro Framework je implementace CLI v otevřeném zdrojovém kódu pro zařízení s omezenými prostředky.
- Mono je alternativní open source implementace CLI a doprovodných technologií používaných hlavně pro vývoj mobilních zařízení a her.
Viz také
Poznámky
- ^ A b ISO / IEC 23271: 2012 - Informační technologie - Common Language Infrastructure (CLI)
- ^ A b Standardní ECMA-335 - 6. vydání (červen 2012)
- ^ „Standardy Ecma C # a CLI - Port 25: Komunita open source ve společnosti Microsoft“. 6. července 2009. Archivovány od originál 9. července 2009. Citováno 26. září 2009.
- ^ A b Specifikace, na které se vztahuje Specifikace Microsoft Open
Reference
- „Standard ECMA-335, Common Language Infrastructure (CLI)“. Ecma International. Citováno 31. srpna 2005.
- „ISO / IEC 23271, Common Language Infrastructure“. ISO. Citováno 27. září 2006.
- „Ecma C # a standardy infrastruktury běžných jazyků“. společnost Microsoft. Citováno 13. října 2009.