Этапы трансляции (1119745)
Текст из файла
Этапы трансляции
- лексический анализ
- синтаксический анализ
- семантический анализ
- генерация внутр. представления программы
- оптимизация
- генерация объектной программы
Основные свойства языка внутреннего представления программ
– Язык позволяет фиксировать синтаксическую структуру исходной программы
– Текст на этом языке можно генерировать во время синтаксического анализа
– Конструкции языка должны достаточно просто транслироваться в объектный код либо достаточно эффективно интерпретироваться
Cпособы внутреннего представления
1. ПОЛИЗ
2. Связные списочные структуры
3. Многоадресный код с явно именуемыми результатами тетрады:
4. Многоадресный код с неявно именуемым результатом триады:
Оптимизация программ - обработка, связанная с переупорядочением и изменением операций в транслируемой программе в целях получения более эффективной объектной программы.
Параметры оптимизации: скорость выполнения, объем памяти, равномерная загрузка оборудования многопроцессорного комплекса…
При оптимизации
1. преобразования должны сохранять семантику программы (т.е. быть эквивалентными);
2. стоимость преобразования должна быть сопоставима с затрачиваемыми усилиями и побочными эффектами;
3. в результате преобразований работа программ «в среднем» должна улучшаться (почти на всех допустимых данных), лишь на некоторых (редко встречающихся) может быть ухудшение характеристик.
Машинно-независимая оптимизация
Оптимизация линейных участков прогр.
– вычисление константных выражений
– арифметические преобразования
– устранение общих подвыражений
– удаление ненужных присваиваний
– перестановка независимых смежных участков прогр.
– оптимизация вычисления логических выражений
– удаление недостижимых участков прогр.
Оптимизация передачи параметров и вызовов функций:
– прямая подстановка тел функций в основной текст программы
Оптимизация циклов
– вынесение инвариантных вычислений
– замена операции с переменными цикла
– слияние, расщепление и развертывание
Машинно-зависимая оптимизация
– учет регистровой структуры вычислительной аппаратуры (оптимальное распределение регистров, передача параметров в функции через регистры)
– удаление лишних команд
– снижение "стоимости" программы (есть «дорогие» и «дешевые» команды с точки зрения времени их выполнения)
– использование «машинных идиом»
– слияние, дробление и развертывание циклов, иногда требующееся из-за технических особенностей аппаратуры
– учет векторных и конвейерных свойств архитектуры
Задача распределения памяти
Конструкция ЯП:
– код пользовательской программы
– данные программы
– коды системных прогр., обслуживающих выполнение пользовательской прогр.
– записи о текущем состоянии процесса
Каждой конструкции ЯП в соответствие должны быть поставлена ячейка памяти: адрес памяти, размер, атрибуты.
Память (по способу использования): локальная и глобальная.
Память (по способу распределения): статическая и динамическая.
• Статическое распределение памяти:
Размеры объектов, размещенных статически, не меняются. Относительные адреса (внутри области) не изменяются. Перед загрузкой программы в память устанавливается начальный адрес статической области.
• Динамическое распределение памяти
- на этапе компиляции не удается определить положение объекта в некоторой области памяти и/или его размер.
Способы распределения: стек, куча (произв. распределение)
Используется при распределении памяти:
- под локальные переменные,
- для хранения динамических объектов,
- для записи о текущем состоянии процесса выполнения программы
• Явное выделение памяти:
– блоками фиксированного размера.
(блоки памяти связываются в список) Достоинства: если программа полностью использует блок памяти, то нет никаких дополнительных расходов. С каждым блоком связан указатель на его начало, требуется хранить только информацию о том, занят блок или нет.
– блоками переменного размера (Возможна проблема из-за фрагментации памяти.)
• Неявное выделение памяти
(выполняется компилятором и программами системной поддержки).
Блоки обычно имеют следующую структуру:
• размер блока (если блок переем. размера),
• пометка занятости либо счетчик ссылок,
Система программирования — это комплекс программных средств (инструментов, библиотек), предназнач. для поддержки разработки ПП на протяжении всего жизненного цикла этого продукта.
Программа создается автором для решения конкретной задачи в конкретной ОС.
Программный продукт (ПП) — программа, которая работает без авторского надзора в рамках некоторого набора ОС, обладает «дружественным» интерфейсом, имеет пользоват. и техническую документацию.
Этапы жизненного цикла программного продукта
1) Постановка задачи. Опред. требований
2) Проектирование
3) Написание текста программ
4) Компоновка
5) Верификация, тестирование и отладка
6) Документирование
7) Внедрение
8) Тиражирование
9) Сопровождение (1)-(8)
Доп. требования, поддерживаемые СП
согласованность (изменения в одном месте должны инициировать изменения там, где используется измененный фрагмент ПП),
непротиворечивость (принимаемые решения на одном из этапов должны быть согласованы с решениями, принимаемыми на других этапах создания ПП),
корректность изменений (вносимые изменения не должны нарушать общие требования к ПП),
хранение "истории" (предыдущие версии),
возможность работы группы разработч. в реальном времени,
автоматизир. кодирован. и документир. ПП,
автоматизация календарного планирования сроков создания ПП.
Интегрированная среда разрабоки (ИСР) - комплекс программных средств, поддержив. полный жизненный цикл ПП, объединяющий возможности компонент СП.
Простая ИСР объединяет в себе возможности текстовых редакторов исходных текстов программ, отладчиков и командный язык компиляции
Усовершенствованная ИСР содержит
– репозиторий
– графические средства анализа и проектир.
Отладчик – программа, помогающая анализировать поведение отлаживаемой программы, обеспечивая ее трассировку
1) пошаговое выполнение программы шаг за шагом
2) выполнение программы до опред. Строки
3) отобр. выполн. в данный момент строеи
4) приостановка выполнения программы
5) расстановка снятие точек останова
6) выдача всей информации в терминах исходной программы
Редактор внешних связей
Загрузчик
Профилировщик
Критерии проектирования стандартных библиотек
– общезначимость содержимого
– эффективность
– безопасность
– завершенность
– сочетаемость с базовыми типами данных
– могут служить основой создания других библиотек.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.














