close

Tlumočník (IT)

Přejít na navigaci Přejít na hledání

Interpret v informatice a programování je program schopný spouštět další programy počínaje přímo z příslušného zdrojového kódu napsaného v jazyce na vysoké úrovni , aniž by jej předtím kompiloval ( objektový kód ), tj. vykonával instrukce v použitém jazyce. tím, že je čas od času překládá do instrukcí strojového jazyka procesoru .

Popis

Na rozdíl od tlumočníka kompilátor neprovádí program, který obdrží jako vstup, ale přeloží jej do strojového jazyka (uloží objektový kód do souboru připraveného k přímému spuštění procesorem ) . Pro jakýkoli programovací jazyk můžete napsat interpret i kompilátor, proto jsou výrazy interpretovaný jazyk a kompilovaný jazyk , ačkoli jsou běžné, nevhodné, protože se jedná o koncepty interpretace a kompilace týkající se implementace jazyka a nikoli jazyka samotného.

Skriptovací stroj

"Skriptovací stroj" je stroj, který interpretuje seznamy příkazů, nazývané skripty , formulované se specifickou syntaxí, nazývanou skriptovací jazyk . Obvykle najdeme skriptovací engine , kde potřebujeme poskytnout velkou flexibilitu pro konkrétní aspekty, bez nadměrných požadavků na rychlost. Jednoduchost a bezprostřednost jsou proto základními požadavky. To staví skriptovací stroje na vysokou úroveň abstrakce .

Klady a zápory

Interpretovaný přístup implikuje nižší efektivitu za běhu ; běžící interpretovaný program vyžaduje více paměti a je méně rychlý kvůli režii , kterou zavádí samotný interpret. Během provádění musí interpret ve skutečnosti analyzovat instrukce počínaje syntaktickou úrovní , identifikovat akce , které mají být provedeny (případně transformovat symbolická jména proměnných zahrnutých v odpovídajících adresách paměti ) a provést je; zatímco instrukce zkompilovaného kódu, již ve strojovém jazyce, jsou načteny a okamžitě provedeny procesorem .

Na druhou stranu, interpretace programu může být rychlejší než cyklus kompilace/spouštění. Tento rozdíl může být výhodou během vývoje, zejména pokud se to provádí pomocí technik rychlého prototypování nebo během ladění . Většina interpretů navíc umožňuje uživateli jednat se spuštěným programem jeho pozastavením, kontrolou nebo úpravou obsahu jeho proměnných atd., a to způsobem, který je často flexibilnější a výkonnější, než čeho lze dosáhnout u kompilovaného kódu. debugger . _

Hybridní přístupy

Místo toho existuje mnoho hybridních přístupů mezi plně interpretovanými a plně kompilovanými jazyky. Některé verze Lisp umožňují oba přístupy a dokonce umožňují provádění částečně interpretovaných a částečně zkompilovaných programů, takže například nový podprogram může být testován v interpretované podobě a po dokončení ladění může být zkompilován, aby se zlepšil jeho výkon. výkon.

Mnoho uživatelských agentů přímo nespouští zdrojový kód, ale předem jej převádí do kompaktnější interní podoby, například v abstraktním parse stromu . Ještě odlišný je přístup Emacs Lisp a Java , ve kterém se používá kompilátor, který transformuje zdrojový kód do meziformátu zvaného (pro oba jazyky) bytecode , docela blízký strojovému jazyku (a proto s mírnými náklady na interpretaci), ale prováděné tlumočníkem a nikoli přímo procesorem (a tedy přenosné ).

Technika, která v posledních letech vzbudila značný zájem (a je aplikována většinou současných implementací Javy a jazyků rodiny Microsoft .NET ), se nazývá „just in time“ neboli kompilace JIT. Tuto techniku ​​lze považovat za optimalizaci interpretace, při které interpret kompiluje během provádění úryvky kódu, které se spouštějí nejčastěji, aby se snížily náklady na jejich následné spouštění.

Související položky

Externí odkazy