Etapy kompilacji
• Faza wstępna - odczyt i analiza kodu na podstawie reguł języka, tworzenie reprezentacji pośredniej kodu źródłowego w postać grafu lub drzewa zależności.
• Analiza leksykalna - rozdzielenie kodu na elementarne jednostki języka programowania zwane tokenami.
• Analiza składniowa - dopasowanie tokenów do gramatyki języka (sprawdzenie, czy kod źródłowy był poprawny składniowo)
• Analiza semantyczna - określenie znaczenia poszczególnych tokenów. Przykładem może być sprawdzanie, czy nie występuje niezgodność typów.
• Optymalizacja - reprezentacja pośrednia jest upraszczana tak, aby program otrzymany na jej podstawie charakteryzował się pewnymi cechami (np. większą wydajnością lub mniejszą objętością).
• Generacja kodu na podstawie reprezentacji pośredniej generowany jest kod wynikowy.