Скачать презентацию Выполнение программы Трансляция и ее фазы Лекция 4 Скачать презентацию Выполнение программы Трансляция и ее фазы Лекция 4

Лекция 4.ppt

  • Количество слайдов: 17

Выполнение программы. Трансляция и ее фазы. Лекция 4 Выполнение программы. Трансляция и ее фазы. Лекция 4

Трансляция. Введение. n n Транслятор — программа или техническое средство, выполняющее трансляцию программы. * Трансляция. Введение. n n Транслятор — программа или техническое средство, выполняющее трансляцию программы. * Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой* *ГОСТ 19781 -83 // Вычислительная техника. Терминология МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

Цель трансляции Исходный язык Целевой язык ТРАНСЛЯТОР ПРОГРАММА интерпретатор ТУ (процессор) n Транслятор обычно Цель трансляции Исходный язык Целевой язык ТРАНСЛЯТОР ПРОГРАММА интерпретатор ТУ (процессор) n Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати текста программы и т. д. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

Сущность трансляции n n процесс восприятия компьютером программы, написанной на некотором формальном языке. языки Сущность трансляции n n процесс восприятия компьютером программы, написанной на некотором формальном языке. языки программирования эквивалентны с точки зрения потенциальной возможности написать одну и ту же программу на любом из них. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

Выводы ТРАНСЛЯТОР ПРОГРАММА n n КОМПИЛЯТОР ИНТЕРПРЕТАТОР для выполнения программы, написанной на определенном формальном Выводы ТРАНСЛЯТОР ПРОГРАММА n n КОМПИЛЯТОР ИНТЕРПРЕТАТОР для выполнения программы, написанной на определенном формальном языке после ее компиляции необходим интерпретатор, выполняющий эту программу, но уже записанную на выходном языке компилятора; процессор и память любого компьютера является интерпретатором машинного кода. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

Компиляция и интерпретация n n Компиляция - преобразование объектов (данных и операций над ними) Компиляция и интерпретация n n Компиляция - преобразование объектов (данных и операций над ними) с входного языка в объекты на другом языке для всей программы в целом с последующим выполнением полученной программы в виде отдельного шага. Интерпретация - анализ отдельного объекта на входном языке с одновременным выполнением (интерпретацией). МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

Смешение понятий трансляции и интерпретации n n n Поскольку целью трансляции является подготовка программы Смешение понятий трансляции и интерпретации n n n Поскольку целью трансляции является подготовка программы к интерпретации, то эти процессы обычно рассматриваются вместе. Например, языки программирования часто характеризуются как «компилируемые» или «интерпретируемые» , в зависимости от того, что преобладает при использовании языка: компиляция или интерпретация. Практически все языки программирования низкого уровня и третьего поколения (ассемблер, Си или Модула-2) являются компилируемыми, а более высокоуровневые языки (Python или SQL) — интерпретируемыми.

Кросс-компиляция n n Выходной язык компилятора может быть машинным языком для компьютера с другой Кросс-компиляция n n Выходной язык компилятора может быть машинным языком для компьютера с другой архитектурой, нежели тот, в котором работает компилятор. Такой компилятор называется кросс -компилятором, а сама система программирования кросс-системой программирования. Такие системы используются для разработки программ для архитектур, не имеющих собственных операционных систем или систем программирования (контроллеры, управляющие микропроцессоры). МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

Трансляция и ее фазы Трансляция и ее фазы

Трансляция и ее фазы Анализ текста программы n n Построение внутреннего представления Синтез текста Трансляция и ее фазы Анализ текста программы n n Построение внутреннего представления Синтез текста эквивалентной программы процесс трансляции - линейный, то есть происходит последовательное преобразование фрагмента программы одного языка в другой. На процесс трансляции одного фрагмента обязательно оказывают влияние другие фрагменты программы МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

Трансляция и ее фазы ТРАНСЛЯТОР ПРОГРАММНЫЙ ФАЙЛ КОМПИЛЯТОР ОБЪЕКТНЫЙ МОДУЛЬ (obj) • Препроцессор • Трансляция и ее фазы ТРАНСЛЯТОР ПРОГРАММНЫЙ ФАЙЛ КОМПИЛЯТОР ОБЪЕКТНЫЙ МОДУЛЬ (obj) • Препроцессор • Лексический анализ • Синтаксический анализ • Семантический анализ • Генерация кода • Оптимизация кода МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

Компоновка obj dll obj ПРОГРАММНЫЙ ФАЙЛ. EXE obj dll obj МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. Компоновка obj dll obj ПРОГРАММНЫЙ ФАЙЛ. EXE obj dll obj МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

Анализ текста программы. Лексика n n n Лексика языка программирования - это правила «правописания Анализ текста программы. Лексика n n n Лексика языка программирования - это правила «правописания слов» программы: q идентификаторы, q константы, q служебные слова, q комментарии. Лексический анализ разбивает текст программы на указанные элементы. Особенность любой лексики - ее элементы представляют собой регулярные линейные последовательности символов. Например, Идентификатор - это произвольная последовательность букв, цифр и символа "_", начинающаяся с буквы или "_". МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

Анализ текста программы. Синтаксис n n Синтаксис языка программирования - это правила составления предложений Анализ текста программы. Синтаксис n n Синтаксис языка программирования - это правила составления предложений языка из отдельных слов. Такими предложениями являются q q q n операции, операторы, определения функций и переменных. Особенность синтаксиса - принцип вложенности (рекурсивность) правил построения предложений. Это значит, что элемент синтаксиса языка в своем определении прямо или косвенно в одной из его частей содержит сам себя. Например, в определении оператора цикла телом цикла является оператор, частным случаем которого является все тот же оператор цикла. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

Анализ текста программы. Семантика n n n Семантика языка программирования - это смысл, который Анализ текста программы. Семантика n n n Семантика языка программирования - это смысл, который закладывается в каждую конструкцию языка. Семантический анализ - это проверка смысловой правильности конструкции. Например, если мы в выражении используем переменную, то она должна быть определена ранее по тексту программы, а из этого определения может быть получен ее тип. Исходя из типа переменной, можно говорит о допустимости операции с данной переменной. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.

Генерация кода. Фаза синтеза. n n Генерация кода - это преобразование элементарных действий, полученных Генерация кода. Фаза синтеза. n n Генерация кода - это преобразование элементарных действий, полученных в результате лексического, синтаксического и семантического анализа программы, в некоторое внутреннее представление. Это могут быть q q n коды команд, адреса и содержимое памяти данных, текст программы на языке Ассемблера, стандартизованный промежуточный код (например, P-код). В процессе генерации кода производится и его оптимизация. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.