Главная » Просмотр файлов » А.В. Ахо, М.С. Лам, Р. Сети, Дж. Д. Ульман - Компиляторы - принципы, технологии и инструментарий

А.В. Ахо, М.С. Лам, Р. Сети, Дж. Д. Ульман - Компиляторы - принципы, технологии и инструментарий (1114947), страница 165

Файл №1114947 А.В. Ахо, М.С. Лам, Р. Сети, Дж. Д. Ульман - Компиляторы - принципы, технологии и инструментарий (А.В. Ахо, М.С. Лам, Р. Сети, Дж. Д. Ульман - Компиляторы - принципы, технологии и инструментарий) 165 страницаА.В. Ахо, М.С. Лам, Р. Сети, Дж. Д. Ульман - Компиляторы - принципы, технологии и инструментарий (1114947) страница 1652019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 165)

Такая же аргументация применима к любым другим множествам 8еп-к111-функций. 811 9.7. Анализ на основе областей Замыкание Если ! представляет собой передаточную функцию цикла, то !" представляет собой влияние п проходов по циклу. В случае, когда количество итераций неизвестно, мы вынуждены считать, что цикл может выполняться О или больше раз.

Передаточную функцию такого цикла мы представим как !' — замыкание 1, определяемое как У* = Л ~" Заметим, что 1с должно быть тождественной функцией, поскольку она представляет собой влияние нулевого количества проходов по циклу, т.е. при отсутствии перемещения из входного узла. Если 7 представляет тождественную передаточную функцию, то можно записать 1*=ГЛ Л !" Предположим, что передаточная функция ! в структуре достигающих определений имеет множества Пеп и Ы1. Тогда (х) = 1(!(х)) = = — дел 0 ((Пеп 0 (х — 1аП)) — ЙП) = = дел 0 (х — Ы1) (х) = 1(! (х)) = = Пеп 0 (х — 1аП) И так далее: любая функция !" (х) имеет вид 8еп о (х — Ы1).

Таким образом, проход по циклу не влияет на передаточную функцию вида 8еп-'и1!1. Итак, (х) = 1 Л ! (х) Л ! (х) Л ... = = х 0 (деп 0 (х — ЙП)) = =дел 0х Иначе говоря, множества ееп и Ы1 для 1* представляют собой яеп и О соответственно. Интуитивно понятно, что поскольку можно вообще миновать цикл, все достигающие определения из множества х будут достигать входа в цикл. Во всех последующих итерациях достигающие определения включают таковые из множества Пеп.

9.7.5 Алгоритм анализа на основе областей Приведенный далее алгоритм решает задачу анализа потока данных в прямом направлении на приводимом графе потока в соответствии с некоторой структурой, удовлетворяющей предположениям из раздела 9.7.4. Вспомним, что 1па„~п ) 812 Глава 9. Машинно-независимые оптимизации и ~п о„,1д1 обозначают передаточные функции, которые преобразуют значения потока данных на входе в область Л в корректные значения на входе в подобласть Л' и на выходе из блока В соответственно.

Алгоритм 9.49. Анализ на основе областей Вход: структура потока данных со свойствами, изложенными в разделе 9.7.4, и приводимый граф потока С. Выход: значения потока данных пч [В] для каждого блока В в С. Метод: выполняем следующие действия. 1. Используем алгоритм 9.48 для построения восходящей последовательности областей С, скажем, Л|, Лз,..., Л„, где ˄— область верхнего уровня.

2. Выполняем восходящий анализ для вычисления передаточных функций, которые подытоживают влияние выполнения области. Для каждой области Л|, Лз,..., Л в восходящем порядке выполняем следующее. а) Если Л представляет собой область-лист, соответствующую блоку В, то положим ~па„1п1 = 1 и 1л ц,1в1 = 1в — передаточной функции, связанной с блоком В.

