Hvad er den fælles sproginfrastruktur?
Den fælles sproginfrastruktur (CLI) er et sæt internationale tekniske standarder, der fremmer interoperabilitet mellem computerprogrammeringssprog. CLI tillader også mange sprog på højt niveau at udvikle applikationer, der er uafhængige af platforme og arkitekturer. Der er mere end 30 programmeringssprog grupperet til dette formål og bruger fire afdelinger af fælles sprogprogrammeringsspecifikationer for at blive CLI-kompatible.
At bruge det, der kaldes et almindeligt typesystem (CTS), ved hjælp af et sæt datatyper og operationer og metadataoplysninger om programmeringsstrukturer tillader skrivning af tværgående sprog. CLI kompilerer sprog til et fælles mellemsprog (CIL), og fra CIL formidler applikationsaspekterne til samlingsmaskinsprog, der adresserer hardware. Der er desuden almindelige sprogspecifikationer (CLS), som er en basisregler, der er indstillet til brug af ethvert sprog, der søger interoperation, og et virtuelt eksekveringssystem (VES) til indlæsning, eksekvering og generering af kørekoder til alle CLI-kompatible programmer .
De fleste CLI-kompatible sprog kompileres direkte til CIL ved hjælp af fælles sprogkørselstid (CLR). Efter at den er blevet kompileret og cache, tildeler en just-in-time compiler derefter maskinkode fra den eksisterende arkitektur. Samlingskodekonstruktionen kan også konstrueres foran CLR med en forudgående kompilator.
For CLI-kompatible sprog til at drage fordel af objektspecificitet specificerer fælles sproginfrastruktur, at objekter kun behøver at afsløre de funktioner, de har til fælles med de andre CLI-kompatible sprog, når de kaldes. Komponenter af kode, der er udviklet til kun at bruge datatyper, der er accepteret i CTS, siges at være CLI-kompatible og tilgængelige for alle de andre CLI-kompatible sprog. Derudover er enhver konstruktion af et sprog, der ikke kan verificeres hurtigt ved kodens type sikkerhed, ekskluderet fra CLS, så kun verificerbare koder kan siges at være CLS-kompatible.
Nogle programmeringsfunktioner er fælles for både compilere og udviklere, og andre er kun tilgængelige for compilers. Listen er lang og fuld af nyttige funktioner. En funktion, der kun er tilgængelig for samlere, er: nøgleord, der leverer henvisningsidentifikatorer, og som kan tilsidesætte virtuelle metoder med navne, der er nøgleord. En funktion, der er tilgængelig for både kompilatorer og udviklere, inkluderer: ændringsfunktioner, der siger, at en egenskab såvel som dens bedømmere skal være alle "statiske", alle skal være "virtuelle", skal alle være "instans."
Implementeringsprogrammer er til desktops, servere, mobile enheder og spilkonsoller. Programmer til forbedring af computervision og virtuelle maskinværktøjssæt på lavt niveau er også udviklet fra sprog, der er kompatible med sproginfrastruktur. Den fælles sproginfrastrukturtid fordeler systemressourcer og ringer til eksterne enheder effektivt, selvom de er platformuafhængige.