Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Программа, составленная на алгоритмическом языке высокого уровня, не может быть непосредственно выполнена на компьютере, так как он может осуществлять лишь последовательность элементарных операций, заданных в машинных кодах. Перевод программы с алгоритмического языка на машинный осуществляется с помощью специальной программы - транслятора. В ней заложены все правила алгоритмического языка и способы преобразования его различных конструкций на машинный язык. В процессе трансляции текст программы одновременно проверяется на ошибки. Существуют два типа трансляторов: компиляторы и интерпретаторы.
Интерпретаторберет очередной оператор языка из текста программы, анализирует его структуру и затем сразу исполняет (обычно после анализа оператор транслируется в некоторое промежуточное представление или даже в машинный код для более эффективного дальнейшего исполнения). Только после того как текущий оператор успешно выполнен, интерпретатор перейдет к следующему. При этом, если один и тот же оператор должен выполняться в программе многократно, интерпретатор всякий раз будет выполнять его так, как будто встретил впервые. Вследствие этого программы, в которых требуется осуществить большой объем повторяющихся вычислений, могут работать довольно медленно. Кроме того, для выполнения такой программы на другом компьютере также должен быть установлен интерпретатор - ведь без него текст программы является для машины ничего не значащим набором символов.
Рис. 41. Схема процесса компиляции
Компиляторы, напротив, полностью обрабатывают весь текст программы, прежде чем запускать ее на исполнение (рис. 41). Они просматривают его в поисках синтаксических ошибок (иногда несколько раз), выполняют определенный смысловой анализ и затем автоматически генерируют машинный код. При этом обычно выполняется оптимизация программы с помощью набора методов, позволяющих повысить ее быстродействие (например, с помощью инструкций, ориентированных на конкретный процессор, путем исключения ненужных команд, промежуточных вычислений и т.д.). В результате законченная программаполучается компактной и эффективной, работает во много раз быстрее, чем та же программа, выполняемая с помощью интерпретатора, и может быть перенесена на другие компьютеры с процессором, поддерживающим соответствующий машинный код.программы
Основной недостаток компиляторов - трудоемкость трансляции языков программирования, ориентированных на обработку данных сложной структуры. В машинный код приходится вставлять множество дополнительных проверок, анализировать наличие ресурсов операционной системы и т.п. При использовании интерпретатора, наоборот, можно в любой момент остановить работу программы, исследовать содержимое памяти, организовать диалог с пользователем, выполнить сколь угодно сложные преобразования данных и при этом постоянно контролировать состояние окружающей программно-аппаратной среды, благодаря чему достигается высокая надежность работы. Кроме того, интерпретатор очень удобен для использования в качестве инструмента изучения программирования, так как позволяет понять механизм работы каждого оператора языка в отдельности.
В реально функционирующих системах программирования используются обе технологии - компиляции и интерпретации.
Дата публикования: 2014-11-18; Прочитано: 1520 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!