Co je kompilátor?
Kompilátor je počítačový program, který transformuje kód napsaný v programovacím jazyce na vysoké úrovni do strojového kódu. Jedná se o program, který překládá lidsky čitelný kód do jazyka, kterému počítačový procesor rozumí (binární 1 a 0 bitů). Počítač zpracovává strojový kód k provádění příslušných úkolů.
Kompilátor by měl vyhovovat pravidlu syntaxe daného programovacího jazyka, ve kterém je zapsán. Kompilátor je však pouze program a nemůže opravit chyby nalezené v tomto programu. Pokud tedy uděláte chybu, musíte provést změny v syntaxi vašeho programu. Jinak se nebude kompilovat.
Co je tlumočník?
Tlumočník je počítačový program, který pokrývá každý programový příkaz na vysoké úrovni do strojového kódu. To zahrnuje zdrojový kód, předkompilovaný kód a skripty. Kompilátor i tlumočníci dělají stejnou práci, která převádí programovací jazyk vyšší úrovně na strojový kód. Kompilátor však před spuštěním programu převede kód na strojový kód (vytvoří exe). Tlumočníci při spuštění programu převádějí kód do strojového kódu.
KLÍČOVÝ ROZDÍL
- Kompilátor transformuje kód napsaný ve vyšším programovacím jazyce do strojového kódu najednou před spuštěním programu, zatímco tlumočník pokrývá každý programový příkaz na vysoké úrovni jeden po druhém do strojového kódu během běhu programu.
- Zkompilovaný kód běží rychleji, zatímco interpretovaný kód běží pomaleji.
- Kompilátor zobrazuje všechny chyby po kompilaci, na druhé straně tlumočník zobrazuje chyby každého řádku jeden po druhém.
- Kompilátor je založen na modelu překládání a načítání, zatímco tlumočník je založen na metodě interpretace.
- Kompilátor trvá celý program, zatímco tlumočník trvá jeden řádek kódu.
Rozdíl mezi překladačem a tlumočníkem
Základ rozdílu | Překladač | Tlumočník |
---|---|---|
Programovací kroky |
|
|
Výhoda | Programový kód je již přeložen do strojového kódu. Proto je doba spuštění kódu kratší. | Tlumočníci se snáze používají, zejména pro začátečníky. |
Nevýhoda | Program nelze změnit, aniž byste se vrátili ke zdrojovému kódu. | Interpretované programy lze spustit na počítačích, které mají odpovídající tlumočníka. |
Strojový kód | Uložte strojový jazyk jako strojový kód na disk | Neukládám strojový kód vůbec. |
Provozní doba | Zkompilovaný kód běží rychleji | Interpretovaný kód běží pomaleji |
Modelka | Je založen na modelu překladu jazykových překladů a načítání. | Je založen na interpretační metodě. |
Generování programu | Generuje výstupní program (ve formě exe), který lze spustit nezávisle na původním programu. | Negenerujte výstupní program. Vyhodnocují tedy zdrojový program pokaždé během provádění. |
Provedení | Provádění programu je oddělené od kompilace. Provedlo se to až po kompilaci celého výstupního programu. | Provádění programu je součástí interpretačního procesu, proto se provádí řádek po řádku. |
Požadavek na paměť | Cílový program se provádí nezávisle a nevyžadují kompilátor v paměti. | Tlumočník existuje v paměti během tlumočení. |
Nejvhodnější pro | Ohraničeno na konkrétní cílový počítač a nelze jej přenést. C a C ++ jsou nejpopulárnější programovací jazyk, který používá kompilační model. | Pro webová prostředí, kde jsou důležité doby načítání. Vzhledem k tomu, že je provedena celá vyčerpávající analýza, kompilace trvá relativně déle, než se kompiluje i malý kód, který se nemusí spustit vícekrát. V takových případech jsou tlumočníci lepší. |
Optimalizace kódu | Kompilátor vidí celý kód předem. Proto provádějí spoustu optimalizací, díky nimž běží kód rychleji | Tlumočníci vidí kód po řádku, a proto optimalizace nejsou tak robustní jako kompilátory |
Dynamické psaní | Je obtížné implementovat, protože kompilátoři nemohou předvídat, co se stane v době obratu. | Interpretované jazyky podporují dynamické psaní |
Používání | Je nejvhodnější pro produkční prostředí | Je nejvhodnější pro program a vývojové prostředí. |
Provedení chyby | Kompilátor zobrazuje všechny chyby a varování v době kompilace. Proto nemůžete spustit program bez opravy chyb | Tlumočník načte jeden příkaz a zobrazí případnou chybu. Chcete-li interpretovat další řádek, musíte chybu opravit. |
Vstup | Trvá to celý program | Trvá to jediný řádek kódu. |
Výstup | Compliers generuje přechodný kód machnie. | Tlumočník nikdy nevygeneruje žádný přechodný kód machnie. |
Chyby | Zobrazit všechny chyby po kompilaci, všechny najednou. | Zobrazí všechny chyby každého řádku jeden po druhém. |
Příslušné programovací jazyky | C, C ++, C #, Scala, Java všichni používají complier. | PHP, Perl, Ruby používá tlumočníka. |
Role překladače
- Komplikátoři načtou zdrojový kód a odešlou spustitelný kód
- Překládá software napsaný v jazyce vyšší úrovně do pokynů, kterým počítač rozumí. Převádí text, který programátor píše, do formátu, kterému procesor porozumí.
- Proces kompilace je poměrně komplikovaný. Tráví spoustu času analýzou a zpracováním programu.
- Spustitelným výsledkem je nějaká forma binárního kódu specifického pro stroj.
Role tlumočníka
- Tlumočník převádí zdrojový kód řádek po řádku během RUN Time.
- Interpret kompletně překládá program napsaný v jazyce vysoké úrovně do jazyka na úrovni stroje.
- Tlumočník umožňuje hodnocení a úpravy programu během jeho provádění.
- Relativně méně času stráveného analýzou a zpracováním programu
- Provádění programu je ve srovnání s kompilátorem relativně pomalé
JAZYKY NA VYSOKÉ ÚROVNI
Jazyky na vysoké úrovni, například C, C ++, JAVA atd., Jsou velmi blízké angličtině. Usnadňuje proces programování. Před spuštěním však musí být přeloženy do jazyka stroje. Tento proces překladu provádí buď překladač, nebo překladač. Také známý jako zdrojový kód.
KÓD STROJE
Strojové jazyky jsou velmi blízké hardwaru. Každý počítač má svůj strojový jazyk. Programy v strojovém jazyce jsou tvořeny řadou binárních vzorů. (Např. 110110) Představuje jednoduché operace, které by měl počítač provádět. Programy v strojovém jazyce jsou spustitelné, takže je lze spustit přímo.
KÓD OBJEKTU
Při kompilaci zdrojového kódu se strojový kód generovaný pro různé procesory, jako je Intel, AMD, liší ARM. Chcete-li, aby byl kód přenosný, je zdrojový kód nejprve převeden na objektový kód. Jedná se o zprostředkující kód (podobný strojovému kódu), kterému žádný procesor nebude rozumět. Za běhu se kód objektu převede na strojový kód podkladové platformy.
Java je kompilován a interpretován.
Aby bylo možné využít relativních výhod překladačů, jsou tlumočníky kompilovány a interpretovány některé programovací jazyky, jako je Java. Samotný kód Java je kompilován do Object Code. Za běhu interpretuje JVM kód objektu do strojového kódu cílového počítače.