![cover image](https://wikiwandv2-19431.kxcdn.com/_next/image?url=https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Overview_of_the_Common_Language_Infrastructure.png/640px-Overview_of_the_Common_Language_Infrastructure.png&w=640&q=50)
Common Language Infrastructure
From Wikipedia, the free encyclopedia
Common Language Infrastructure (CLI) är en öppen specifikation (publicerad som ECMA-335 och ISO/IEC 23271) utvecklad av Microsoft som beskriver exekverbar kod och en exekveringsmiljö som utgör kärnan i av ett flertal implementationer, detta inkluderar .NET Framework, Mono och Portable.NET. Specifikationen beskriver en programmiljö som tillåter flera hög-nivå-språk att användas på olika datorplattformar utan att behöva skriva om dem för den specifika arkitekturen.
![Thumb image](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Overview_of_the_Common_Language_Infrastructure.png/320px-Overview_of_the_Common_Language_Infrastructure.png)
CLI är en specifikation, inte en implementation, och förväxlas ofta med Common Language Runtime (CLR), som är Microsofts implementation som innehåller många aspekter utöver standarden.
CLI beskriver följande fyra aspekter:
- Common Type System (CTS)
- Typer och operationer som är gemensamma för alla CTS-programspråk.
- Metadata
- Information om programstrukturen är inte bunden till något språk, så den kan delas mellan andra programspråk och verktyg. Det gör det möjligt att använda kod som är skriven i ett språk du inte använder.
- Common Language Specification (CLS)
- Regler för alla språk för CLI, som ska följas för att ett språk ska kunna samverka med andra CLS-kompatibla språk. CLS reglerna definierar ett subset av Common Type System.
- Virtual Execution System (VES)
- VES laddar och exekverar CLI-kompatibla program, den använder metadatan för att kombinera delar, som genererats separat, vid exekvering (runtime).