Kompilátor vs Tlmočník: Úplný rozdiel medzi prekladačom a tlmočníkom

Obsah:

Anonim

Čo je kompilátor?

Kompilátor je počítačový program, ktorý transformuje kód napísaný v programovacom jazyku na vysokej úrovni do strojového kódu. Je to program, ktorý prekladá ľudsky čitateľný kód do jazyka, ktorému rozumie počítačový procesor (binárne 1 a 0 bitov). Počítač spracuje strojový kód na vykonávanie zodpovedajúcich úloh.

Kompilátor by mal dodržiavať pravidlo syntaxe programovacieho jazyka, v ktorom je napísaný. Kompilátor je však iba program a nemôže opraviť chyby nájdené v danom programe. Ak teda urobíte chybu, musíte urobiť zmeny v syntaxi vášho programu. V opačnom prípade sa nebude kompilovať.

Čo je tlmočník?

Tlmočník je počítačový program, ktorý pokrýva každý programový príkaz na vysokej úrovni do strojového kódu. Patria sem zdrojový kód, predkompilovaný kód a skripty. Kompilátor aj tlmočníci vykonávajú rovnakú prácu, pri ktorej prevádzajú programovací jazyk na vyššej úrovni do strojového kódu. Kompilátor však pred spustením programu prevedie kód na strojový kód (vytvorí exe). Po spustení programu tlmočníci prevádzajú kód do strojového kódu.

KĽÚČOVÝ ROZDIEL

  • Kompilátor transformuje kód napísaný v programovacom jazyku na vysokej úrovni do strojového kódu naraz pred spustením programu, zatiaľ čo tlmočník počas behu programu zakrýva každý programový príkaz na vysokej úrovni jeden po druhom do strojového kódu.
  • Kompilovaný kód beží rýchlejšie, zatiaľ čo interpretovaný kód beží pomalšie.
  • Kompilátor po kompilácii zobrazí všetky chyby, na druhej strane tlmočník po jednom zobrazí chyby každého riadku.
  • Prekladač je založený na modeli prekladania a načítania, zatiaľ čo tlmočník je založený na metóde interpretácie.
  • Kompilátor zaberie celý program, zatiaľ čo tlmočník zaberie jeden riadok kódu.

Rozdiel medzi prekladateľom a tlmočníkom

Základ rozdielu Zostavovateľ Tlmočník
Programovacie kroky
  • Vytvorte program.
  • Pri kompilácii sa analyzuje alebo analyzuje správnosť všetkých jazykových príkazov. Ak je nesprávny, hodí chybu
  • Ak nedôjde k chybe, kompilátor prevedie zdrojový kód na strojový.
  • Prepojuje rôzne súbory kódu do spustiteľného programu (známeho ako exe)
  • Spustite program
  • Vytvorte program
  • Žiadne prepájanie súborov alebo generovanie strojového kódu
  • Zdrojové príkazy vykonané riadok po riadku POČAS vykonania
