Sestavljalec proti tolmaču
Na splošno je prevajalnik računalniški program, ki prebere program, napisan v enem jeziku, ki se imenuje izvorni jezik, in ga prevede v drug jezik, ki se imenuje ciljni jezik. Tradicionalno je izvorni jezik jezik visoke ravni, kot je C++, ciljni jezik pa jezik nizke ravni, kot je zbirni jezik. Vendar pa obstajajo prevajalniki, ki lahko pretvorijo izvorni program, napisan v zbirnem jeziku, in ga pretvorijo v strojno kodo ali objektno kodo. Takšna orodja so sestavljalci. Po drugi strani pa so tolmači orodja, ki izvajajo navodila, napisana v nekem programskem jeziku. Tolmač lahko neposredno izvaja izvorno kodo na visoki ravni ali pa jih prevede v vmesno kodo in jo nato interpretira ali izvede vnaprej prevedeno kodo.
Kaj je Assembler?
Assembler je programska oprema ali orodje, ki prevaja jezik Assembly v strojno kodo. Torej, asembler je vrsta prevajalnika in izvorna koda je napisana v jeziku Assembly. Sestavljanje je človeku berljiv jezik, vendar je običajno v razmerju ena proti ena z ustrezno strojno kodo. Zato pravimo, da asembler izvaja izomorfno (preslikava ena proti ena) prevajanje. Napredni sestavljalniki nudijo dodatne funkcije, ki podpirajo razvoj programov in procese odpravljanja napak. Na primer, tip sestavljalnikov, imenovanih makro sestavljalniki, zagotavlja možnost makra.
Kaj je tolmač?
Tolmač je računalniški program ali orodje, ki izvaja programska navodila. Tolmač lahko neposredno izvede izvorno kodo ali pretvori izvorno v vmesno kodo in jo izvede neposredno ali izvede vnaprej prevedeno kodo, ki jo ustvari prevajalnik (nekateri sistemi tolmačev vključujejo prevajalnik za to nalogo). Jeziki, kot so Perl, Python, MATLAB in Ruby, so primeri programskih jezikov, ki uporabljajo vmesno kodo. UCSD Pascal interpretira vnaprej prevedeno kodo. Jeziki, kot so Java, BASIC in Samlltalk, najprej prevedejo izvorno kodo v vmesno kodo, imenovano bajtna koda, in jo nato interpretirajo.
Kakšna je razlika med asemblerjem in tolmačem?
Assembler lahko štejemo za posebno vrsto prevajalnika, ki samo prevede jezik sestavljanja v strojno kodo. Tolmači so orodja, ki izvajajo navodila, napisana v nekem jeziku. Sistemi tolmačev lahko vključujejo prevajalnik za predhodno prevajanje kode pred interpretacijo, vendar tolmača ni mogoče imenovati posebna vrsta prevajalnika. Sestavljalci izdelajo objektno kodo, ki jo je morda treba povezati z uporabo povezovalnih programov, da bi lahko delovala na stroju, vendar lahko večina tolmačev dokonča izvajanje programa sama. Asembler bo običajno naredil prevod ena proti ena, vendar to ne velja za večino tolmačev. Ker ima zbirni jezik preslikavo ena proti ena s strojno kodo, se lahko asembler uporablja za ustvarjanje kode, ki deluje zelo učinkovito v primerih, ko je zmogljivost zelo pomembna (npr. za grafične motorje, vdelane sisteme z omejenimi viri strojne opreme v primerjavi z osebnim računalnikom mikrovalovne pečice, pralni stroji itd.). Po drugi strani pa se tolmači uporabljajo, ko potrebujete visoko prenosljivost. Na primer, isto bajtno kodo Java je mogoče izvajati na različnih platformah z uporabo ustreznega tolmača (JVM).