Assembler vs Compiler
Ü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õrgel tasemel keel nagu C ++ ja sihtkeel oli madal 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. Nii toodavad nii kokkupanijad kui ka kompilaatorid lõpuks koodi, mida saab otse masinas käivitada.
Mis on koostaja?
Compiler 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ähtekeeleks kõrgetasemeline keel ja sihtkeeleks madalkeelne keel. Seega võib kompilaatoreid pidada tõlkijateks, kes tõlgivad ühest keelest teise. Lisaks teevad kompilaatorid koodi mõningaid optimeerimisi. Tüüpiline kompilaator koosneb mitmest põhikomponendist. Esimene komponent on skanner (tuntud ka kui leksikaalne analüsaator). Skanner loeb programmi ja teisendab selle märgimärgiks. Teine komponent on parser. See teisendab märkide stringi sõelumispuuks (või abstraktseks süntaksipuuks), mis haarab programmi süntaktilise struktuuri. Järgmine komponent on semantilised rutiinid, mis tõlgendavad süntaktilise struktuuri semantikat. Koodi optimeerimine ja koodi lõplik genereerimine järgivad seda.
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 vahe on kokkupanijal ja koostajal?
Compiler on arvutiprogramm, mis loeb ühes keeles kirjutatud programmi ja tõlgib selle teise keelde, samas kui assambleerit võib pidada spetsiaalseks kompilaatori tüübiks, mis tõlgib masinakoodiks ainult assamblee keele. Kompilaatorid toodavad masina käivitatava koodi tavaliselt otse kõrgetasemelisest keelest, kuid kokkupanijad toodavad objektikoodi, mis võib masinas töötamiseks olla linkimisprogrammide abil linkitud. Kuna assamblee keelel on üks-ühele vastavus masinkoodiga, võib monteerijat kasutada koodi tootmiseks, mis töötab väga tõhusalt juhtudel, kui jõudlus on väga oluline (nt graafikamootorite, piiratud riistvararessurssidega varjatud süsteemide puhul võrreldes personaalarvutiga nagu mikrolaineahjud, pesumasinad jne).