Dark Mode

Przejdz do zawartosci

Interpreter (program komputerowy)

Z Wikipedii, wolnej encyklopedii

Interpreter - program komputerowy wykonujacy inne programy. Jest kluczowym elementem znacznej czesci implementacji jezykow skryptowych[1][2] oraz jezykow kompilowanych do kodu bajtowego[1][3][4][5].

Wydajnosc

[edytuj | edytuj kod]
Ta sekcja od 2020-04 moze zawierac nierzetelne zrodla.
Informacje oparte na nierzetelnych zrodlach moga zostac usuniete. Zweryfikuj haslo i dodaj przypisy do wiarygodnych, najlepiej recenzowanych publikacji.
Dokladniejsze informacje o tym, co nalezy poprawic, byc moze znajduja sie w dyskusji tej sekcji.
Po wyeliminowaniu niedoskonalosci nalezy usunac szablon {{Dopracowac}} z tej sekcji.

Interpreter analizuje kod zrodlowy programu, a przeanalizowane fragmenty wykonuje. Realizowane jest to w inny sposob niz w procesie kompilacji, podczas ktorego nie wykonuje sie wejsciowego programu (kodu zrodlowego), lecz tlumaczy go do wykonywalnego kodu maszynowego lub kodu posredniego, ktory jest nastepnie zapisywany do pliku w celu pozniejszego wykonania.

Wykonanie programu za pomoca interpretera jest wolniejsze, a do tego zajmuje wiecej zasobow systemowych niz wykonanie kodu skompilowanego, lecz moze zajac relatywnie mniej czasu niz kompilacja i uruchomienie. Jest to zwlaszcza wazne przy tworzeniu i testowaniu kodu, kiedy cykl edycja-interpretacja-debugowanie moze czesto byc znacznie krotszy niz cykl edycja-kompilacja-uruchomienie-debugowanie.

Interpretacja kodu programu jest wolniejsza od uruchamiania skompilowanego kodu, poniewaz interpreter musi najpierw przeanalizowac kazde wyrazenie i dopiero na tej podstawie wykonac odpowiednie akcje, a kod skompilowany wykonuje wylacznie akcje. W implementacjach bedacych w pelni interpreterami wielokrotne wykonanie tego samego fragmentu kodu wymaga wielokrotnej interpretacji tego samego tekstu. Ta analiza nazywana jest ,,kosztem interpretacji". Dostep do zmiennych jest takze wolniejszy w przypadku interpretera, gdyz odwzorowanie identyfikatorow na miejsca w pamieci operacyjnej musi zostac dokonane podczas uruchomienia lub dzialania, a nie podczas kompilacji, dlatego niektore interpretery tworza dodatkowe dane (np. adresy zmiennych) przyspieszajace wykonanie programu[6].

Zobacz tez

[edytuj | edytuj kod]

Przypisy

[edytuj | edytuj kod]
  1. | 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.).
  2. | 3.7 Executing Commands, [w:] Bash Reference Manual, GNU.org [dostep 2020-04-21] (ang.), "Shell" zgodnie ze wstepem jest rownowazny "Command Line Interpreter".
  3. | Glossary [online], Python 3.8.2 documentation [dostep 2020-04-21] (ang.).
  4. | 3.3.2 - Chunks, [w:] Lua 5.3 Reference Manual, The Programming Language Lua, 26 czerwca 2018 [dostep 2020-04-21] (ang.).
  5. | Byte Compilation, [w:] Emacs Lisp, GNU.org [dostep 2020-04-21] (ang.).
  6. | interpreter [online], FOLDOC - Free On-Line Dictionary Of Computing, 30 stycznia 1995 .