ВУЗ:
Составители:
Рубрика:
20
шой фрагмент машинной программы, и в этом случае говорят о трансляции
"один к нескольким" (1:n). Одним из существенных моментов процесса ком-
пиляции является "сшивание" выходной машинной программы из заранее
созданных "заготовок", соответствующих отдельным синтаксическим конст-
рукциям исходного языка.
Ассемблирование и компиляция предполагают в качестве конечного ре-
зультата получение абсолютного модуля,
то есть программы на машинном
языке (обычно в виде файла), готовой к непосредственному выполнению на
ЭВМ под управлением ОС. Таким образом при использовании ассемблеров и
компиляторов процессы собственно трансляции и исполнения программы
принципиально разделены друг от друга.
Большинство процедурных языков высокого уровня (Fortran, Pascal, C)
имеют трансляторы компилирующего типа. Основное достоинство ассембле-
ров и
компиляторов - возможность получения абсолютного модуля и высокое
его быстродействие за счет того, что на этапе исполнения программы нет
необходимости делать синтаксический анализ и перевод предложений ис-
ходного языка, поскольку все это уже сделано на этапе трансляции. Однако
разделение этапов трансляции и выполнения существенно осложняет процесс
отладки программ, так как после
каждого изменения в исходном тексте нуж-
но осуществлять перекомпиляцию всей программы. В развитых системах
программирования этот не- достаток сглаживается наличием специальной
программы-отладчика, которая фактически имитируют режим интерпрета-
ции, что позволяет осуществлять отладку в пошаговом режиме.
Интерпретатор - это транслятор, принцип действия которого основан на
совмещении процессов трансляции и исполнения программы. В
процессе его
работы операторы программы на входном языке последовательно один за
одним считываются, тут же анализируются, транслируются и исполняются.
До тех пор, пока текущий оператор не будет исполнен, следующий не будет
транслироваться. Процесс интерпретации в основном заключается в обраще-
нии к подпрограммам, содержащимся в библиотеках самого интерпретатора.
При этом программа
в машинных кодах (абсолютный модуль), являющаяся
образом программы на исходном языке, не создается. Чтобы осуществить
прогон программы, нужно каждый раз запускать программу-интерпретатор,
для которой программа пользователя на исходном языке используется в каче-
стве входных данных. Типичными представителями интерпретаторов явля-
ются трансляторы с языка Basic. Интерпретаторы делают максимально про-
стым процесс отладки
и удобны для начального обучения программирова-
нию. Однако из-за совмещения процессов трансляции и выполнения быстро-
действие программ оказывается невысоким. Для устранения этого недостатка
иногда приходится создавать два транслятора с одного и того же алгоритми-
ческого языка - интерпретатор и компилятор. В качестве характерного при-
Страницы
- « первая
- ‹ предыдущая
- …
- 18
- 19
- 20
- 21
- 22
- …
- следующая ›
- последняя »