Assembleri ja tõlgi erinevus

Assembleri ja tõlgi erinevus
Assembleri ja tõlgi erinevus

Video: Assembleri ja tõlgi erinevus

Video: Assembleri ja tõlgi erinevus
Video: RxJS Примеры. Работа с API GitHub 2024, November
Anonim

Kokkupanija 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 (nt C++) ja sihtkeel madalatasemeline keel (nt koostekeel). Siiski on kompilaatoreid, mis suudavad teisendada Assembly keeles kirjutatud lähteprogrammi ja teisendada selle masinkoodiks või objektkoodiks. Assemblers on sellised tööriistad. Teisest küljest on tõlgid tööriistad, mis täidavad mõnes programmeerimiskeeles kirjutatud juhiseid. Interpreter võib kas otse käivitada kõrgetasemelise lähtekoodi või tõlkida need vahepealseks koodiks ja seejärel seda tõlgendada või käivitada eelkompileeritud koodi.

Mis on monteerija?

Assembler on tarkvara või tööriist, mis tõlgib koostekeele masinkoodiks. Seega on assembler teatud tüüpi kompilaator ja lähtekood on kirjutatud assembly keeles. Assembly on inimesele loetav keel, kuid tavaliselt on sellel üks ühele seos vastava masinkoodiga. Seetõttu väidetakse, et assembler teostab isomorfset (üks ühele vastendus) tõlget. Täiustatud komplekteerijad pakuvad lisafunktsioone, mis toetavad programmide arendus- ja silumisprotsesse. Näiteks makrokoostajateks nimetatavad monteerijad pakuvad makrovõimalust.

Mis on tõlk?

Tõlk on arvutiprogramm või tööriist, mis täidab programmeerimiskäske. 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 toodetud eelkompileeritud koodi (mõned tõlgisüsteemid sisaldavad selle ülesande jaoks kompilaatorit). Sellised keeled nagu Perl, Python, MATLAB ja Ruby on näited programmeerimiskeeltest, mis kasutavad vahepealset koodi. UCSD Pascal tõlgendab eelkompileeritud koodi. Sellised keeled nagu Java, BASIC ja Samlltalk kompileerivad esm alt allika vahekoodiks, mida nimetatakse baitkoodiks, ja seejärel tõlgendavad seda.

Mis vahe on monteerijal ja tõlgil?

Assemblerit võib pidada spetsiaalseks kompilaatoritüübiks, mis tõlgib ainult koostekeele masinkoodiks. Tõlgid on tööriistad, mis täidavad mõnes keeles kirjutatud juhiseid. Tõlgisüsteemid võivad sisaldada kompilaatorit koodi eelkompileerimiseks enne tõlgendamist, kuid tõlki ei saa nimetada kompilaatori eriliigiks. Assemblerid toodavad objektkoodi, mis võib-olla tuleb masinas töötamiseks linkerprogrammide abil linkida, kuid enamik tõlke saab programmi täitmise ise lõpule viia. Tavaliselt teeb koostaja üks ühele tõlke, kuid enamiku tõlkide puhul see ei kehti. Kuna assembly keelel on masinkoodiga üks ühele vastendus, võib assemblerit kasutada koodi loomiseks, mis töötab väga tõhus alt juhtudel, kui jõudlus on väga oluline (nt graafikamootorid, manustatud süsteemid, mille riistvara ressurss on võrreldes personaalarvutiga piiratud nagu mikrolaineahjud, pesumasinad jne). Teisest küljest kasutatakse tõlke siis, kui vajate suurt teisaldatavust. Näiteks saab sama Java baitkoodi käitada erinevatel platvormidel, kasutades vastavat interpretaatorit (JVM).

Soovitan: