Compiler vs Interpreter: Popolna razlika med prevajalnikom in tolmačem

Kazalo:

Anonim

Kaj je Compiler?

Prevajalnik je računalniški program, ki pretvori kodo, napisano v programskem jeziku na visoki ravni, v strojno kodo. To je program, ki človeško berljivo kodo prevede v jezik, ki ga računalniški procesor razume (binarni 1 in 0 bitov). Računalnik obdela strojno kodo za izvajanje ustreznih nalog.

Prevajalnik mora upoštevati sintaksno pravilo tistega programskega jezika, v katerem je napisan. Vendar je prevajalnik le program in ne more odpraviti napak, najdenih v tem programu. Torej, če se zmotite, morate spremeniti skladnjo vašega programa. V nasprotnem primeru se ne bo prevedel.

Kaj je tolmač?

Tolmač je računalniški program, ki zajema vsako izjavo programa na visoki ravni v strojno kodo. To vključuje izvorno kodo, vnaprej pripravljeno kodo in skripte. Tako prevajalnik kot tolmači opravljajo isto delo, ki pretvarja programski jezik višje ravni v strojno kodo. Prevajalnik pa bo kodo pretvoril v strojno kodo (ustvaril exe) pred zagonom programa. Tolmači med izvajanjem programa pretvorijo kodo v strojno kodo.

KLJUČNA RAZLIKA

  • Prevajalnik prevede kodo, napisano v programskem jeziku na visoki ravni, v strojno kodo, takoj pred zagonom programa, medtem ko Interpreter med izvajanjem programa vsako izjavo programa na visoki ravni eno za drugo prekrije v strojno kodo.
  • Prevedena koda deluje hitreje, medtem ko interpretirana koda deluje počasneje.
  • Prevajalnik prikaže vse napake po prevajanju, po drugi strani pa tolmač prikaže napake vsake vrstice eno za drugo.
  • Prevajalnik temelji na modelu povezovanja in nalaganja prevodov, medtem ko Interpreter temelji na metodi tolmačenja.
  • Prevajalnik zavzame celoten program, razlagalec pa eno vrstico kode.

Razlika med prevajalnikom in tolmačem

Osnova razlike Prevajalnik Tolmač
Koraki programiranja
  • Ustvari program.
  • Compile bo analiziral ali analiziral vse jezikovne izjave glede njihove pravilnosti. Če ni pravilno, vrne napako
  • Če ni napake, bo prevajalnik izvorno kodo pretvoril v strojno kodo.
  • Povezuje različne kodne datoteke v program, ki ga je mogoče zagnati (poznan kot exe)
  • Zaženite program
  • Ustvari program
  • Brez povezovanja datotek ali ustvarjanja strojne kode
  • Izvorni stavki se med izvajanjem izvajajo vrstica za vrstico
