Principy překladačů Interpretované jazyky Jakub Yaghob
Co to je? Zdrojový jazyk se nepřekládá do kódu skutečného procesoru, ale do kódu nějakého abstraktního stroje Interpret přeložený do kódu skutečného stroje simuluje zvolený abstraktní stroj
Proč? Není prostor pro překladač 8-bitové počítače a Basic Přenositelnost Stejný abstraktní stroj může běžet na různých OS i různých architekturách CPU AS/400, Java Bezpečnost Větší kontrola nad vykonávanými instrukcemi
Problémy Problém s rychlostí Dá se řešit pomocí JIT (Just-In-Time compilation) Pokud interpret narazí na kód abstraktního stroje, který ještě není přeložen, okamžitě ho přeloží na kód cílového stroje a uloží si ho vedle do své cache Problémy s přenositelností Nevhodné změny v chování abstraktního stroje mohou přivodit problémy s přenositelností Java Jak zvolit abstraktní stroj Aby pokryl chování všech zdrojových jazyků.NET
Dynamická paměť Pokud podporována, pak výhradně s garbage collectorem Ukazatele jsou pod kontrolou Snadnější programování Rychlejší práce s dynamickou pamětí Program obvykle nepotřebuje tolik paměti, aby GC vůbec musel zasahovat, takže se pouze souvisle alokuje Simulátor abstraktního ale obvykle zabere více paměti, než by musel