29359

Машинно-независимая оптимизация линейных участков программ

Доклад

Информатика, кибернетика и программирование

Покажем простейшие преобразования линейных и циклических участков для тетрадной формы программ:Машиннонезависимая оптимизация линейных участков программЛинейным участком программы называется последовательность операцийкоманд которая не содержит условных переходов возможно кроме последней операции. Для оптимизации линейных участков в простейшем случае используется два основных преобразования:1. В списке тетрад выделит границы участков включающих вычисления выражений по операторам присвоения;2.

Английский

2013-08-21

26.5 KB

4 чел.

25) Машинно-независимая оптимизация линейных участков программ.

При выполнении такой оптимизации наиболее часто преобразуются линейные и циклические участки программ. Самой удобной формой представления программы при машинно-независимой оптимизации является тетрадная форма.
Покажем простейшие 
преобразования линейных и циклических участков для тетрадной формы программ:
Машинно-независимая оптимизация линейных участков программ
Линейным участком программы называется последовательность операций(команд), которая не содержит условных переходов, возможно кроме последней операции.
Для линейного участка программы последовательность выполняемых действий не зависит от обрабатываемых данных. Для оптимизации линейных участков в простейшем случае используется два основных преобразования:
1. свертка, т.е. выполнение операций для которых операнды известны во время трансляции ( напр. константы)
2. исключение избыточных операций за счет определения общих подвыражений.
Рассмотрим примеры алгоритмлв, реализ-х эти преобразования над арифмитическими выражениями, заданными в тетрадной форме.
Алгоритм свертки
1. В списке тетрад найти такую тетраду, все операнды которой заданы константами;
2. Выполнить операцию, заданную этой тетрадой и создать новую константу; (поместить ее в таблицу констант)
3. Исключить найденную тетраду из списка, а все ссылки на ее результат заменить обращением к новой константе;
4. Повторять шаги с 1-го по 3-ий, пока в списке тетрад появятся изменения.
Алгоритм исключения избыточных операций
1. В списке тетрад выделит границы участков включающих вычисления выражений (по операторам присвоения);
2. для всех тетрад, задающих коммутативные операции упорядочить операнды в соответствии с некоторым правилом;(коммутативн. называются операции результат выполнения которых не изменяется при перестоновке операндов)
3. в каждом выражении найти идентичные тройки вида:
(<оператор> , <операнд1> , <операнд2>). Исключить из списка все соответствующие тетрады, кроме первой и исправить ссылки на результат;
4. повторять шаги 2 и 3 до тех пор, пока появляются изменения в списке тетрад.
Избыточные операции обычно появляются в неочевидных ситуациях. В частности при работе с многомерными массивами.
Любой многомерный массив в конечном итоге преобразуется в одномерный. В послед-ть зарезервированных ячеек памяти. Это неизбежно, т.к. адресация в памяти линейна. Поэтому при использовании 2-х или более индексов обращение к любому элементу предпологает «скрытое» вычисление его номера в этой последовательности решений.


 

А также другие работы, которые могут Вас заинтересовать

8425. Технологический процесс обработки детали типа Корпус 1.53 MB
  Аннотация. В данном проекте рассмотрен один из возможных технологических процессов обработки детали типа Корпус, разработан технологический процесс для выполнения на металлорежущих станках, выбран вид заготовки и метод её получения, рассчитаны припу...
8426. Електричні фільтри 1.3 MB
  Мета: Дослідити засобами компютерного моделювання: Методики розрахунку електричних LC-фільтрів Частотні характеристики електричних LC-фільтрів Методики вимірювання параметрів частотних характеристик Вплив параметрів ...
8427. Стандартная библиотека шаблонов 146.5 KB
  Стандартная библиотека шаблонов 1. Цель работы Освоить технологию обобщенного программирования с использованием библиотеки стандартных шаблонов (STL) языка C++. 2. Темы для предварительной проработки Классы. Наследование. 3. Задание для ...
8428. Основные нормируемые показатели ВЗГ 252.5 KB
  Основные нормируемые показатели ВЗГ 1 Цель работы Изучение нормируемых параметров вторичных устройств синхронизации - ВЗГ (англ. - SSU, Synch. SupplyUnit, укр. - ВПС, вторинний пристрій синхронізації) и схем их испытаний 2 Указа...
8429. Измерение параметров импульсных сигналов методом дискретного счёта 190 KB
  Измерение параметров импульсных сигналов методом дискретного счёта. Цель работы: - изучение метода дискретного счёта - изучение принципа действия цифрового частотомера - приобретение навыков работы с измерительной аппаратурой. Используемая аппарат...
8430. Измерение напряжений электронными вольтметрами 254.5 KB
  Измерение напряжений электронными вольтметрами ЦЕЛЬ РАБОТЫ: -изучить принципы построения аналоговых электронных вольтметров -приобрести навыки эксплуатации различных вольтметров -уяснить зависимость показаний вольтметров от формы кривойизмеряемого...
8431. Техническая эксплуатация автомобилей. Методические указания 4.66 MB
  Целью методических указаний является оказание помощи студентам при проведении лабораторных работ по дисциплине Техническая эксплуатация автомобилей. Излагаются основные теоретические сведения, порядок выполнения и требования к оформлению отчетов по ...
8432. Визначення питомого опору провідника 440.5 KB
  Визначення питомого опору провідника Мета роботи: вивчення одного з методів визначення питомого опору визначення похибки електровимірювань. Теоретичнівідомості Опір...
8433. Основы работы с MATLAB. Изучение простейших операций и приемов работы в среде пакета Matlab 263 KB
  Основы работы с MATLAB. Изучение простейших операций и приемов работы в среде пакета Matlab. Цель работы: Ознакомление с простейшими операциями и приемами работы в среде пакета MATLAB. Организация самостоятельной работы При подготовке к...