Kompilaator: erinevus redaktsioonide vahel

Allikas: Vikipeedia
Eemaldatud sisu Lisatud sisu
Nene (arutelu | kaastöö)
kirjutatud pikemalt kõiksugustest kompilaatori liikidest
Nene (arutelu | kaastöö)
13. rida: 13. rida:
== Kompileeritavad ja interpreteeritavad keeled ==
== Kompileeritavad ja interpreteeritavad keeled ==


Alternatiivne meetod programmi käivitamiseks vastandina kõigepealt kompileerimisele ja seejärel käivitamisele on programmikoodi käivitamine [[interpretaator]]iga.
Iga programmeerimiskeele jaoks pole olemas kompilaatorit. Nendes keeltes kasutatakse [[interpretaator]]it - programmi, mis tõlgib programmi laused masinkoodi töö käigus. Niisugused keeled on näiteks [[Visual Basic]] ja [[Prolog]]. Ka interpreteerivad keeled on enamasti kõrgtaseme keeled.

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 [[BASIC]]ule kui interpreteeritavale ja [[C (programmeerimiskeel)|C]]-le kui kompileeritavale keelele, kuigi eksisteerib ka BASICu kompilaatoreid ja C interpretaatoreid.<ref>[http://www.freebasic.net/index.php/about FreeBASIC compiler]</ref><ref>[http://www.softintegration.com/ Ch -- an embeddable C/C++ interpreter]</ref>


==Vaata ka==
==Vaata ka==

Redaktsioon: 15. aprill 2010, kell 18:28

 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

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]

Vaata ka