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

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

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

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

9.3 Основы анализа потока данных Рассмотрев несколько практических примеров абстракций потока данных, перейдем к изучению схем потоков данных в общем виде. Мы формально ответим на ряд фундаментальных вопросов об алгоритмах потоков данных. Глава 9. Машинно-независимые оптимизации 1. При каких условиях корректен итеративный алгоритм, использующийся в анализе потока данных? 2. Насколько точно решение, полученное итеративным алгоритмом? 3. Будет ли сходиться итеративный алгоритм? 4.

Каков смысл решения уравнений? В разделе 9.2 мы неформально ответили на каждый из этих вопросов при изучении задачи о достигающих определениях. Вместо ответов на те же вопросы для каждой из последующих задач с нуля мы опирались на аналогию с уже рассмотренной задачей. Здесь же мы представим общий подход, который раз и навсегда отвечает на все поставленные вопросы для большого семейства задач потоков данных. Сперва мы определим желательные свойства схем потоков данных и докажем в качестве следствия этих свойств корректность, точность н сходимость алгоритма потока данных, а также выясним смысл его решения. Таким образом, чтобы понять старые алгоритмы или сформулировать новые, мы просто показываем, что предложенные определения задач потоков данных обладают рядом свойств, и тут же получаем ответы на все поставленные выше сложные вопросы.

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

Структура анализа потока данных (нага-йотг апа1уз)а 1гашец'огк) (Р, ); Л, Г) состоит из 1. направления потока данных Р, который может принимать значение "прямой" илн "обратный"„. 2. полурешетки (см. соответствующее определение в разделе 9.3.!), включающей область олределения значений $' и оператор сбора Л; 3. семейства г передаточных функций, областями определения и значений которых является 1'; зто семейство должно включать функции, подходящие для граничных условий и представляющие собой константные передаточные функции для входного и выходного узлов любого графа потока. 9.3.1 Полурешетки 1?олурешетка (аеш1!ап)се) представляет собой множество )' и бинарный оператор сбора Л, такой, что для всех х, р и х из Ъ' выполняются следующие соотношения.

745 9.3. Основы анализа потока данных 1. х Л х = х (идемпотеитиость) 2. х Л у = у Л х (коммутативиость) 3. хЛ (у Л л) = (х Л у) Л г (ассоциативиость) Полурешетка имеет верхний элемент, обозначаемый как Т, такой, что для всех х б 1' выполняется Т Л х = х Полурешетка может иметь (необязательио) нижний элемент, обозначаемый как 3, такой, что для всех х Е Ъ' выполняется 3 Л х = 3 Частичные порядки Как мы увидим, оператор сбора полурешетки определяет частичный порядок значений из области определения. Отношение < представляет собой частичный порядок (разт)а! оп!ег) иа множестве к', если для всех х, у и л из Ъ' выполняются следующие соотношения.

1. х < х (рефлексивиость) 2. Если х < у и у < х, то х = у (антисимметрив) 3. Если х < у и д < л, то х < г (транзитивность) Пара (1', <) называется частично упорядоченным множеством (рагйа!1у огдегес) зе1; сокрашеиио — рояе1в). Для частично упорядоченного множества удобно ввести также отношение <, определяемое как х < у тогда и только тогда, когда (х < у) и (х эе у) Частичный порядок в полурешетке Определим частичный порядок для полурешетки (Ъ; Л).

Дпя х и у из к' определим х < у тогда и только тогда, когда х Л у = х Поскольку оператор сбора Л идемпотеитеи, коммутативеи и ассоциативеи, определенный таким образом порядок < является рефлексивным, аитисимметричиым и траизитивиым. Чтобы понять, почему это так, заметим следующее. ° Рефлексивиоствс для всех х х < х. Доказательство этого факта основано иа том, что х Л х = х в силу идемпотеитиости оператора сбора. Мы не рискнули перевести это сокращение на русский язык, получив в результате "чум".— Прим. лер. 746 Глава 9. Машинно-независимые оптимизации ° Антисимметрия. Если х < д и д < х, то х = д. По определению х < д означает х Л д = х, а д < х означает д Л х = д. В силу коммутативности оператора Л получаем х = (х Л д) = (д Л х) = д. ° Транзитивность.

Если х < д и д < л, то х < л. По определению х < д и д < л означают х Л д = х и д Л л = д. Использование ассоциативности оператора сбора дает (х Л л) = Их Л д) Л л) = (х Л (д Л л)) = (х Л д) = х. Поскольку показано, что х Л л = х, получаем х < л, что и доказывает транзитивность. Пример 9.18.

