Kiedy dowiedziałem się o programowaniu, gdzieś w drugiej połowie ubiegłego wieku, dowiedziałem się, że wszystko musi zostać zamienione na kod maszynowy. Języki skryptów decydowałyby o tym, który kod wywoływać w oparciu o skryptowy kod. Skompilowany kod zostanie najpierw skompilowany do kodu p, który oznacza wstępnie skompilowany kod, który musi być połączony z innym skompilowanym kodem w celu utworzenia pełnej aplikacji. Wcześniej podobał mi się Turbo Pascal, po prostu dlatego, że Turbo Pascal został skompilowany bezpośrednio do kodu machione i nie używał pośredniego p-kodu pośredniego. Oznacza to, że do Turbo Pascal 4.0, który stworzył *. Tpu skompilowane jednostki. Większość innych kompilatorów będzie zamiast tego kompilować do formatu .obj.
Po utworzeniu Java, coś stosunkowo nowego zaczęło być popularne. Zasadniczo kompilator Java kompiluje kod do jakiegoś binarnego pliku skryptu. Skrypt ten można następnie zinterpretować, chociaż wkrótce ten mechanizm również się zmienił.
W dzisiejszych czasach tłumacze prawie wymarli. Większość języków skryptowych zostanie najpierw skompilowana do kodu maszynowego, kod maszynowy jest następnie przechowywany w niektórych pamięciach podręcznych, a zatem może być wykonywany naprawdę szybko, bez konieczności ponownego interpretowania powtarzających się instrukcji. Działa to dobrze dla skryptów tekstowych i binarnych. PHP byłoby przykładem skryptu tekstowego. Java i .NET są skryptami binarnymi, ponieważ zazwyczaj kompilujesz kod do tego formatu skryptu binarnego. (Będą to inaczej, ale wydaje mi się, że binarne skrypty brzmią lepiej.)
Zasadniczo chodzi o to, aby przekonwertować kod na kod maszynowy, wykorzystując wszelkie dostępne środki. Było wiele sposobów na zrobienie tego i jest to trochę skomplikowane, aby wszystko było jasne.
Pamiętam też czas, kiedy mogłem napisać aplikację C++, w której instrukcje SQL byłyby zlokalizowane wewnątrz samego kodu. Było to bardzo praktyczne, ale wymagało preprocesora, który najpierw przeanalizowałby instrukcje SQL z kodu, aby przekonwertować to na inne instrukcje C++ i zastępując instrukcje SQL bardziej złożonymi poleceniami C++. Potem cała kompilacja zostanie skompilowana do p-kodu. Następnie musisz połączyć go z dodatkowymi bibliotekami SQL i wreszcie masz plik wykonywalny.
Ostateczne pytanie dotyczące zasobów kompilatora na stronie SO: http: // stackoverflow.com/questions/1669/learning-to-write-a-compiler Istnieje kilka sugerowanych zasobów, które wymagają prostego podejścia: jeśli potrafisz programować, jesteś gotowy na naukę metod kompilatora. Nie bój się. Lubię tutorial Crenshaw. – dmckee
^To jest doskonała lista zasobów. Dzięki. –