Vad är den vanliga språkinfrastrukturen?
Den gemensamma språkinfrastrukturen (CLI) är en uppsättning internationella tekniska standarder som främjar interoperabilitet för datorprogrammeringsspråk. CLI tillåter också många högnivåspråk att utveckla applikationer som är oberoende av plattformar och arkitekturer. Det finns mer än 30 programmeringsspråk grupperade för detta ändamål och använder fyra avdelningar av vanliga språkprogrammeringsspecifikationer för att bli CLI-kompatibla.
Att använda det som kallas ett vanligt typsystem (CTS), använda en uppsättning av datatyper och operationer och metadatainformation om programmeringsstrukturer möjliggör skrivning på flera språk. CLI sammanställer språk till ett vanligt mellanspråk (CIL) och från CIL kommunicerar applikationsaspekterna till monteringsmaskinens språk, som adresserar hårdvaran. Dessutom finns det vanliga språkspecifikationer (CLS), som är en basregler som är inställd för användning av alla språk som söker interoperation, och ett virtuellt exekveringssystem (VES) för lastning, exekvering och generering av körkoder för alla CLI-kompatibla program .
De flesta CLI-kompatibla språk kompileras direkt till CIL med användning av Common Language Runtime (CLR). Efter att ha sammanställts och cachelagrats tilldelar en just-in-time kompilator sedan maskinkoden från den befintliga arkitekturen. Monteringens maskinkodkonstruktion kan också konstrueras före CLR med en kompilator i förväg.
För att CLI-kompatibla språk ska kunna dra nytta av objektspecificitet anger gemensam språkinfrastruktur att objekt bara behöver exponera de funktioner som de har gemensamt med de andra CLI-kompatibla språken när de kallas. Kodkomponenter utvecklade för att endast använda datatyper som accepteras i CTS sägs vara CLI-kompatibla och tillgängliga för alla andra CLI-kompatibla språk. Dessutom utesluts alla konstruktioner av ett språk som inte kan verifieras snabbt av typens säkerhet för koden från CLS, så att endast verifierbara koder kan sägas vara CLS-kompatibla.
Vissa programmeringsfunktioner är vanliga för både kompilatorer och utvecklare och andra är endast tillgängliga för kompilatorer. Listan är lång och full av användbara funktioner. En funktion som endast är tillgänglig för kompilatorer är: nyckelord som innehåller referensidentifierare och som kan åsidosätta virtuella metoder med namn som är nyckelord. En funktion som är tillgänglig för både kompilatorer och utvecklare inkluderar: modifieringsfunktioner som säger att en egenskap såväl som dess bedömare måste vara alla "statiska", alla måste vara "virtuella", måste alla vara "instans".
Implementeringsprogram är för stationära datorer, servrar, mobila enheter och spelkonsoler. Program för förbättring av datorsyn och verktygssatser för virtuella maskinmaskiner på låg nivå utvecklas också från vanliga språkinfrastrukturkompatibla språk. De vanliga språkinfrastrukturerna tilldelar systemresurser och ringer kringutrustning effektivt, även om de är plattformsoberoende.