Što je zajednička jezična infrastruktura?

Zajednička jezična infrastruktura (CLI) skup je međunarodnih tehničkih standarda koji promiču interoperabilnost računalnih programskih jezika. CLI također omogućuje mnogim jezicima visoke razine razvoj aplikacija koje su neovisne o platformama i arhitekturi. Postoji više od 30 programskih jezika grupiranih u tu svrhu i koriste četiri podjele zajedničkih jezičnih programskih specifikacija kako bi postali usklađeni s CLI.

Korištenje onoga što se zove zajednički tipski sustav (CTS), korištenje skupa tipova podataka i operacija i informacija o metapodacima o programskim strukturama omogućuje pisanje koda na više jezika. CLI prevodi jezike u zajednički međujezik (CIL), a iz CIL-a komunicira aspekte aplikacije u jezik asemblerskog stroja, koji se odnosi na hardver. Osim toga, postoje zajedničke jezične specifikacije (CLS), koje su osnovna pravila postavljena za korištenje od strane bilo kojeg jezika koji traži međuoperaciju, i virtualni izvršni sustav (VES) za učitavanje, izvršavanje i generiranje kodova za sve programe kompatibilne s CLI .

Većina jezika kompatibilnih s CLI-om kompilira se izravno u CIL korištenjem zajedničkog jezika izvođenja (CLR). Nakon što je preveden i keširan, kompajler za pravo vrijeme prisvaja strojni kod iz postojeće arhitekture. Konstrukcija strojnog koda za montažu također se može konstruirati ispred CLR-a s kompajlerom unaprijed.

Da bi jezici kompatibilni s CLI iskoristili specifičnost objekta, infrastruktura zajedničkog jezika navodi da objekti samo trebaju otkriti značajke koje imaju zajedničke s drugim CLI-kompatibilnim jezicima kada se pozivaju. Za komponente koda razvijene za korištenje samo tipova podataka prihvaćenih u CTS-u se kaže da su kompatibilne s CLI-jem i dostupne svim ostalim jezicima kompatibilnim s CLI-jem. Dodatno, svaka konstrukcija jezika koja se ne može brzo provjeriti sigurnošću tipa koda isključena je iz CLS-a, tako da se može reći da su samo provjerljivi kodovi usklađeni s CLS-om.

Neke programske značajke zajedničke su i prevoditeljima i programerima, a druge su dostupne samo prevoditeljima. Popis je podugačak i pun korisnih značajki. Značajka dostupna samo kompajlerima je: ključne riječi koje daju referentne identifikatore i koje mogu nadjačati virtualne metode s imenima koja su ključne riječi. Značajka dostupna i kompajlerima i programerima uključuje: značajke modifikatora koje govore da svojstvo kao i njegovi procjenitelji moraju biti “statični”, svi moraju biti “virtualni”, svi moraju biti “instanca”.

Programi za implementaciju su za stolna računala, poslužitelje, mobilne uređaje i igraće konzole. Programi za poboljšanje računalnog vida i skupovi virtualnih strojnih alata niske razine također su razvijeni iz jezika usklađenih sa zajedničkom jezičnom infrastrukturom. Izvršna vremena infrastrukture zajedničkog jezika dodjeljuju resurse sustava i učinkovito pozivaju periferne uređaje, iako su neovisni o platformi.