Výhoda Programový kód je už preložený do strojového kódu. Preto je doba vykonania kódu kratšia. Tlmočníci sa používajú ľahšie, najmä pre začiatočníkov.
Nevýhoda Program sa nedá zmeniť bez návratu k zdrojovému kódu. Interpretované programy môžu bežať na počítačoch, ktoré majú zodpovedajúceho tlmočníka.
Strojový kód Uložte strojový jazyk ako strojový kód na disk Neukladá sa strojový kód.
Doba chodu Preložený kód beží rýchlejšie Interpretovaný kód beží pomalšie
Model Je založený na modeli prekladania odkazov a načítania jazykov. Je založená na interpretačnej metóde.
Generovanie programu Generuje výstupný program (vo forme exe), ktorý je možné spustiť nezávisle od pôvodného programu. Nevytvárajte výstupný program. Vyhodnocujú teda zdrojový program kedykoľvek počas vykonávania.
Exekúcia Vykonávanie programu je samostatné od kompilácie. Vykonalo sa to až po zostavení celého výstupného programu. Vykonanie programu je súčasťou interpretačného procesu, preto sa vykonáva riadok po riadku.
Požiadavka na pamäť Cieľový program sa vykonáva nezávisle a nevyžadujú kompilátor v pamäti. Počas tlmočenia tlmočník existuje v pamäti.
Najlepšie sa hodí pre Ohraničený na konkrétny cieľový počítač a nemožno ho preniesť. C a C ++ sú najpopulárnejším programovacím jazykom, ktorý využíva kompilačný model. Pre webové prostredia, kde sú dôležité doby načítania. Pretože je vykonaná všetka vyčerpávajúca analýza, kompilácia trvá relatívne dlhšie času na zostavenie aj malého kódu, ktorý sa nemusí dať spustiť viackrát. V takýchto prípadoch sú tlmočníci lepší.
Optimalizácia kódu Kompilátor vidí celý kód vopred. Preto vykonávajú veľa optimalizácií, vďaka ktorým beží kód rýchlejšie Tlmočníci vidia riadok po riadku, a preto optimalizácie nie sú také robustné ako kompilátory
Dynamické písanie Ťažko implementovateľné, pretože prekladače nemôžu predvídať, čo sa stane v čase obratu. Interpretované jazyky podporujú dynamické písanie
Využitie Najlepšie sa hodí do produkčného prostredia Najlepšie sa hodí pre programové a vývojové prostredie.
Vykonanie chyby Kompilátor zobrazuje všetky chyby a varovania v čase kompilácie. Preto nemôžete program spustiť bez odstránenia chýb Tlmočník prečíta jeden príkaz a zobrazí prípadnú chybu. Ak chcete interpretovať ďalší riadok, musíte chybu opraviť.
Vstup Trvá to celý program Trvá to jeden riadok kódu.
Výkon Compliance generuje sprostredkujúci kód machnie. Tlmočník nikdy negeneruje žiadny prechodný kód machnie.
Chyby Zobraziť všetky chyby po kompilácii, všetky naraz. Zobrazí všetky chyby každého riadku jednu po druhej.
Príslušné programovacie jazyky C, C ++, C #, Scala, Java všetci používajú complier. PHP, Perl, Ruby používa tlmočníka.

Úloha zostavovateľa

  • Komplikátor prečíta zdrojový kód a na výstup vydá spustiteľný kód
  • Prekladá softvér napísaný v jazyku vyššej úrovne do pokynov, ktorým počítač dokáže porozumieť. Konvertuje text, ktorý programátor píše, do formátu, ktorému procesor rozumie.
  • Proces zostavovania je pomerne komplikovaný. Analýze a spracovaniu programu venuje veľa času.
  • Spustiteľným výsledkom je nejaká forma strojovo špecifického binárneho kódu.

Úloha tlmočníka

  • Tlmočník prevádza zdrojový kód riadok po riadku počas RUN Time.
  • Tlmočník kompletne prekladá program napísaný v jazyku vyššej úrovne do jazyka strojovej úrovne.
  • Tlmočník umožňuje vyhodnotenie a modifikáciu programu počas jeho vykonávania.
  • Relatívne menej času stráveného analýzou a spracovaním programu
  • Vykonávanie programu je v porovnaní s kompilátorom pomerne pomalé

JAZYKY NA VYSOKEJ ÚROVNI

Jazyky na vysokej úrovni, ako napríklad C, C ++, JAVA atď., Sú veľmi blízke angličtine. Uľahčuje proces programovania. Pred vykonaním však musí byť preložený do strojového jazyka. Tento prekladateľský proces vykonáva buď kompilátor, alebo tlmočník. Známy tiež ako zdrojový kód.

KÓD STROJA

Strojové jazyky sú veľmi podobné hardvéru. Každý počítač má svoj strojový jazyk. Programy v strojovom jazyku sú tvorené radom binárnych vzorov. (Napr. 110110) Predstavuje jednoduché operácie, ktoré by mal vykonávať počítač. Programy v strojovom jazyku sú spustiteľné, aby ich bolo možné spustiť priamo.

KÓD OBJEKTU

Pri kompilácii zdrojového kódu je strojový kód generovaný pre rôzne procesory, ako sú Intel, AMD, ARM iný. tAby bol kód prenosný, zdrojový kód sa najskôr prevedie na kód objektu. Je to sprostredkovací kód (podobný strojovému kódu), ktorému žiadny procesor nebude rozumieť. Za behu sa objektový kód prevedie na strojový kód základnej platformy.

Java je kompilovaná aj interpretovaná.

Na využitie relatívnych výhod prekladačov sú tlmočníci kompilovaní a interpretovaní niektorých programovacích jazykov, ako je Java. Samotný kód Java je skompilovaný do Objektového kódu. Za behu JVM interpretuje kód objektu do strojového kódu cieľového počítača.