Język skompilowany
Programy skompilowane do natywnego kodu w czasie kompilacji są zwykle szybsze niż te przetłumaczone w czasie wykonywania ze względu na narzut procesu tłumaczenia. Nowsze technologie, takie jak kompilacja just-in-time i ogólne ulepszenia w procesie tłumaczenia zaczynają jednak zmniejszać tę różnicę. Mieszane rozwiązania wykorzystujące kod bajtowy mają tendencję do pośredniej wydajności.
Języki programowania niskiego poziomu są zazwyczaj kompilowane, zwłaszcza gdy głównym problemem jest wydajność, a nie wsparcie międzyplatformowe. Dla takich języków istnieje więcej relacji jeden do jednego między zaprogramowanym kodem a operacjami sprzętowymi wykonywanymi przez kod maszynowy, co ułatwia programistom kontrolowanie użycia centralnej jednostki obliczeniowej (CPU) i pamięci w najdrobniejszych szczegółach.
Przy pewnym wysiłku zawsze jest możliwe napisanie kompilatorów nawet dla tradycyjnie interpretowanych języków. Na przykład Common lisp może być skompilowany do kodu bajtowego Javy (następnie interpretowany przez maszynę wirtualną Javy), kodu C (następnie kompilowany do natywnego kodu maszynowego) lub bezpośrednio do kodu natywnego. Języki programowania, które obsługują wiele celów kompilacji, dają programistom większą kontrolę nad wyborem szybkości wykonania lub kompatybilności międzyplatformowej.