Операторы сбора, использованные в разделе 9.2, — это операторы объединения и пересечения множеств. Оба они идемпотентны, коммутативны и ассоциативны. Для объединения множеств верхним элементом является Я, а нижним — универсальное множество У, поскольку для любого подмножества х С У выполняются соотношения И 0 х = х и У 0 х = У.

В случае пересечения множеств Т представляет собой У, а 1 — О. Область определения значения полурешетки И в этом случае представляет собой множество всех подмножеств У, которое иногда называется показательным множеством (ротчег зег) У и обозначается как 2~. Для всех х и д из к' из соотношения хыд = х вытекает хДд; таким образом, частичный порядок, продиктованный объединением множеств, представляет собой Д, включение множества.

Соответственно, частичный порядок, продиктованный пересечением множеств, представляет собой С, содержание в множестве. Иначе говоря, для пересечения множеств множества с меньшим количеством элементов рассматриваются данным частичным порядком как меньшие. Однако в случае объединения множеств меньшими считаются множества с большим количеством элементов.

То, что ббльшие по размеру множества оказываются меньшими в частичном порядке, противоречит интуитивному взгляду, но эта ситуация — неизбежное следствие принятых определенийт. Как говорилось в разделе 9.2, обычно имеется много решений уравнений потоков данных, среди которых наибольшее решение (в смысле частичного порядка <) является наиболее точным. Например, для достигающих определений наиболее точным среди всех решений уравнений потоков данных является уравнение с наименьшим количеством определений, которое соответствует наибольшему элементу в частичном порядке, определенном оператором сбора — объединением.

В случае доступных выражений наиболее точным решением является решение с наибольшим количеством выражений. И вновь это решение является наибольшим в частичном порядке, определенном пересечением в качестве оператора сбора. а "Если определить частичный порядок не как <„а как >, то проблема останется, просто вместо пересечений проблемными окажутся объединения множеств. 747 9.3. Основы анализа потока данных Наибольшие нижние границы Существует еще одно полезное соотношение между оператором сбора и определяемым им частичным порядком.

Предположим, что (К, Л) — полурешетка. Иаибольшей нижней границей (йтеагез1 1оч ег Ьошк1 — я!Ь) области определения элементов х и у является элемент д, такой, что 1. д<х; 2. д<у; 3. если г — любой элемент, такой, что е < х и е < у, то е < д. Отсюда следует, что х Л у является их наибольшей нижней границей. Чтобы увидеть, почему это так, положим д = х Л у и рассмотрим следующую аргументацию. ° д < х, поскольку (х Л у) Л х = х Л у. Доказательство включает простое использование ассоциативности, коммутативности и идемпотентности: д Лх = ИхЛу) Лх) = (х Л (уЛх)) = = (х Л (х Л у)) = Цх Л х) Л у) = = (хЛу) =д в д < у доказывается аналогично. ° Предположим, что г представляет собой любой элемент, такой, что г < х и < у. Мы утверждаем, что е < д, а следовательно, е не может быть наибольшей нижней границей х и у, если только не равно д.

Вот доказательство этого утверждения: (г Лд) = (х Л (х Л у)) = Ие Лх) Л у). Поскольку г < х, мы знаем, что (гЛх) = г, так что (гЛд) = (еЛу). Так как е < у, нам известно, что е Л у = е, а следовательно, е Л д = ж Итак, мы доказали, что е < д, и делаем вывод, что д = х Л у является единственной наибольшей нижней границей х и у.

Диаграммы решеток Зачастую полезно изображать область определения г' в виде диаграммы решетки, представляющей собой граф, узлами которого являются элементы 1:, а ребра направлены вниз от х к у, если у < х. Например, на рис. 9.22 показано множество Ъ' для схемы потоков данных для достигающих определений, в которой имеются три определения: йь пз и пз. Поскольку < в данном случае — З, ребра направлены вниз от любого подмножества из этих трех определений к каждому из их надмножеств. В силу транзитивности < для удобства на диаграмме будут 148 Глава 9. Машинно-независимые оптимизации Объединения, наименьшие верхние границы и решетки Над элементами частично упорядоченного множссгва по аналогии с операцией наибольшей нижней границы можно определить наиченыаую верхнюю границу (!сам пррсг Ьоппд — !пЬ) элементов х и д как элемент Ь, такой, что х < 6, 8 < (), и если з — любой элемент, такой, что х < з и р < е, то 6 < з.

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

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

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

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