Mis on vahekeel?

Arvutiprogrammeerimisel, kui kompilaator parsib inimloetavat lähtekoodi, tõlgib kompilaator sageli lähtekäsud käskude jadaks, mis ei ole päris algne masinkood, kuid mida kompilaator või muu tarkvara saab edasi töödelda, optimeerida või kompileerida. tööriistad. Valmistatavad failid sisaldavad käske, mis väidetavalt on vahepealses keeles, kuna kompilaatori kasutatav keel ei ole suurema operatsioonisüsteemi jaoks tähenduslik ega keel, mida programmeerija koodi kirjutamiseks kasutab, vaid selle asemel. on keel, mis toimib sillana programmi kirjutamise ja täitmise vahel. Vahepealset keelt kasutatakse mõnikord selleks, et võimaldada kompilaatoril teha väga täpseid optimeerimisi, et programm töötaks tõhusamalt, kuid seda saab kasutada ka erinevate, mitteühilduvate süsteemide vahel teisaldatavate väljundfailide tootmiseks. Keele tegelik süntaks võib meenutada masinkoodi või muud tüüpi mitte-inimloetavat baitkoodi või keel võib olla lihtsalt olemasolev platvormideülene arvutiprogrammeerimiskeel.

Kui seda kasutatakse kompilaatori optimeerimiseks, võtab keelekompilaator iga lähtekoodifaili lause ja jagab käsu vahekeeleks. Üks inimloetav programmeerimislause võib laguneda kümneteks masinkeelte käskudeks, nii et vahekeel loob abstraktsioonitaseme, mida kompilaator saab kasutada koodi piirkondade tuvastamiseks, kus saab optimeerida, ilma et peaks koodi esmalt siduma. mis tahes omarakendused või teegid. Pärast lõpetamist saab vahekoodifaili edasi kompileerida, et luua natiivne binaarfail, või seda saab käivitada mõne teise programmi kaudu, mida nimetatakse tõlgiks, mis käivitab koodi, kompileerides selle vastavalt vajadusele natiivseteks käskudeks.

Mõned keeled, näiteks Java®, kasutavad optimeeritud, kuid ka teistesse arvutisüsteemidesse kaasaskantavate kompileeritud failide loomiseks vahepealset keelt. Seda tüüpi koodi nimetatakse mõnikord baitkoodiks ja see sarnaneb masinkoodiga või komplekteerimiskeelega. Baitkood salvestatakse failidesse platvormist sõltumatul viisil, mis tähendab, et seda saab üle kanda mis tahes arvutisüsteemi või seadmesse, mis suudab tõlkida. Kui baitkood on süsteemis, saab seda käivitada tõlgendatud programmina või kompileerida nii, et see töötaks natiivselt sihtsüsteemis.

Mõnel juhul on arvutikeel loodud selleks, et hõlbustada konkreetse eesmärgi, näiteks interaktiivse veebirakenduse, programmeerimist, kuid disainerid ei soovi lisada erinevate süsteemide jaoks kohandatud kompilaatoreid, tõlke ega pistikprogramme. Sellistel juhtudel võib kompilaatori vahekeel olla olemasolev keel, millel on juba loodud platvormidevahelised tõlgid. Saadud vahekeel on sel juhul inimesele loetav. Üks näide arvutiprogrammeerimiskeelest, mida kasutatakse ka vahekeelena, on JavaScript®, mille eeliseks on see, et alates 2011. aastast saab seda töötada peaaegu igas veebibrauseris mis tahes platvormil.