Компиляторы и интерпретаторы
Из сказанного ясно, что алгоритм, записанный на алгоритмическом языке, не может быть непосредственно выполнен с помощью ЭВМ – для этого он должен быть предварительно переведен (оттранслирован) на язык той машины, на которой этот алгоритм будет исполняться. Выполнение такого перевода самим человеком потребовало бы от него больших затрат труда и времени, а к тому же – фактического умения программировать на языке машины, что свело бы на нет эффект использования алгоритмических языков.
Если же алгоритмический язык выбрать так, чтобы перевод любого алгоритма с этого языка на язык машины можно было осуществить по формальным правилам (а именно с учетом этого обстоятельства и создаются алгоритмические языки), то непосредственное выполнение такого перевода можно поручить самой машине. Для этого достаточно однажды составить специальную машинную программу, называемую транслятором, которая представляет собой не что иное, как записанный на языке машины алгоритм перевода текста с некоторого алгоритмического языка на язык какой-либо конкретной ЭВМ. Таким образом, исходными данными для транслятора является запись какого-либо алгоритма на исходном алгоритмическом языке, а результатом работы транслятора – тот же алгоритм, но записанный уже на машинном языке, пригодный для его непосредственного выполнения на соответствующей ЭВМ.
Трансляция программы может выполняться двумя способами:
- методом компиляции,
- методом интерпретации.
Если транслятор выполняет перевод всего текста программы в машинный код (с одновременной оптимизацией этого кода), то этот процесс называют компиляцией, а программы, выполняющие преобразование текста программы в машинный код называют компиляторами. Машинный код, полученный в результате компиляции, может храниться на любом накопителе в форме программы, которую можно в любой момент запустить на выполнение, как самостоятельное приложение.
В отличие от компилятора интерпретатор каждую отдельную команду программы преобразует в машинный код и сразу выполняет, т.е. программа интерпретирует (переводит на машинный язык) каждую команду программы. Получается, что все команды, содержащиеся в программе, в ходе работы интерпретатора выполняются последовательно друг за другом. Очевидно, что оптимизации машинного кода интерпретатор не производит.
Реальные трансляторы сочетают в себе технологии трансляции и интерпретации.
Дата добавления: 2021-03-18; просмотров: 315;