Pok-13-wyk-Slajd3
Języki pośrednie - wprowadzenie
W prezentowanym modelu kompilatora typu analiza-synteza front-end kompilatora tłumaczy kod źródłowy programu na reprezentację pośrednią, na podstawie której back-end kompilatora generuje kod wynikowy.
Program źródłowy można oczywiście tłumaczyć od razu na kod wynikowy (i czasami tak się robi), ale wykorzystanie języka pośredniego ma dwie istotne zalety:
- łatwiejsza jest zmiana maszyny docelowej – wystarczy wymienić tylko back-end kompilatora
- na poziomie kodu pośredniego można stosować niezależny od maszyny docelowej optymalizator kodu.
Koncepcja języka pośredniego powstała w drugiej połowie lat 50-tych. Prace były prowadzone niezależnie przez wiele ośrodków, ale najbardziej kompletną postać miał opracowany w firmie IBM język UNCOL (UNiversal Computer Oriented Language). Pierwsze informacje na temat języka ukazały się w 1958, ale trudno jednoznacznie podać datę jego powstania, ponieważ nigdy nie został do końca zestandaryzowany ani zaimplementowany.
Wprowadzenie języka pośredniego ma fundamentalne znaczenie ekonomiczne i logistyczne. Zamiast rozwijać i utrzymywać n*k kompletnych kompilatorów, wystarczy utrzymywać jeden front-end dla każdego języka źródłowego i jeden back-end dla każdej maszyny docelowej.