Common Language Infrastructure

Iz Wikipedije, proste enciklopedije

"Common Language Infrastructure" (CLI) je specifikacija, ki opisuje kodo, ki jo je možno pognati, ter izvajalsko okolje, ki omogoča uporabo ver višjenivojskih programskih jezikov za razvoj aplikacij na različnih računalniških platformah. CLI je odprta specifikacija, ki jo je razvil Microsoft in je standardizirana s strani ISO in ECMA, kar omogoča razvoj neodvisnih implementacij. Komercialno Microsoftovo Ogrodje .NET, prosto in prenosljivo odprtokodno okolje Mono in Portable.NET so primeri implementacij CLI. Okolje Mono omogoča razvoj odprtokodnih in komercialnih aplikacij za različne platforme v kateremkoli jeziku, ki je skladen s specifikacijo, pri čemer se za ta namen najbolj pogosto uporablja C#.

Pregled[uredi | uredi kodo]

Specifikacija med drugim opisuje naslednje aspekte razvojnega in izvajalskega okolja:

Common Type System[uredi | uredi kodo]

CTS določa skupino podatkovnih tipov in operacij, ki jih uporabljajo jeziki skladni s specifikcijo.

Meta podatki[uredi | uredi kodo]

Informacija o strukturi programa je neodvisna od jezika, zaradi česar je možno sklicevanje med različnimi jeziki. Zaradi tega je enostavno uporabiti kodo napisano v drugem jeziko kot jezik, v katerem je napisana razvijalčeva koda.

Common Language specification[uredi | uredi kodo]

CLS, skupna jezikovna specifikacija, je množica pravil, ki jih morajo upoštevati jeziki, ki ciljajo na skladnost s CLS.

Virtual Execution System[uredi | uredi kodo]

VES je zadolžen za nalaganje in izvedbo programov skladnih s CLI. Sistem uporablja standardizirane meta podatke, da lahko kombinira ločeno generirane dele kode v času izvajanja.

Jeziki kompatibilni s CLI se prevajajo v Common Intermediate Language, skupni nižjenivojski jezik, ki abstrahira strojno opremo, na kateri se program izvaja. Ko se koda v tem jeziku izvaja, sistem VES (ki je zgrajen za vsako platformo posebej) najprej prevede vmesni jezik (CIL) v strojni jezik določene platforme in operacijskega sistema.

Glej tudi[uredi | uredi kodo]