Assembler vs tõlk
Üldiselt on kompilaator arvutiprogramm, mis loeb ühes keeles kirjutatud programmi, mida nimetatakse lähtekeeleks, ja tõlgib selle teise keelde, mida nimetatakse sihtkeeleks. Traditsiooniliselt on lähtekeel kõrgetasemeline keel, näiteks C ++, ja sihtkeel on madala taseme keel, näiteks assamblee keel. Siiski on kompilaatoreid, mis suudavad teisendada Assembly-keeles kirjutatud lähteprogrammi ja teisendada see masinkoodiks või objektikoodiks. Kokkupanijad on sellised tööriistad. Teisest küljest on tõlgid tööriistad, mis täidavad mõnes programmeerimiskeeles kirjutatud juhiseid. Tõlk võib kas otse käivitada kõrgetasemelise lähtekoodi või tõlkida need vahekoodiks ja tõlgendada seda või käivitada eelkompileeritud koodi.
Mis on monteerija?
Assembler on tarkvara või tööriist, mis tõlgib Assembly keele masinkoodiks. Niisiis, kokkupanija on kompilaatori tüüp ja lähtekood on kirjutatud assamblee keeles. Montaaž on inimesele loetav keel, kuid tavaliselt on sellel üks ja teine seos vastava masinkoodiga. Seetõttu väidetakse, et monteerija teostab isomorfset (üks kuni üks kaardistamine) translatsiooni. Täiustatud koostajad pakuvad lisafunktsioone, mis toetavad programmi arendamist ja silumisprotsesse. Näiteks makrokoostujateks kutsutavate komplekteerijate tüüp pakub makrovõimalust.
Mis on tõlk?
Tõlk on arvutiprogramm või tööriist, mis täidab programmeerimisjuhiseid. Tõlk võib lähteteksti otse käivitada või teisendada lähtekoodiks vahekoodiks ja käivitada selle otse või käivitada kompilaatori toodetud eelkompileeritud koodi (mõned tõlgisüsteemid sisaldavad selle ülesande jaoks kompilaatorit). Sellised keeled nagu Perl, Python, MATLAB ja Ruby on vahekoodi kasutavate programmeerimiskeelte näited. UCSD Pascal tõlgendab eelkompileeritud koodi. Sellised keeled nagu Java, BASIC ja Samlltalk kompileerivad kõigepealt allika vahekoodiks, mida nimetatakse baitkoodiks, ja tõlgendavad seda.
Mis vahe on koostajal ja tõlgil??
Monteerijat võib pidada eritüübiliseks kompilaatoriks, mis tõlgib Assembly keele masinkoodiks. Tõlgid on tööriistad, mis täidavad mõnes keeles kirjutatud juhiseid. Tõlgisüsteemid võivad sisaldada kompilaatorit, et enne tõlkimist kood kompileerida, kuid tõlki ei saa nimetada kompilaatori eritüübiks. Koostajad loovad objektikoodi, mille võib-olla tuleb masinal töötamiseks linkerprogrammide abil linkida, kuid enamik tõlke saab programmi täitmise ise ise lõpule viia. Monteerija teeb tavaliselt üks-ühele tõlke, kuid enamiku tõlkide puhul see ei kehti. Kuna kokkupaneku keeles on üks ja üks masinkoodiga kaardistatud, võib koostajat kasutada sellise koodi tootmiseks, mis töötab väga tõhusalt juhtudel, kui jõudlus on väga oluline (nt graafikamootorid, manustatud süsteemid, mille personaalarvuti on piiratud riistvararessurssidega) nagu mikrolaineahjud, pesumasinad jne). Teisest küljest kasutatakse tõlke siis, kui vajate kõrget kaasaskantavust. Näiteks saab sama Java bytecode käitada erinevatel platvormidel, kasutades sobivat tõlki (JVM).