Prednost Programska koda je že prevedena v strojno kodo. Tako je čas izvajanja kode manjši. Tolmači so enostavnejši za uporabo, zlasti za začetnike.
Pomanjkljivost Programa ne morete spremeniti, ne da bi se vrnili na izvorno kodo. Tolmačeni programi se lahko izvajajo v računalnikih z ustreznim tolmačem.
Strojna koda Shranite strojni jezik kot strojno kodo na disk Strojne kode sploh ne shranjujem.
Čas delovanja Prevedena koda deluje hitreje Interpretirana koda deluje počasneje
Model Temelji na modelu za povezovanje in nalaganje jezikovnih prevodov. Temelji na interpretacijski metodi.
Ustvarjanje programov Ustvari izhodni program (v obliki exe), ki ga je mogoče zagnati neodvisno od prvotnega programa. Ne ustvarjajte izhodnega programa. Torej ocenijo izvorni program vsakič med izvajanjem.
Izvršitev Izvajanje programa je ločeno od prevajanja. Izvedel se je šele po sestavi celotnega izhodnega programa. Izvajanje programa je del postopka tolmačenja, zato se izvaja vrstica za vrstico.
Zahteva glede pomnilnika Izvedite ciljni program neodvisno in ne potrebujete prevajalnika v pomnilniku. Tolmač med tolmačenjem obstaja v spominu.
Najbolj primeren za Omejena na določeno ciljno napravo in je ni mogoče prenesti. C in C ++ sta najbolj priljubljena programska jezika, ki uporablja model prevajanja. Za spletna okolja, kjer so časi nalaganja pomembni. Zaradi celotne opravljene izčrpne analize prevajanja potrebujejo sorazmerno več časa za sestavljanje celo majhne kode, ki je morda ne bo večkrat zagnati. V takih primerih so tolmači boljši.
Optimizacija kode Prevajalnik vidi celotno kodo vnaprej. Zato izvajajo veliko optimizacij, zaradi katerih koda deluje hitreje Tolmači vidijo kodo vrstico za vrstico in zato optimizacije niso tako robustne kot prevajalniki
Dinamično tipkanje Težko izvedljivo, saj prevajalniki ne morejo predvideti, kaj se bo zgodilo v času obrata. Tolmačeni jeziki podpirajo dinamično tipkanje
Uporaba Najbolj primeren je za proizvodno okolje Najbolj je primeren za program in razvojno okolje.
Izvajanje napake Prevajalnik prikaže vse napake in opozorila v času prevajanja. Zato programa ne morete zagnati brez odpravljanja napak Tolmač prebere en stavek in pokaže napako, če obstaja. Za interpretacijo naslednje vrstice morate popraviti napako.
Vhod Potreben je celoten program Potrebna je ena vrstica kode.
Izhod Compliers generira vmesno Machnie kodo. Tolmač nikoli ne generira vmesne strojne kode.
Napake Prikaži vse napake po, prevajanju, vse hkrati. Vsaka napaka posamezne vrstice prikaže eno za drugo.
Pripadajoči programski jeziki C, C ++, C #, Scala, Java uporabljajo complier. PHP, Perl, Ruby uporablja tolmač.

Vloga sestavljavca

  • Dobavitelji berejo izvorno kodo in oddajo izvršljivo kodo
  • Programsko opremo, napisano v jeziku višje ravni, prevede v navodila, ki jih računalnik lahko razume. Besedilo, ki ga napiše programer, pretvori v obliko, ki jo CPU lahko razume.
  • Postopek sestavljanja je razmeroma zapleten. Veliko časa porabi za analizo in obdelavo programa.
  • Izvršljivi rezultat je neka oblika binarne kode, specifične za stroj.

Vloga tolmača

  • Tolmač pretvori izvorno kodo vrstico za vrstico med RUN Time.
  • Interpret v celoti prevede program, napisan v jeziku visoke ravni, v jezik strojne ravni.
  • Tolmač omogoča ovrednotenje in spreminjanje programa med izvajanjem.
  • Sorazmerno manj časa, porabljenega za analizo in obdelavo programa
  • Izvajanje programa je v primerjavi s prevajalnikom razmeroma počasno

JEZIKI NA VISOKI RAVNI

Jeziki na visoki ravni, kot so C, C ++, JAVA itd., So zelo blizu angleščini. Olajša postopek programiranja. Pred izvedbo pa ga je treba prevesti v strojni jezik. Ta postopek prevajanja izvaja bodisi prevajalnik bodisi tolmač. Znana tudi kot izvorna koda.

KODA STROJA

Strojni jeziki so zelo blizu strojne opreme. Vsak računalnik ima svoj strojni jezik. Programi strojnega jezika so sestavljeni iz nizov binarnih vzorcev. (Npr. 110110) Predstavlja preproste operacije, ki jih mora izvajati računalnik. Programi strojnega jezika so izvedljivi, tako da jih je mogoče neposredno zagnati.

KODA PREDMETA

Pri prevajanju izvorne kode se strojna koda, ustvarjena za različne procesorje, kot so Intel, AMD, ARM, razlikuje. tČe želite prenosno kodo narediti, se izvorna koda najprej pretvori v objektno kodo. To je posredniška koda (podobna strojni kodi), ki je noben procesor ne bo razumel. V času izvajanja se objektna koda pretvori v strojno kodo osnovne platforme.

Java je tako prevedena kot interpretirana.

Za izkoriščanje relativnih prednosti prevajalnikov so tolmači, nekateri programski jezik, kot je Java, so tako prevedeni kot interpretirani. Koda Java je zbrana v kodo predmeta. V času izvajanja JVM interpretira kodo predmeta v strojno kodo ciljnega računalnika.