Чтобы программа была выполнена, нужно либо весь ее текст перевести в машинный код (это действие и выполняет программа – компилятор) и затем передать процессору на исполнение, либо сразу выполнять команды языка, переводя на машинный язык и исполняя каждую команду поочередно (этим занимаются программы – интерпретаторы).
При использовании интерпретатора программы, в которых требуется произвести большой объем повторяющихся вычислений, будут работать медленно. Для выполнения программы на другом компьютере также необходимо установить интерпретатор, так как без него программа представляет набор слов и работать не может.
Компиляторы осуществляют поиск синтаксических ошибок, выполняют семантический анализ и только затем, если текст программы в точности соответствует правилам языка, его автоматически переводят (транслируют) на машинный язык. Основной недостаток компиляторов – трудоемкость трансляции языков программирования, ориентированных на обработку данных сложной структуры, заранее неизвестной или динамически меняющейся во время работы программы.
В реальных системах программирования смешаны технологии компиляции и интерпретации.