Monteerija 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õrgel tasemel keel nagu C ++ ja sihtkeel on madala taseme keel, näiteks assamblee keel. Siiski on kompilaatoreid, kes suudavad teisendada assamblee keeles kirjutatud lähtekava ja teisendada selle masinakoodiks või objektikoodiks. Monteerijad on sellised tööriistad. Teiselt poolt 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 seejärel tõlgendada seda või käivitada eelkompileeritud koodi.
Mis on monteerija?
Assembler on tarkvara või tööriist, mis tõlgib assamblee keele masinakoodiks. Nii et assembler on kompilaatori tüüp ja lähtekood on kirjutatud assamblee keeles. Assamblee on inimesele loetav keel, kuid sellel on tavaliselt üks-üks suhe vastava masinakoodiga. Seetõttu öeldakse, et assamblee teostab isomorfset (üks ühele kaardistamine) tõlget. Täiustatud monteerijad pakuvad lisavõimalusi, mis toetavad programmi arendamist ja silumisprotsesse. Näiteks pakub makromehhanismi monteerijate tüüp, mida nimetatakse makrokomplektideks.
Mis on tõlk?
Tõlk on arvutiprogramm või tööriist, mis täidab programmeerimisjuhiseid. Tõlk võib kas käivitada lähtekoodi otse või teisendada allika vahekoodiks ja käivitada selle otse või käivitada kompilaatori poolt koostatud eelkompileeritud koodi (mõned tõlkide süsteemid sisaldavad selle ülesande jaoks ka kompilaatorit). Vahekoodi kasutavate programmeerimiskeelte näited on sellised keeled nagu Perl, Python, MATLAB ja Ruby. UCSD Pascal tõlgendab eelkompileeritud koodi. Sellised keeled nagu Java, BASIC ja Samlltalk kompileerivad esmalt allika vahekoodiks, mida nimetatakse baitkoodiks, ja seejärel tõlgendatakse seda.
Mis vahe on monteerijal ja tõlkil?
Monteerijat võib pidada spetsiaalseks kompilaatori tüübiks, mis tõlgib assamblee keelt ainult masinakoodiks. Tõlgid on tööriistad, mis täidavad mõnes keeles kirjutatud juhiseid. Tõlkesüsteemid võivad sisaldada kompilaatorit, et see enne tõlgendamist koodi eelnevalt kompileerida, kuid tõlki ei saa nimetada kompilaatori eriliigiks. Monteerijad toodavad objektikoodi, mis võib masinas töötamiseks olla linkimisprogrammide abil linkitud, kuid enamik tõlke saab programmi täitmise ise lõpule viia. Monteerija teeb tavaliselt üks ühele tõlke, kuid see ei kehti enamiku tõlkide puhul. Kuna assamblee keelel on üks-ühele vastavus masinkoodiga, võidakse monteerijat kasutada koodi tootmiseks, mis töötab väga tõhusalt juhtudel, kui jõudlus on väga oluline (ntpiiratud riistvararessurssidega (näiteks mikrolaineahjud, pesumasinad jne) sisseehitatud süsteemid. Teisest küljest kasutatakse tõlke, kui vajate kõrget teisaldatavust. Näiteks saab sama Java-baitkoodi käivitada erinevatel platvormidel, kasutades vastavat tõlki (JVM).