Assembler vs koostaja
Üldiselt on kompilaator arvutiprogramm, mis loeb ühes keeles kirjutatud programmi, mida nimetatakse lähtekeeleks, ja tõlgib selle teise keelde, mida nimetatakse sihtkeeleks. Traditsiooniliselt oli lähtekeel kõrgetasemeline keel, näiteks C ++, ja sihtkeel oli 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. Nii et nii koostajad kui ka kompilaatorid annavad lõppkokkuvõttes koodi, mida saab otse masinas käivitada.
Mis on kompilaator?
Kompilaator on arvutiprogramm, mis loeb ühes keeles kirjutatud programmi, mida nimetatakse lähtekeeleks, ja tõlgib selle teise keelde, mida nimetatakse sihtkeeleks. Kõige sagedamini on lähtekeel kõrgel tasemel ja sihtkeel madalal tasemel. Nii et üldiselt võib kompilaatorit pidada tõlkijaks, kes tõlgib ühest keelest teise. Lisaks viivad kompilaatorid koodi mõne optimeerimisega. Tüüpiline kompilaator koosneb mitmest põhikomponendist. Esimene komponent on skanner (tuntud ka kui leksikaalne analüsaator). Skanner loeb programmi ja teisendab selle tokenistringiks. Teine komponent on parser. See teisendab žetoonide stringi parsimispuuks (või abstraktseks süntaksipuuks), mis hõlmab programmi süntaktilist struktuuri. Järgmine komponent on semantilised rutiinid, mis tõlgendavad süntaktilise struktuuri semantikat. Koodi optimeerimine ja lõplik koodi genereerimine järgivad seda.
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 vahe on monteerijal ja kompilaatoril??
Kompilaator on arvutiprogramm, mis loeb ühes keeles kirjutatud programmi ja tõlgib selle teise keelde, samas kui kokkupanijat võib pidada spetsiaalseks kompilaatori tüübiks, mis tõlgib masinakoodiks ainult assamblee keele. Kompilaatorid toodavad tavaliselt masina käivitatava koodi otse kõrgetasemelisest keelest, kuid koostajad toodavad objektikoodi, mille võib masinas töötamiseks olla vaja linkerprogrammide abil linkida. 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 toimivus on väga oluline (nt graafikamootorid, manustatud süsteemid, mille riistvara on piiratud, võrreldes personaalarvutiga) nagu mikrolaineahjud, pesumasinad jne).