Wczoraj wytłumaczyłem czym jest kompilator (mimo faktu, iż niejedna strona internetowa o nauce IT mogła to opisać już dekady temu), więc dzisiaj porozmawiamy sobie o tym, jak działa interpreter, druga metoda "odpalania" napisanych programów.
Tweet |
INTERPRETER TEŻ CI URUCHOMI PROGRAM...TYLKO NA SWÓJ SPOSÓB
Pierwsze interpretery zaczęły wychodzić także w latach .50 XX wieku, tak jak kompilatory. Rodzina języków Lisp (1958) uchodzi powszechnie za pioniera języków interpretowanych. A za twórcę pierwszego interpretera uważa się niejakiego Steve'a Russella, który we współpracy z Johnem McCarthym, zaimplementował program wykonujący instrukcje bezpośrednio na podanym kodzie źródłowym.
Interpreter to także program pozwalający na uruchomienie innego programu, tylko funkcjonuje inaczej niż kompilator. Otóż on nie kompiluje kodu i tym samym nie wytwarza żadnych plików wynikowych, tylko operuje bezpośrednio na podanym kodzie źródłowym, linijka po linijce. Po drugie, nie sprawdza błędów przed uruchomieniem, tylko "parsuje" kod "na żywo", więc jeśli gdzieś w kodzie czai się błąd, to wykryje go dopiero w momencie próby wykonania instrukcji z tym błędem!!! Z powodu jego funkcjonowania "live", nie jest w stanie zapewnić takiej szybkości działania jak kompilator.
Musicie wiedzieć, że wirtualna maszyna (Javy i C#) to także interpreter, lecz korzysta z kodu bajtowego, który uprzednio musi zostać skompilowany. To ma na celu częściowe przyspieszenie wykonywania instrukcji m.in. poprzez technikę "just-in-time", czyli tłumaczenie części kodu źródłowego w trakcie działania programu, w momencie na jego zapotrzebowanie np. po kliknięciu przycisku.
Język programowania, którego kod jest poddawany interpretacji nazywamy językiem interpretowanym. Dzisiejsze języki interpretowane to między innymi:
- Lua
- Perl
- Ruby
- Python
- JavaScript
- TypeScript
Aha, jeszcze jedno! Interpreter działa na skryptach, podczas gdy kompilator operuje na plikach źródłowych. Orientujcie się mordy co do właściwej terminologii! Klikajcie natychmiast tutaj, jeśli interesują Was szczegóły działania kompilatora!
Mamy z głowy następny omówiony temat! To, że ja traktuję te dwa hasła (interpreter i kompilator) jak elementarną wiedzę, to nie znaczy że tak musi być.