Interpreter czym właściwie jest

Aby przystąpić do zrozumienia tego czym tak właściwie jest interpreter należy zastanowić się nad jego definicja. To tak właściwie krótki program komputerowy, który cały czas wykonuję analizę kodu źródłowego programu a wszystkie przeanalizowane fragmenty przetwarza w określonym czasie. Jest to na pewno bardzo krótko zrealizowana definicja tego terminu.

Czy interpreter cały czas analizuję i realizuję to niż w procesie kompilacji. Oczywiście, że nie. Interpreter w żaden sposób nie odpowiada za wejściowy program (chodzi tutaj w dużej mierze o cały kod źródłowy) ale natomiast robi tłumaczenie go do stosowalnego kodu maszynowego lub drugą opcją jest kod pośredni. To właśnie on jest w dalszym celu zapisywany do pliku do tego aby później go wykonywać. Czy działanie tego programu jest sprawniejsze i bardziej dynamiczne. Niestety, nie. Interpreter w zasadzie spowalnia wykonywanie programu. Jeszcze bardzo dużym minusem tego jest to, że zabiera większą liczbę zasobów systemowych w porównaniu z wykonanym skompilowanym kodem. Jednak w wielu przypadkach może zajmować krótszy czas aniżeli kompilacja i jego uruchomienie. Czy taki aspekt jest aż tak istotny. Oczywiście, że tak. W tym przypadku interpreter może odgrywać kluczową rolę przy tworzeniu a także testowaniu kodu. W momencie cyklu edycja-interpreter-debugowanie występować mogą co raz częściej pojawiające się krótsze chwile w przypadku cyklu edycja-kompilacja-uruchomienie a na końcu debugowanie.

W jakim celu pojawia się cała interpretacja programu czy jest ona wolniejsza. Niestety tak. Uruchamianie skompilowanego spowalnia ją z tego powodu, że interpreter analizuję na samym początku wszystkie wyrażania a następnie właśnie na tej podstawie może przeprowadzać odpowiednie akcje. Z tego powodu kod skompilowany tworzy jedynie odpowiednie akcję. We wszystkich inkrementacjach kodu, które są w 100% interpreterami powtórne wykonywanie tego samego fragmentu kodu zależy cały czas od wielokrotnej interpretacji tego samego tekstu. Właśnie z tego powodu cała analiza to większy koszt interpretacji.

W jaki sposób odbywa się dostęp do zmiennych. Polega tutaj na czymś zupełnie innym. Z tego powodu jest on o wiele wolniejszy w porównaniu do całego interpretera. Dlaczego tak się dzieję. Odwzorowanie identyfikatorów na obszar w pamięci operacyjnej powinien cały czas zostać wykonywany w momencie uruchomienia albo działania, nigdy w przypadku kompilacji. Z tego przyziemnego powodu interpreter może tworzyć dane dodatkowe (bardzo często są to adresy zmiennych), które mogą przyśpieszać wykonywanie całego programu.

Po tym wszystkim można dojść do prostego wniosku, że tak właściwie kompilator to jedynie program, który z języka rozumianym przez każdego z nas tworzy program jedynie rozumiany przez komputer. Interpreter działa na zupełnie innej zasadzie. To program, który działa bezpośrednio z kodu rozumianego przez każdego z nas. W dużym uproszczeniu to tłumaczenie kodu źródłowego na komendy procesora.

Dodaj komentarz