Kompilaator

Allikas: Vikipeedia
Disambig gray.svg  See artikkel räägib programmeerimise mõistest; teoste koostamise viisi kohta vaata artiklit Teose kompileerimine.

Kompilaator ehk translaator on programm, mis tõlgib (kompileerib) ühes arvutikeeles (lähtekeel) kirjutatud lähtekoodi teise arvutikeelde (sihtkeel, tihti binaarne objektikood). Sagedasim põhjus lähtekoodi selliseks transformeerimiseks on käivitatava programmi loomine.

Nime "kompilaator" kasutatakse harilikult programmide kohta, mis tõlgivad kõrgtaseme programmeerimiskeelest madalama taseme keelde (näiteks assemblerkeelde või masinkoodi). Programmi, mis tõlgib madaltaseme keelest kõrgema taseme keelde, nimetatakse dekompilaatoriks. Programmi, mis tõlgib ühest kõrgtaseme keelest teise, nimetatakse translaatoriks. Keele ümberkirjutajaks nimetatakse programmi, mis tõlgib programmeerimiskeele elementide erinevate vormide vahel ilma keelt vahetamata. Kompilaatoreid, mis tõlgivad ühest kõrgest keelest vahepealsesse keelde, mis nõuavad edasist töötlemist, tuntakse kaskaadijatena.

Assemblerkeele, mis pole kõrgtaseme keel, kompilaatorit nimetatakse harilikult assembleriks ja dekompilaatorit disassembleriks.

Kompilaator teostab oma töö käigus tavaliselt järgmised operatsioonid: leksiline analüüs, eelprotsessimine, parsimine, semantiline analüüs, koodi genereerimine ja koodi optimeerimine.

Terminit kompilaatori-kompilaator kasutatakse parseri generaatorite kohta.

Kompileeritavad ja interpreteeritavad keeled[muuda | redigeeri lähteteksti]

Alternatiivne meetod programmi käivitamiseks vastandina kõigepealt kompileerimisele ja seejärel käivitamisele on programmikoodi käivitamine interpretaatoriga.

Kõrgemaid programmeerimiskeeli jaotatakse sageli kompileeritavateks ja interpreteeritavateks keelteks. Kuid teoreetiliselt võib kompilaatori ja interpretaatori luua iga keele jaoks, ning praktikas ongi paljude keelte jaoks olemas mõlemad. Selline kategoriseerimine viitab harilikult programmeerimiskeele levinuimatele implementatsioonidele. Näiteks viidatakse harilikult BASICule kui interpreteeritavale ja C-le kui kompileeritavale keelele, kuigi eksisteerib ka BASICu kompilaatoreid ja C interpretaatoreid.[1][2]

Viited[muuda | redigeeri lähteteksti]

Vaata ka[muuda | redigeeri lähteteksti]