Перевод исходного кода в материал, происходящий на экране [экран | диск | сеть], может происходить (примерно) двумя способами; называть их компиляцией и интерпретацией.
В скомпилированной программе (примеры c и fortran):
- Исходный код подается в другую программу (обычно называемую компилятором), которая создает исполняемую программу (или ошибку).
- Исполняемый файл запускается (дважды щелкнув его или введя его имя в командной строке)
Говорят, что то, что происходит на первом шаге, происходит во время компиляции, а то, что происходит на втором шаге, происходит во время выполнения.
В интерпретируемой программе (например, MicroSoft basic (на dos) и python (я думаю)):
- Исходный код подается в другую программу (обычно называемую интерпретатором), которая «запускает» ее напрямую. Здесь интерпретатор служит промежуточным слоем между вашей программой и операционной системой (или аппаратным обеспечением в действительно простых компьютерах).
В этом случае разницу между временем компиляции и временем выполнения довольно сложно определить, и она гораздо менее важна для программиста или пользователя.
Java является своего рода гибридом, где код компилируется в байт-код, который затем запускается на виртуальной машине, которая обычно является интерпретатором для байт-кода.
Существует также промежуточный случай, когда программа компилируется в байт-код и запускается немедленно (как в awk или perl).