Здавалка
Главная | Обратная связь

Интерпритатор.достоинства и недостатки. Сравнение с процессом компиляция

Дать опред транслятора. Привести общую схему работы транслятора с опис этапов.

Транслятор – это программа, которая переводит входную программу на исходном языке в эквивалентную ей выходную программу на результирующем языке. В работе трансляторов учувствуют 3 программы:

Сам транслятор

Машинная программа

Обрабатывающая программа

Входными данными для транслятора является последовательность предложений входного языка программирования (файл, который должен содержать текст программы удовлетворяющий синтаксическим и семантическим, требованиям входного языка, выходные данные)

Текст – результирующей программы.

Важное требование в определении транслятора – эквивалентность входной и выходной программы.

Транслятор обычно выполняет так же диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программ.

Понятие компилятора. Общая схема. отличие процесса компиляции от интерпретации.

Компилировать – это проводить трансляцию машинной программы с проблемно ориентированного языка на машинный ориентированный язык.

Компиляция – это:

1) Трансляция программы на язык близкий к машинному.

2) Трансляция программы составленная на исходном языке в объектном модуле.

Процесс компиляции состоит из нескольких этапов:

Лексического, синтаксического, семантического анализов, генерация промежуточных кода, оптимизации и генерации результирующего машинного кода.

Работа компиляции состоит из 2 этапов

1.Этап анализа:

Выполняется распознавание текста исходной программы, создание и заполнение таблиц идентификаторов. Результат его работы – внутреннее представление программы понятное компилятору

2.Этап синтеза.

На основании внутреннего представления программы и информации содержащейся в таблице идентификаторов порождается текст результирующей программы. Результат этого этапа объектный код.

интерпритатор.достоинства и недостатки. Сравнение с процессом компиляция

Интерпретатор – это система из компилятора переводящего исходный код программы в промежуточное представление и собственно самого интерпретатора, который выполняет полученный промежуточный код.

Достоинства:

Большая переносимость интерпретируемых программ – программа будет работать на любой платформе на которой есть соответствующий интерпретатор.

Более совершенные наглядные средства. Диагностики ошибок в исходных кодах

Упрощение отладки исходных программ.

Меньшие размеры кода по сравнению с машинным кодом полученным после обычных компиляторов.

Недостатки:

Интерпретируемая программа не может выполняться отдельно без программы интерпретатора.

Интерпретируемая программа выполняется медленнее по сравнению с исполнением машинного кода в которой был скомпилирован. Практически отсутствует оптимизация кода, что приводит к дополнительным потерям скорости работы.

4.ассемблер, осн-е достоинства. Понятие метки: определение, синтаксис, атрибуты, типы значений:

Ассемблер – это компьютерная программа, компилятор исходного текста программы написанной на языке ассемблера.

Меткаэто символическое имя, обозначающее определенную ячейку памяти и предназначенное для использования в качестве операнда в командах передачи управления.

ИМЯ СЕГМЕНТА КОДА, где эта метка описана;

СМЕЩЕНИЕ — расстояние в байтах от начала сегмента кода, в котором описана метка;

ТИП, или АТРИБУТ РАССТОЯНИЯ, метки.

Последний атрибут может принимать два значения:

Near— переход на метку возможен только в пределах сегмента кода, где эта метка описана, то есть для перехода на метку физически достаточно изменить только содержимое регистра EIP/IP;

far _- __ переход на метку возможен только в результате межсегментной передачи управления, для осуществления которой требуется изменение содержимого как регистра EIP/IP,так и регистра CS.

Метку можно определить двумя способами:

оператором: (двоеточие);

директивой LABEL.

С помощью оператора: можно определить метку только ближнего типа — near. Определенную таким образом метку можно использовать в качестве операнда в ко­мандах условных переходов JCCи безусловного перехода JMP, CALL Эти команды, естественно, должны быть в том же сегменте кода, в котором определена метка. Команда ассемблера может находиться как на одной строке с меткой, так и на сле­дующей.

Язык ассемблера является самым низкоуровневым языком программирования. Т.е. он ближе любых других приближен к архитектуре ЭВМ и ее аппаратным возможностям, позволяя получить к ним полный доступ.





©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.