Kas yra tarpinė kalba?

Kompiuterių programavimo metu, kai kompiliatorius analizuoja žmogaus skaitomą šaltinio kodą, kompiliatorius dažnai paverčia šaltinio komandas į instrukcijų seką, kuri nėra visiškai savaiminis mašininis kodas, bet gali būti toliau apdorotas, optimizuotas arba kompiliuojamas kompiliatoriaus ar kitos programinės įrangos. įrankiai. Sukurtuose failuose yra instrukcijos, kurios, kaip teigiama, yra tarpine kalba, nes kalba, kurią naudoja kompiliatorius, nėra reikšminga nei didesnei operacinei sistemai, nei kalbai, kuria programuotojas pirmiausia rašo kodą, bet vietoj to. yra kalba, kuri veikia kaip tiltas tarp programos rašymo ir vykdymo. Tarpinė kalba kartais naudojama, kad kompiliatorius galėtų atlikti labai tikslų optimizavimą, kad programa veiktų efektyviau, tačiau ji taip pat gali būti naudojama kuriant išvesties failus, kurie yra nešiojami tarp skirtingų, nesuderinamų sistemų. Tikroji kalbos sintaksė gali būti panaši į mašininį kodą arba kitų tipų ne žmogaus skaitomus baitų kodus, arba kalba gali būti tik esama kelių platformų kompiuterių programavimo kalba.

Kai naudojamas kompiliatoriaus optimizavimui, kalbos kompiliatorius paima kiekvieną teiginį šaltinio kodo faile ir suskaido komandą į tarpinę kalbą. Vienas žmogaus skaitomas programavimo teiginys gali suskaidyti į dešimtis mašininės kalbos instrukcijų, todėl tarpinė kalba sukuria abstrakcijos lygį, kurį kompiliatorius gali naudoti, kad nustatytų kodo sritis, kuriose galima atlikti optimizavimą, prieš tai nesusiejant kodo. bet kokie vietiniai diegimai ar bibliotekos. Užbaigus tarpinio kodo failą galima toliau kompiliuoti, kad būtų sukurtas vietinis dvejetainis failas, arba jį galima paleisti naudojant kitą programą, vadinamą interpretatoriumi, kuri vykdys kodą, prireikus sukompiliuodama jį į vietines komandas.

Kai kurios kalbos, pvz., Java®, naudoja tarpinę kalbą, kad sukurtų optimizuotus, bet ir perkeliamus į kitas kompiuterių sistemas, rinkmenas. Šio tipo kodas kartais vadinamas baitiniu kodu ir primena mašininį kodą arba surinkimo kalbą. Bytekodas saugomas failuose nuo platformos nepriklausomu būdu, o tai reiškia, kad jį galima perkelti į bet kurią kompiuterinę sistemą ar įrenginį, kuris gali paleisti vertėją. Kai baito kodas yra sistemoje, jis gali būti paleistas kaip interpretuota programa arba gali būti sukompiliuotas, kad jis veiktų savaime tikslinėje sistemoje.

Kai kuriais atvejais kompiuterio kalba sukurta taip, kad būtų lengva programuoti tam tikram tikslui, pavyzdžiui, interaktyviajai žiniatinklio programai, tačiau dizaineriai nenori įtraukti pasirinktinių kompiliatorių, vertėjų ar priedų skirtingoms sistemoms. Tokiais atvejais tarpinė kompiliatoriaus kalba gali būti esama kalba, kuri jau turi įvairių platformų vertėjų. Tokiu atveju gauta tarpinė kalba yra skaitoma žmogui. Vienas iš kompiuterių programavimo kalbos, kuri taip pat naudojama kaip tarpinė kalba, pavyzdys yra JavaScript®, kurios pranašumas yra tai, kad nuo 2011 m. ji gali veikti beveik bet kurioje žiniatinklio naršyklėje bet kurioje platformoje.