Co je to 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á kód čitelný člověkem do jazyka, kterému počítačový procesor rozumí (binární 1 a 0 bitů). Počítač zpracovává strojový kód k provedení odpovídajících úkolů.
kompilátor by měl splňovat pravidlo syntaxe toho programovacího jazyka, ve kterém je napsá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. V opačném případě se nebude kompilovat.
co je interpret?
interpret je počítačový program, který zakrý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 vykonávají stejnou práci, která převádí programovací jazyk vyšší úrovně na strojový kód. Kompilátor však převede kód na strojový kód (vytvoří exe) před spuštěním programu. Tlumočníci převádějí kód na strojový kód při spuštění programu.
hlavní ROZDÍL
- Kompilátor převádí kód napsaný v high-level programovacího jazyka do strojového kódu, najednou, než se program spustí, vzhledem k tomu, že Tlumočníka houští každé vysoké úrovni programové prohlášení, jeden po druhém, do strojového kódu, během chodu programu.
- kompilovaný kód běží rychleji, zatímco interpretovaný kód běží pomaleji.
- kompilátor zobrazuje všechny chyby po kompilaci, na druhé straně interpret zobrazuje chyby každého řádku jeden po druhém.
- kompilátor je založen na překladu linking-loading modelu, zatímco interpret je založen na interpretační metodě.
- kompilátor bere celý program, zatímco interpret bere jeden řádek kódu.
Rozdíl Mezi Kompilátorem a Interpretem
Základě rozdílu | Kompilátor | Interpret |
---|---|---|
Programovací Kroky |
|
|
Výhoda | Programový kód je již přeložen do strojového kódu. Doba provádění kódu je tedy kratší. | tlumočníci se snadněji používají, zejména pro začátečníky. |
nevýhoda | program nelze změnit bez návratu ke zdrojovému kódu. | interpretované programy mohou běžet na počítačích, které mají odpovídající interpret. |
kód stroje | Uložte jazyk stroje jako strojový kód na disk | kód stroje neukládejte vůbec. |
čas | Zkompilovaný kód běžet rychleji | Interpretovaný kód je pomalejší |
Model | je založen na jazyce translationlinking-načítání modelu. | 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. | negenerují výstupní program. Takže hodnotí zdrojový program pokaždé během provádění. |
provedení | spuštění programu je oddělené od kompilace. Provádí se až po kompilaci celého výstupního programu. | provádění programu je součástíinterpretační proces, takže se provádí řádek po řádku. |
požadavek na paměť | cílový program spustínezávisle a nevyžadují kompilátor v paměti. | interpret existuje v paměti během interpretace. |
se nejlépe hodí pro | ohraničený na konkrétní cílový stroj a nelze jej přenést. C A C++ jsou nejoblíbeně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, všechny vyčerpávající analýzy se provádí, kompiluje trvat relativně větší čas kompilovat i malý kód, který nemusí být spuštěn 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, vykonávají mnoho optimalizace, které dělají kód běžet rychleji | Tlumočníky viz kód řádek po řádku, a tak optimalizace není tak robustní jako kompilátory |
Dynamic Typing | Obtížné realizovat, jako kompilátory nelze předpovědět, co se stane na přelomu času. | interpretované jazyky podporují dynamické psaní |
použití | je nejvhodnější pro výrobní 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 nelze spustit program bez opravy chyb | interpret přečte jeden příkaz a zobrazí chybu, pokud existuje. Chcete-li interpretovat další řádek, musíte chybu opravit. |
vstup | trvá celý program | trvá jeden řádek kódu. |
výstup | Compliers generuje meziprodukt machnie kód. | interpret nikdy nevytváří žádný přechodný machnie kód. |
chyby | Zobrazit všechny chyby po kompilaci, všechny současně. | zobrazuje všechny chyby každého řádku jeden po druhém. |
související programovací jazyky | C, C++, C#, Scala, Java všechny používají complier. | PHP, Perl, Ruby používá interpret. |
Úloha Kompilátoru
- Compliers čte zdrojový kód, výstupy spustitelný kód
- Překládá software napsaný ve vyšší úrovni jazyka do instrukcí, které počítač může pochopit. Převádí text, který programátor píše do formátu CPU může pochopit.
- proces kompilace je poměrně komplikovaný. Tráví spoustu času analýzou a zpracováním programu.
- spustitelný výsledek je nějaká forma strojově specifického binárního kódu.
Role interpretu
- interpret převádí zdrojový kód řádek po řádku během běhu.
- interpretovat zcela překládá program napsaný v jazyce na vysoké úrovni do jazyka na úrovni stroje.
- interpret umožňuje vyhodnocení a modifikaci programu během jeho provádění.
- Relativně méně času stráveného na analýze a zpracování programu
- spuštění Programu je relativně pomalý ve srovnání s compiler
VYSOKÉ ÚROVNI JAZYKY
High-level jazycích, jako je C, C++, JAVA, atd., jsou velmi blízko k angličtině. To usnadňuje proces programování. Před provedením však musí být přeložen do strojového jazyka. Tento překladový proces je prováděn buď kompilátorem nebo tlumočníkem. Také známý jako zdrojový kód.
strojový kód
jazyky strojů jsou velmi blízké hardwaru. Každý počítač má svůj strojový jazyk. Programy strojového jazyka jsou tvořeny řadou binárních vzorů. (Ego. 110110) představuje jednoduché operace, které by měl provádět počítač. Programy strojového jazyka jsou spustitelné, takže je lze spustit přímo.
objektový kód
při kompilaci zdrojového kódu je strojový kód generovaný pro různé procesory, jako jsou Intel, AMD, ARM, odlišný. taby byl kód přenosný, zdrojový kód je nejprve převeden na objektový kód. Jedná se o zprostředkovatelský kód (podobný strojovému kódu), kterému žádný procesor nerozumí. V době běhu je objektový kód převeden na strojový kód základní platformy.
Java je kompilována i interpretována.
Chcete-li využít relativní výhody kompilátorů jsou tlumočníci některé programovací jazyk, jako je Java jsou kompilovány a interpretovány. Samotný Java kód je kompilován do objektového kódu. V době běhu JVM interpretuje objektový kód do strojového kódu cílového počítače.