Zadaje się tutaj wiele pytań na temat interpretowanych i skompilowanych narzędzi językowych. Zastanawiam się, czy to rozróżnienie rzeczywiście ma jakiś sens. (W rzeczywistości pytania zwykle dotyczą języków, ale naprawdę myślą o najpopularniejszych implementacjach tych języków).
Obecnie prawie żadna implementacja nie jest ściśle interpretowana. tzn. prawie nikt nie analizuje i nie uruchamia kodu po jednej linii na raz. Ponadto implementacja, która kompiluje się do kodu maszynowego, również staje się coraz mniej powszechna. Coraz częściej kompilatory są ukierunkowane na jakąś maszynę wirtualną.
W rzeczywistości większość wdrożeń jest zbieżna w oparciu o tę samą podstawową strategię. Kompilator wytwarza kod bajtowy, który jest interpretowany lub kompilowany do kodu natywnego za pomocą JIT. To naprawdę połączenie tradycyjnych pomysłów kompilacji i interpretacji.
Dlatego pytam: czy istnieje obecnie użyteczne rozróżnienie między interpretowanymi implementacjami a skompilowanymi implementacjami?
P-code
zostały wprowadzone w 1966 roku. IBM Aix istnieje od 1986 roku.