Компилятор переводит код, написанный на одном языке, на другой язык, не меняя смысла программы. Также ожидается, что компилятор должен сделать целевой код эффективным и оптимизированным с точки зрения времени и пространства.
Принципы компиляции обеспечивают глубокое представление о процессе перевода и оптимизации. Конструкция компилятора охватывает базовый механизм перевода, а также обнаружение и исправление ошибок. Он включает в себя лексический, синтаксический и семантический анализ в качестве внешнего интерфейса, а также генерацию и оптимизацию кода в качестве внутреннего.