Компиляторы и интерпритаторы

Что такое компиляторы и интерпритаторы? Чем они отличаются?

И компиляторы и интерпретаторы преобразуют исходный код в машинный код, только разными путями.

Интерпретатор читает исходный код программы и выполняет его. Преобразование исходного кода в бинарный и выполенение выполняется построчно. Работает интерпретатор так:

Исходный код => Интерпретатор => Операционная Система => Выводим результат.

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

Исходный код => Компилятор => Объектный код => Операционная Система => Выводим результат.

Компиляриуемые языки работают значительно быстрее интерпретируемых.

Примеры компилируемых языков: С , С, Objective C

Примеры интерпретируемых языков: JavaScript, PHP (если считать его полноценным языком программирования, а не чисто скриптовым языком)

Также существуют "гибридные", компилируемо-интерпретируемые языки программирования. К таким относятсяс: C#, Java, Visual Basic