Kompilaator: erinevus redaktsioonide vahel

Allikas: Vikipeedia
Eemaldatud sisu Lisatud sisu
Nene (arutelu | kaastöö)
toodud kompileerimise artiklist siia viide artiklile Teose kompileerimine + kategooria
Nene (arutelu | kaastöö)
kirjutatud pikemalt kõiksugustest kompilaatori liikidest
3. rida: 3. rida:
'''Kompilaator''' ehk '''translaator''' on [[arvutiprogramm|programm]], mis tõlgib (kompileerib) ühes [[arvutikeel]]es (''lähtekeel'') kirjutatud [[lähtekood]]i teise arvutikeelde (''sihtkeel'', tihti binaarne [[objektikood]]). Sagedasim põhjus lähtekoodi selliseks transformeerimiseks on käivitatava programmi loomine.
'''Kompilaator''' ehk '''translaator''' on [[arvutiprogramm|programm]], mis tõlgib (kompileerib) ühes [[arvutikeel]]es (''lähtekeel'') kirjutatud [[lähtekood]]i 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 [[assemblerkeel]]de või [[masinkood]]i). Programmi, mis tõlgib madaltaseme keelest kõrgema taseme keelde, nimetatakse [[dekompilaator]]iks. 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 [[kaskaadija]]tena.
== Tööpõhimõte ==


Assemblerkeele, mis pole kõrgtaseme keel, kompilaatorit nimetatakse harilikult [[assembler]]iks ja dekompilaatorit [[disassembler]]iks.
Harilikult tõlgitakse [[lähtekood]]e (tavaliselt kirjutatud [[programmeerimiskeel|kõrgemas programmeerimiskeeles]]) sihtkoodi (tavaliselt madalamasse [[objektikood]]i, mida saab [[virtuaalmasin]]a abil käivitada, või [[masinkood]]i, mida saab arvuti otse käivitada).


Kompilaator teostab oma töö käigus tavaliselt järgmised operatsioonid: [[leksiline analüüs]], [[eelprotsessor|eelprotsessimine]], [[parsimine]], [[semantiline analüüs]], [[koodi genereerimine]] ja [[koodi optimeerimine]].
Vastupidises suunas kompileerijaid nimetatakse [[dekompilaator]]iteks.


Terminit kompilaatori-kompilaator kasutatakse [[parseri generaator]]ite kohta.
Eksisteerib ka kompilaatoreid, mis tõlgivad ühest kõrgest keelest teise või mõnikord vahepealsesse keelde, mis nõuavad edasist töötlemist (neid tuntakse ka [[kaskaadija]]tena).

== Kompileeritavad ja interpreteeritavad keeled ==


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.
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.

Redaktsioon: 15. aprill 2010, kell 17:52

 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

Iga programmeerimiskeele jaoks pole olemas kompilaatorit. Nendes keeltes kasutatakse interpretaatorit - 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.

Vaata ka