Što je srednji jezik?

U računalnom programiranju, kada prevodilac analizira izvorni kod koji je čitljiv ljudima, prevodilac često prevodi izvorne naredbe u niz instrukcija koje nisu sasvim izvorni strojni kod, ali ih može dalje obraditi, optimizirati ili kompilirati kompajler ili drugi softver. alata. Datoteke koje se proizvode sadrže upute za koje se kaže da su na srednjem jeziku, jer jezik koji koristi prevodilac nije značajan niti za veći operativni sustav niti jezik koji programer koristi za pisanje koda, već umjesto toga je jezik koji djeluje kao most između pisanja i izvođenja programa. Srednji jezik se ponekad koristi kako bi prevodilac mogao napraviti vrlo precizne optimizacije kako bi program radio učinkovitije, ali se također može koristiti za proizvodnju izlaznih datoteka koje su prenosive između različitih, nekompatibilnih sustava. Stvarna sintaksa jezika može nalikovati strojnom kodu ili drugim vrstama nečitljivog bajtkoda, ili jezik može biti samo postojeći međuplatformski računalni programski jezik.

Kada se koristi za optimizaciju prevoditelja, prevodilac jezika uzima svaku naredbu u datoteci izvornog koda i razbija naredbu u međujezik. Jedan čovjeku čitljiv programski izraz može se rastaviti na desetke instrukcija strojnog jezika, tako da posredni jezik stvara razinu apstrakcije koju prevodilac može koristiti za identificiranje područja koda u kojima se mogu izvršiti optimizacije bez prethodnog povezivanja koda s sve izvorne implementacije ili biblioteke. Nakon dovršetka, datoteka posredničkog koda može se dalje kompilirati kako bi se napravila izvorna binarna datoteka ili se može pokrenuti kroz drugi program, poznat kao tumač, koji će izvršiti kod kompajlirajući ga u izvorne upute prema potrebi.

Neki jezici, kao što je Java®, koriste posredni jezik za stvaranje kompiliranih datoteka koje su optimizirane, ali i prenosive na druge računalne sustave. Ova vrsta koda ponekad je poznata kao bytecode i nalikuje strojnom kodu ili asemblerskom jeziku. Bytecode je pohranjen u datotekama na način koji je neovisan o platformi, što znači da se može prenijeti na bilo koji računalni sustav ili uređaj koji može pokrenuti tumač. Jednom kada je bajtkod na sustavu, može se ili pokrenuti kao interpretirani program ili se može kompilirati da se izvodi nativno na ciljnom sustavu.

U nekim je slučajevima računalni jezik dizajniran tako da olakša programiranje prema određenom cilju, kao što je interaktivna web aplikacija, ali dizajneri ne žele uključiti prilagođene prevodioce, tumače ili dodatke za različite sustave. U tim slučajevima, posredni jezik prevoditelja može biti postojeći jezik koji već ima uspostavljene međuplatformske interpretatore. Rezultirajući međujezik u ovom slučaju je čovjeku čitljiv. Jedan primjer računalnog programskog jezika koji se također koristi kao međujezik je JavaScript®, koji ima prednost što se može pokrenuti u gotovo svakom web pregledniku na bilo kojoj platformi, od 2011.