Bendrosios kalbos infrastruktūra (CLI) yra tarptautinių techninių standartų rinkinys, skatinantis kompiuterių programavimo kalbų sąveiką. CLI taip pat leidžia daugeliui aukšto lygio kalbų kurti programas, kurios nepriklauso nuo platformų ir architektūros. Šiuo tikslu yra sugrupuota daugiau nei 30 programavimo kalbų, kurios naudoja keturis bendrų kalbų programavimo specifikacijų skyrius, kad būtų suderinamos su CLI.
Naudojant vadinamąją įprasto tipo sistemą (CTS), naudojant duomenų tipų ir operacijų rinkinį bei metaduomenų informaciją programavimo struktūrose, galima rašyti įvairių kalbų kodus. CLI sukompiliuoja kalbas į bendrą tarpinę kalbą (CIL), o iš CIL perduoda taikymo aspektus į surinkimo mašinos kalbą, kuri skirta aparatinei įrangai. Be to, yra bendros kalbos specifikacijos (CLS), kurios yra pagrindinės taisyklės, skirtos naudoti bet kuriai kalbai, kuri siekia sąveikos, ir virtualioji vykdymo sistema (VES), skirta įkelti, vykdyti ir generuoti visų su CLI suderinamų programų paleidimo kodus. .
Dauguma su CLI suderinamų kalbų kompiliuojamos tiesiai į CIL naudojant bendrosios kalbos vykdymo laiką (CLR). Sukompiliuotas ir talpykloje esantis kompiliatorius tik laiku paima mašinos kodą iš esamos architektūros. Surinkimo mašinos kodo konstrukcija taip pat gali būti sukurta prieš CLR naudojant išankstinį kompiliatorių.
Kad su CLI suderinamos kalbos galėtų pasinaudoti objektų specifiškumu, bendrosios kalbos infrastruktūra nurodo, kad iškviečiami objektai turi atskleisti tik tas savybes, kurios turi bendros su kitomis su CLI suderinamomis kalbomis. Teigiama, kad kodo komponentai, sukurti naudoti tik CTS priimtinus duomenų tipus, yra suderinami su CLI ir pasiekiami visomis kitomis su CLI suderinamomis kalbomis. Be to, bet kokia kalbos konstrukcija, kurios negalima greitai patikrinti pagal kodo tipo saugumą, neįtraukiama į CLS, todėl galima sakyti, kad tik patikrinami kodai yra suderinami su CLS.
Kai kurios programavimo funkcijos yra bendros ir kompiliatoriams, ir kūrėjams, o kitos yra prieinamos tik kompiliatoriams. Sąrašas yra ilgas ir pilnas naudingų funkcijų. Funkcija, prieinama tik kompiliatoriams, yra: raktiniai žodžiai, kurie pateikia nuorodų identifikatorius ir gali pakeisti virtualius metodus pavadinimais, kurie yra raktiniai žodžiai. Tiek kompiliatoriams, tiek kūrėjams prieinama funkcija apima: modifikavimo funkcijas, kurios sako, kad nuosavybė ir jos vertintojai turi būti „statiški“, visi turi būti „virtualūs“, visos turi būti „pavyzdys“.
Diegimo programos skirtos staliniams kompiuteriams, serveriams, mobiliesiems įrenginiams ir žaidimų konsolėms. Kompiuterinės vizijos tobulinimo programos ir žemo lygio virtualių mašinų įrankių rinkiniai taip pat kuriami iš bendrų kalbų infrastruktūros suderinamų kalbų. Bendrosios kalbos infrastruktūros vykdymo laikas paskirsto sistemos išteklius ir efektyviai iškviečia išorinius įrenginius, nors jie nepriklauso nuo platformos.