Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_k_PP_02_dlya_4xk2-polny.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
305 Кб
Скачать
☆
  1. Оптимизирующий кросс-компилятор. Компиляция и компоновка. Отладка.

Оптимизирующий компилятор — компилятор, в котором используются различные методы получения более оптимального программного кода при сохранении его функциональных возможностей. Компилятор, который создает программу, предназначенную запускаться на другой системе, называется кросс-компиляционным компилятором или, проще, кросс-компилятором.

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

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

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

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

Создание исполняемого модуля делят на два этапа — трансляцию (преобразование программы с одного языка на другой язык, программы равносильны) и компоновку. Это сделано, чтобы можно было объединять вместе модули, написанные на одном и том же или на разных языках. Формат объектного файла позволяет при определенных условиях объединить несколько отдельно отранслированных исходных модулей в один модуль. При этом в функции компоновщика входит разрешение внешних ссылок (ссылок на внешние процедуры и переменные) в этих модулях. Результатом работы компоновщика является создание загрузочного файла с расширением .ехе. После этого операционная система может загрузить такой файл в память и выполнить его.

Отладка:

Это самый трудоемкий этап. Его цель – проверка синтаксической и логической правильности программы, а также определение того, что программа функционирует на всем диапазоне допустимых данных.

В процессе отладки программы выделяются этапы:

  • Трансляция исходного текста программы

  • Лексический анализ

  • Компоновка программы

  • Выполнение программы для определения логических ошибок

  • Тестирование программы

Выявляются отельные составляющие текста программы (лексемы), недопустимые для использования. Например: ошибка (опечатка) в операторе, недопустимые языком программирования символы и т.д. . В результате - исходная программа кодируется: каждая лексема заменяется кодом ее типа, что сокращает объем текста. Кроме того, из текста программы удаляются пробелы.

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