Kompilator to narzędzie, które tłumaczy kod źródłowy napisany w danym języku (np. C/C++) na postać zrozumiałą dla komputera, czyli na kod maszynowy, a w praktycznym procesie budowania aplikacji prowadzi do uzyskania programu wykonywalnego (artefaktu binarnego). W typowym łańcuchu narzędzi kompilacja może obejmować także generowanie plików obiektowych oraz uruchomienie linkowania, aby powstał finalny plik wykonywalny.
Odpowiedź "emulator" jest niepoprawna, bo emulator nie tłumaczy kodu źródłowego na plik wykonywalny. Jego zadaniem jest symulowanie (naśladowanie) działania innej platformy, urządzenia lub środowiska, aby można było uruchamiać programy przeznaczone dla innego sprzętu/systemu.
Odpowiedź "interpreter" też nie pasuje do sformułowania o zamianie na program wykonywalny. Interpreter zwykle analizuje i wykonuje kod krok po kroku w czasie działania, bez wytworzenia klasycznego, samodzielnego pliku wykonywalnego jako efektu końcowego (choć istnieją rozwiązania mieszane, np. JIT).
Odpowiedź "debuger" jest błędna, ponieważ debuger służy do uruchamiania programu w trybie diagnostycznym, ustawiania pułapek, podglądu zmiennych i stosu wywołań oraz lokalizowania błędów. Nie jest narzędziem tłumaczącym kod źródłowy na binaria.
Na egzaminie warto pamiętać prostą mapę ról: kompilator "tworzy binaria", interpreter "wykonuje kod", emulator "udaje środowisko", debuger "pomaga znaleźć błąd".