б) Если Л вЂ” область тела, то выполняем вычисления, показанные на рис. 9.50, а. в) Если Л вЂ” область цикла, то выполняем вычисления, показанные на рис. 9.50, б. 3. Выполняем нисходящий проход для поиска значений потока данных в начале каждой области. а) пч]Л„] = п|]Вход]. б) Для каждой области Ле ) Лы.... Л | ) в нисходящем порядке вычисляем 1Ж |Л] = 1п т~ч|п1 (111 ]Л']), где Л' — область, непосредственно охватывающая область Л. Сначала подробно рассмотрим, как работает восходяц|ий анализ. В строке 1 на рис. 9.50, а мы посещаем подобласти области тела в некотором топологическом порядке. В строке 2 вычисляется передаточная функция, представляющая все возможные пути от заголовка Л к заголовку Я. Затем в строках 3 и 4 мы вычисляем передаточные функции, представляющие все возможные пути от заголовка Л к выходам из Л, т.е.

к выходам из всех блоков, которые имеют преемников за пределами Я. Заметим, что все предшественники В' в Л должны быть в областях, которые предшествуют Я в топологическом порядке, построенном в строке 1. Таким образом, 1л цт|п1 будет уже вычислено в строке 4 предыдущей итерации внешнего цикла. 813 9,7. Анализ на основе областей 1ог (каждая подобласть Я, непосредственно содержащаяся в Л, в топологическом порядке) ( ,/йзн)В) = Анрелшесгвениики В заголовка В из й / й,она )В) /* Если Я вЂ” заголовок области Л, то /й г )В)— сбор "по ничему", т.е.

тождественная функция */ !ог (каждый выходной блок В в В) ./й,оиг)В) =,/Я,онг)В) и /гйитЯ 2) 3) 4) а) Построение передаточной функции для области тела Л Пусть Я вЂ” область тела, непосредственно вложенная в Л (т.е. В представляет собой Л без обратных ребер из Л в заголовок Л; сии)В) — '1АПрелшесгвенники В заголовка В в й .Г.з,онт)В) / )ог (каждого выходного блока В из Л) з й,онт)В) = Б,онт)В) 1й,ги)В) б) Построение передаточной функции для области цикла Л' 2) 3) 4) Рис. 9.50. Детали вычислений потоков данных на основе областей Вспомним упрощенные правила для передаточных функций вида дел-/п7/ из раз- дела 9.7.4. Для областей циклов мы выполняем шаги в строках 1-4 на рис.

9.50, б. В строке 2 вычисляется влияние обхода по циклу области тела Я нуль нли больше раз. В строках 3 и 4 вычисляется влияние выходов из цикла после одной или более итераций. В нисходящем проходе алгоритма на шаге 3, а сначала устанавливаются граничные условия на входе в верхнюю область. Затем, если Л содержится в Л' непосредственно, для вычисления 1м[Л] можно просто применить передаточную фуНКцИЮ /йга )й) К ЗНаЧЕНИЮ ПОтОКа даННЫХ 1М )Л').

гз Пример 9.50. Применим алгоритм 9,49 для поиска достигающих определений в графе потока на рис. 9.48, а. На шаге ! создается восходящий порядок, в котором посещаются области. Этот порядок определяет нумерацию индексов областей Л! г Л2 г ° ° ° г Лп Значения множеств дел н /гг7/ для пяти базовых блоков приведены ниже. 814 Глава 9. Машинно-независимые оптимизации ° Для получения сбора передаточных функций вычисляются объединение множеств пел и пересечение множеств ИП. ° Для вычисления композиции передаточных функций вычисляются объединения множеств деп и ЬП.

Однако как исключение выражение, которое генерируется первой функцией, при этом не генерируется второй и уничтожается ею, не входит в множество пел результата. ° Для получения замыкания передаточной функции деи оставляется неизменным, а лзП становится пустым множеством. Первыми пятью областями Лы..., Вз являются соответственно базовые блоки Вы..., Вз.

Функция ~п,пи~В 1 для 1 < з < 5 является тождественной функцией, а функция гл от~В ~ — передаточной функцией для блока В,: 1В„ог ~Вй (*) = (л — И11В,) 08елВ, Остальные передаточные функции, построенные на шаге 2 алгоритма 9.49, подытожены на рис.

