Tlumočník (IT)
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
- ( EN ) Interpreter , v Encyclopedia Britannica , Encyclopædia Britannica, Inc.