Книга: Системное программное обеспечение. Лабораторный практикум
Машинно-независимые методы оптимизации
Машинно-независимые методы оптимизации
Оба используемых машинно-независимых метода оптимизации – метод свертки объектного кода и метод исключения лишних операций – были описаны при выполнении лабораторной работы № 4, поэтому нет необходимости описывать их здесь повторно. Эти методы оптимизации не зависят ни от входного, ни от результирующего языка, а потому реализующие их алгоритмы, разработанные при выполнении лабораторной работы № 4, могут быть без модификаций использованы в курсовой работе.
Функции, осуществляющие оба метода машинно-независимой оптимизации, реализованы в модуле TrdOpt (листинг П3.11, приложение 3). Для алгоритма оптимизации методом свертки объектного кода необходимо вычислять значения триад, которые могут входить в состав линейных участков кода. Типы таких триад, а также функции вычисления их значений зависят от входного языка (поэтому при выполнении лабораторной работы № 4 они были выделены в отдельный модуль). Вычисления триад для алгоритма свертки объектного кода для курсовой работы реализованы в модуле TrdCalc (листинг П3.9, приложение 3).
Кроме этих двух методов при генерации результирующего кода реализован еще один простейший метод оптимизации, который зависит от семантики входного языка. Этот метод основан на особенностях выполнения арифметических и логических операций. Учитываются следующие особенности:
• для логической операции OR нет необходимости порождать код, выполняющий эту операцию, если один из операндов равен 0;
• для операции AND нет необходимости порождать код, выполняющий эту операцию, если один из операндов равен 1;
• для арифметической операции сложения нет необходимости порождать код, выполняющий эту операцию, если любой из операндов равен 0, а для арифметической операции вычитания – если второй операнд равен 0.
В отличие от двух ранее рассмотренных методов оптимизации, эта оптимизация выполняется не над внутренним представлением программы (триадами), а над результирующей программой при генерации ассемблерного кода. Поэтому соответствующие действия реализованы в функции MakeOpcode в модуле TrdAsm (листинг П3.13, приложение 3).
- CPC или CPM: показатель оптимизации № 11 – CPC как инновация компании Google
- Погода в доме. О внутренней оптимизации
- Другие способы создания GUI — платформно-независимые оконные API
- Размер машинного слова и типы данных
- При оптимизации процесса покупки не обойтись без убеждения
- Чего же все-таки стоит ждать от СЕО оптимизации?…
- Другие способы оптимизации Windows
- Фразы для постраничной поисковой оптимизации контента
- Глава 9 Чего ждать от SEO-оптимизации и на какие сроки стоит рассчитывать
- У SEO оптимизации небольшая себестоимость относительно других видов рекламы
- Чего ждать от СЕО оптимизации и на какие сроки стоит рассчитывать
- 6 Финансовые воротилы, или Управление предприятиями и машинное моделирование