Interpreter (program komputerowy)
![]() | Zobacz też: inne znaczenia słowa „interpreter”. |
Interpreter – program komputerowy wykonujący inne programy. Jest kluczowym elementem znacznej części implementacji języków skryptowych[1][2] oraz języków kompilowanych do kodu bajtowego[1][3][4][5].
Wydajność
![]() | Ta sekcja od 2020-04 może zawierać nierzetelne źródła. Informacje oparte na nierzetelnych źródłach mogą zostać usunięte. Zweryfikuj hasło i dodaj przypisy do wiarygodnych, najlepiej recenzowanych publikacji. Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tej sekcji. Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tej sekcji. |
Interpreter analizuje kod źródłowy programu, a przeanalizowane fragmenty wykonuje. Realizowane jest to w inny sposób niż w procesie kompilacji, podczas którego nie wykonuje się wejściowego programu (kodu źródłowego), lecz tłumaczy go do wykonywalnego kodu maszynowego lub kodu pośredniego, który jest następnie zapisywany do pliku w celu późniejszego wykonania.
Wykonanie programu za pomocą interpretera jest wolniejsze, a do tego zajmuje więcej zasobów systemowych niż wykonanie kodu skompilowanego, lecz może zająć relatywnie mniej czasu niż kompilacja i uruchomienie. Jest to zwłaszcza ważne przy tworzeniu i testowaniu kodu, kiedy cykl edycja-interpretacja-debugowanie może często być znacznie krótszy niż cykl edycja-kompilacja-uruchomienie-debugowanie.
Interpretacja kodu programu jest wolniejsza od uruchamiania skompilowanego kodu, ponieważ interpreter musi najpierw przeanalizować każde wyrażenie i dopiero na tej podstawie wykonać odpowiednie akcje, a kod skompilowany wykonuje wyłącznie akcje. W implementacjach będących w pełni interpreterami wielokrotne wykonanie tego samego fragmentu kodu wymaga wielokrotnej interpretacji tego samego tekstu. Ta analiza nazywana jest „kosztem interpretacji”. Dostęp do zmiennych jest także wolniejszy w przypadku interpretera, gdyż odwzorowanie identyfikatorów na miejsca w pamięci operacyjnej musi zostać dokonane podczas uruchomienia lub działania, a nie podczas kompilacji, dlatego niektóre interpretery tworzą dodatkowe dane (np. adresy zmiennych) przyspieszające wykonanie programu[6].
Zobacz też
- translator
- kompilator
- język interpretowany
Przypisy
- ↑ a b Overview, [w:] CS98SI: Introduction to JavaScript, Stanford University, Cytat: "an interpreter in the browser reads over the JavaScript code, interprets each line, and runs it. More modern browsers use a technology known as Just-In-Time (JIT) compilation, which compiles JavaScript to executable bytecode just as it is about to run." (ang.).
- ↑ 3.7 Executing Commands, [w:] Bash Reference Manual, GNU.org [dostęp 2020-04-21] (ang.), "Shell" zgodnie ze wstępem jest równoważny "Command Line Interpreter".
- ↑ Glossary [online], Python 3.8.2 documentation [dostęp 2020-04-21] (ang.).
- ↑ 3.3.2 – Chunks, [w:] Lua 5.3 Reference Manual, The Programming Language Lua, 26 czerwca 2018 [dostęp 2020-04-21] (ang.).
- ↑ Byte Compilation, [w:] Emacs Lisp, GNU.org [dostęp 2020-04-21] (ang.).
- ↑ interpreter [online], FOLDOC - Free On-Line Dictionary Of Computing, 30 stycznia 1995 .
- Britannica: technology/interpreter
- DSDE: fortolker