Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vse_v_1.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
179.9 Кб
Скачать

6. Трансляция как способ реализация языка программирования. Виды трансляторов.

2 способа реализации ЯП:

1) Трансляция.

2) Интерпретация (программная имитация).

Трансляция – процесс работы специальной программы, выполняющей перевод с 1 языка (в т.ч. высокого уровня) на другой язык.

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

данные 1|программа А||транслятор||программа В| данные 1

| результат пр.A= результат пр.B|

Функционал эквивалентен – при одинаковых наборах входных данных программа формирует одинаковые наборы выходных данных.

В – объектный язык транслятора.

Исходный язык – язык изначальной программы (входной).

Виды:

  1. Ассемблер – транслятор, входным языком которого является символическое представление машинного кода, а объектным – подмножество машинного языка некого реального или виртуального компьютера.

Дизассемблер – в противоположную сторону, входной язык – машинный код, выходной – язык ассемблера.

  1. Компилятор – транслятор, входным языком которого является ЯВУ, а объектным – язык близкий к МЯ реальной или виртуальной ЭВМ.

Декомпилятор – эквивалентный код на ЯВУ (нет взаимно-однозначного преобразования).

  1. Редактор связей – транслятор, входным языком которого является МЯ в перемещаемой форме (те не готов к непосредственному выполнению из-за неопределенности адресов в памяти для размещения команд данных), а объектным – МЯ готовый для передачи данных.

Задача: создание единой программы с согласованной адресацией.

  1. Препроцессор – вариант транслятор. Входной язык – расширение ЯВУ, а объектный – стандарт того же язык.

  1. Конвертер – входной/выходной язык – переводчик с одного ЯВУ на другой.

  1. Кросскомпилятор – вид транслятора, который переводит с одного МЯ на другой.

7. Интерпретация как способ реализации языка программирования. Типовой алгоритм работы интерпретатора.

Интерпретация – процесс моделирование некоторой виртуальной ЭВМ.

Алгоритм интерпретация.

(начало) ---(A)->|выбор следующего по порядку оператора|-->|его расшифровка – определение операции и операнда|--> |выбор операндов|--> <остановить операцию?> -да->|остановка|-->(конец) -нет-> |выполнение операции|--> (A)

Операнд – нечто, с чем выполняется операция (данные).

Операция – само действие.

Простой интерпретатор анализирует и тут же выполняет (собственно интерпретация) программу покомандно (или построчно), по мере поступления её исходного кода на вход интерпретатора.

+

  • мгновенная реакция

-

  • интерпретатор обнаруживает ошибки в тексте программы только при попытке выполнения команды (или строки) с ошибкой

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

Байт-код - машинно-независимый код низкого уровня, генерируемый транслятором и исполняемый интерпретатором. Большинство инструкций байт-кода эквивалентны одной или нескольким командам ассемблера.

+

  • большее быстродействие выполнения программ (за счёт выноса анализа исходного кода в отдельный, разовый проход, и минимизации этого анализа в интерпретаторе).

-

  • большее требование к ресурсам и требование на корректность исходного кода

Достоинства

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

  1. Как правило, более совершенные и наглядные средства диагностики ошибок в исходных кодах.

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

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

Недостатки

  1. Интерпретируемая программа не может выполняться отдельно без программы-интерпретатора. Сам интерпретатор при этом может быть очень компактным.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]