Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




 

Трансля́тор — программа или техническое средство, выполняющее трансляцию программы.

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

Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.

Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языком или объектным кодом.

Цель трансляции — преобразовать текст с одного языка на другой, который понятен адресату текста. В случае программ-трансляторов, адресатом является техническое устройство (процессор) или программа-интерпретатор.

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

03 A B C умножение

04 A B C деление

07 000 B 000 извлечение корня

10 A 000 C ввод данных

20 A 000 C вывод данных

77 000 000 000 конец программы

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

В дальнейшем была реализована идея заменять истинные адреса ячеек памяти на условные обозначения и использовать символические имена для обозначения операций. Такую форму записи команд стали называть мнемокодом.

MOV DX, A

ADD B

MOV D, 4.4

MUL D

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

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

Компиля́тор — программа, предназначенная для трансляции высокоуровневого языка в абсолютный код или, в язык ассемблера. Входной информацией для компилятора (исходный код) является описание алгоритма или программа на проблемно-ориентированном языке, а на выходе компилятора — эквивалентное описание алгоритма на машинно-ориентированном языке(объектный код).

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

Процесс компиляции как правило состоит из нескольких этапов: лексического, синтаксического и семантического анализов (англ. Semantic analysis), генерации промежуточного кода, оптимизации и генерации результирующего машинного кода.

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

Другой метод реализации — когда программа исполняется с помощью интерпретатора вообще без трансляции.

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

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

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

Существуют компромиссные между компиляцией и чистой интерпретацией варианты реализации языков программирования, когда интерпретатор перед исполнением программы транслирует её на промежуточный язык (например, в байт-код или p-код), более удобный для интерпретации (то есть речь идёт об интерпретаторе со встроенным транслятором). Такой метод называется смешанной реализацией

 






Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 1287 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Наглость – это ругаться с преподавателем по поводу четверки, хотя перед экзаменом уверен, что не знаешь даже на два. © Неизвестно
==> читать все изречения...

2684 - | 2249 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.