Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

ТРАНСЛЯТОРЫ И ИХ ВИДЫ



Программа, составленная на алгоритмическом языке высокого уровня, не может быть непосредственно выполнена на компьютере, так как он может осуществлять лишь последовательность элементарных операций, заданных в машинных кодах. Перевод программы с алгоритмического языка на машинный осуществляется с помощью специальной программы - транслятора. В ней заложены все правила алгоритмического языка и способы преобразования его различных конструкций на машинный язык. В процессе трансляции текст программы одновременно проверяется на ошибки. Существуют два типа трансляторов: компиляторы и интерпре­таторы.

Интерпретаторберет очередной оператор языка из текста програм­мы, анализирует его структуру и затем сразу исполняет (обычно после анализа оператор транслируется в некоторое промежуточное представ­ление или даже в машинный код для более эффективного дальнейшего исполнения). Только после того как текущий оператор успешно выполнен, интерпретатор перейдет к следующему. При этом, если один и тот же оператор должен выполняться в программе многократно, интерпретатор всякий раз будет выполнять его так, как будто встретил впервые. Вслед­ствие этого программы, в которых требуется осуществить большой объем повторяющихся вычислений, могут работать довольно медленно. Кроме того, для выполнения такой программы на другом компьютере также должен быть установлен интерпретатор - ведь без него текст программы является для машины ничего не значащим набором символов.

Рис. 41. Схема процесса компиляции

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

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

В реально функционирующих системах программирования исполь­зуются обе технологии - компиляции и интерпретации.





Дата публикования: 2014-11-18; Прочитано: 1520 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...