Pred Jáva a objavili sa programovacie jazyky C #, počítačové programy boli iba skompilovaný alebo vykladané. Jazyky ako assembler, C, C ++, Fortran, Pascal boli takmer vždy zostavené do strojového kódu. Jazyky ako Basic, VbScript a JavaScript sa obvykle interpretovali.
Aký je teda rozdiel medzi kompilovaným a interpretovaným programom?
kompilácia
Ak chcete napísať program, postupujte takto:
- Upravte program
- Zkompilujte program do súborov strojového kódu.
- Prepojte súbory strojového kódu do spustiteľného programu (známeho tiež ako exe).
- Ladenie alebo spustenie programu
S niektorými jazykmi ako Turbo Pascal a Delphi sa kombinujú kroky 2 a 3.
Súbory strojového kódu sú samostatné moduly strojového kódu, ktoré si vyžadujú zostavenie konečného programu. Dôvodom samostatnosti súborov strojového kódu je účinnosť; kompilátory musia prekompilovať zdrojový kód ktoré sa zmenili. Súbory strojového kódu z nezmenených modulov sa znova používajú. Toto je známe ako vytváranie aplikácie. Ak chcete prekompilovať a znova zostaviť všetok zdrojový kód, potom sa nazýva Build.
Prepojenie je technicky komplikovaný proces, pri ktorom sú všetky volania funkcií medzi rôznymi modulmi spojené a miesta pamäte sú pridelené premenné a celý kód sa uloží do pamäte a potom sa zapíše na disk ako kompletný program. Toto je často pomalší krok ako kompilácia, pretože všetky súbory strojového kódu sa musia načítať do pamäte a navzájom prepojiť.
tlmočenie
Kroky na spustenie programu prostredníctvom tlmočníka sú
- Upravte program
- Ladenie alebo spustenie programu
Toto je oveľa rýchlejší proces a pomáha začínajúcim programátorom upravovať a testovať ich kód rýchlejšie ako pomocou kompilátora. Nevýhodou je, že interpretované programy bežia omnoho pomalšie ako kompilované programy. Až 5-10 krát pomalšie, ako každý riadok kódu musí byť znovu prečítaný, potom znovu spracovaný.
Zadajte Java a C #
Oba tieto jazyky sú skompilované. Vytvárajú prechodný kód, ktorý je optimalizovaný pre interpretáciu. Tento sprostredkujúci jazyk je nezávislý od základného hardvéru a uľahčuje to portovanie programy napísané buď iným procesorom, pokiaľ na to bol napísaný tlmočník hardware.
Pri kompilácii Java vytvára bajtkód, ktorý sa za behu interpretuje pomocou Java Virtual Machine (JVM). Mnoho JVM používa kompilátor Just-In-Time, ktorý prevádza bytecode na natívny strojový kód a potom tento kód spustí, aby sa zvýšila rýchlosť interpretácie. Zdrojový kód Java sa v skutočnosti zostavuje v dvojstupňovom procese.
C # je kompilovaný do Common Intermediate Language (CIL), ktorý bol predtým známy ako Microsoft Intermediate Language MSIL. Toto je spustené pomocou Common Language Runtime (CLR), súčasti .NET framework prostredia, ktoré poskytuje podporné služby, ako sú zber odpadu a kompilácia Just-In-Time.
Java aj C # používajú techniky zrýchlenia, takže efektívna rýchlosť je takmer taká rýchla ako čistý kompilovaný jazyk. Ak aplikácia trávi veľa času vstupom a výstupom, napríklad čítaním diskových súborov alebo spustením databázy dotazy, potom je rozdiel rýchlosti sotva viditeľný.
Čo to pre mňa znamená?
Pokiaľ nemáte veľmi špecifickú potrebu rýchlosti a musíte zvýšiť rýchlosť snímok o niekoľko snímok za sekundu, môžete zabudnúť na rýchlosť. Ktorýkoľvek z C, C ++ alebo C # bude poskytovať dostatočnú rýchlosť pre hry, kompilátory a operačné systémy.