9.5!. Область Лш состоящая из областей Вз, Вз н В4, представляет тело цикла и, таким образом, не включает обратное ребро В4 — Вз. Порядок обработки этих областей представляет собой единственный топологический порядок: Лз, Лз, Л4. Лз не имеет предшественников в пределах Вл., вспомним, что ребро В4 — Вз выходит за пределы Ве. Таким образом, ~лези~пз1 представляет собой тождественную функцию~~, а тле о„т~пз~ — передаточную функцию для блока Вз.

Заголовок области Вз имеет одного предшественника в Ве, а именно — Вз. Передаточная функция к его входу представляет собой просто передаточную функцию к выходУ из Вз, |Ве оот~пзй котоРаЯ Уже вычислена. Дли полУчениЯ пеРедаточной функции к выходу из Вз мы вычисляем композицию этой функции с передаточной функцией Вз в ее собственной области. Наконец, поскольку и Вз, и Вз являются предшественниками В4, заголовка Л4, для вычисления передаточной функции ко входу в В» мы должны вычислить 1Ве,оит~Вз1 Д 1Яе,оит~В41 Для получения требующейся функции 1".Ве „т~В,~ следует вычислить композицию этой передаточной функции и функции 1В4 пт~пяр Обратите внимание, например, что дз не уничтожается в этой передаточной функции, поскольку путь Вз — В4 не переопределяет переменную а.

Теперь рассмотрим область цикла Лт. Она содержит только одну подобласть Вп, которая представляет тело ее цикла. Поскольку существует только одно обратное ребро В4 — Вз к заголовку Вп, передаточная функция, представляющая и Строго говоря, имеется в виду функция ~п, Млвр ио когда область ивподобие Вз представляет собой единственный блок, в телом контексте более понятным оказывается использование имени блока вместо имени области. 815 9.7. Анализ на основе областей ПЕРЕДАТОЧНАЯ ФУНКЦИЯ ~йб м(йг] ~йа,оп(йг] Ткб, (кз] 2 Кб,оит(вз] С Кбайт(Й4] з йб,Оит В4] (?44) (с[4) (с"415[5) (с[4 ?45) (4441 4[51 ?[6) ( [1) ( [1) (с[1, с[З) ( [1) (с[1, с[2) 4 Йг,оит(вг[ 4 Й5,64[йг] з йб,оит(вг[ 2 йз,оит(вз[ з кбзя[йз] з Кб,оит[вг[ ' ' з йб,оит(вз[ 1К4,0ит В4 4 йт,~н йб[ (с[4~ 445~ с"6) (с[4 ~ 4[51 4[6) (444~ 5[5~ с"6) 1йт ьч(йб] ~йб оит(В4[ Л' т Оит(Вз[ Л?б,оит(вз[ 4 Йт,?6(йб[ 4 йт Ост(В4[ Уйб Оит В4 1КТ ьч[йб (с[1, с[з) (с"11 4"2) 4 Кби?4(йс[ Л?б,оит(В [ з йб 64(йт[ 2 йб,оит(вз[ Л?8.Оит(В4[ .~йб,?Н(йб[ .1йб,оит Вб И (с[1, с[2, с[3) ( [1, [2, [3) (с[2 с[4 ~ с[5 ~ 4[6 ) (?43 с"4 ~ 4[5~ с[6) (5[2~ 5[3~ 4[4~ 5[5~ с[6) (С[2, С"3, С"4, С[5, 4"6) (с[4 ~ ?[51 ?[6) (с[4, с[5, с[6) (с[,, с[з) (с[1 с[2) ( [1) ( [1) з йьоит(вс] з' Йб,оит(в? [ 2 К~в~(В ] йт оит(В4] 4 йб,оит(вз( Л?з,оит Вб о Л?блн(йт] Л?...(.,( ' ' 2йб,оит(В4[ Л?, 'й, Рис.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее