Главная » Просмотр файлов » Теория синтаксического анализа, перевода и компиляции - Том 2

Теория синтаксического анализа, перевода и компиляции - Том 2 (943929), страница 82

Файл №943929 Теория синтаксического анализа, перевода и компиляции - Том 2 (Теория синтаксического анализа, перевода и компиляции) 82 страницаТеория синтаксического анализа, перевода и компиляции - Том 2 (943929) страница 822013-09-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Грзф уереегеииз. 447 443 !а) Гь !У) Ге Рее. Ы,4а, Нееееаеиме трефы уереелееея. ственную входящую дугу. Таким образом, лрн построении ннтерваяов каждый из них окажется в интервале с другой вершиной в качестве заголовка, Из этого можно заключить, что следующее обращение к шагу !2) будет на графе, имеющем по крайней мере на одну вершину меньше, так что алгоритм 11.8 должен закончиться. С) Теорема 11.16.

А егор/глен 11.3 празильно змеислягт функцию !Х. До к а з а тел ь с т з о. Достаточно за негнть, что ОЕХ и ТКАХЗ для /„..., // иа шаге !2) те же, что н для /. Кроме того, ясно, ! что 1Х//)= 0 !Х///) и О!/Т //) =- )/ ОПТ, Поскольку каждый интервал /г связывает те же вершины, что н /, функция !Х для вершин в 64, отличных от /, та же, что и в 6'. Таким образом, простая индукция по числу обращений к шагу !2) показывает, что )Х вычисляется правильно. ьз 11.4.4. Обзор содержания главы При построении оптимизирующего компилятора сначала надо решить, какие лучше всего применить оптимизации. Решение должно базироваться на характеристиках того класса программ, которые, как предполагается, должны компилироваться. К сожалению, часто эти характеристики трудно определить, а работ по этому вопросу опубликонано мало.

В этой главе мы рассматривали о!жимизацию кода с довольно общей точки зрения, и разумно было бы спросит!и как связаны друг с другом различные обсуждаемые нами оптимизаг!ии кода. /бетодами равд. 11.2, касающимися арифметических выражений,можно пользоватьсн при построении окончательной объектной программы. Однако некоторые аспехты алгоритмов равд. )1.2 можно внести также и в генерацию промежуточного кода. Иными словами, отдельные части алгоритмов равд. 11,2 мгекно ястроить в выход синтаксического анализатора.

Это приведет к тому, что на линейных участцах будут эффективно использоваться регистры. На фазе компилятора, генерирующей код, у нас есть промежуточная программа, которую можно рассматривать как нечто аналогичное „программам" из равд. 11.3. Наша первая зццача †построи граф управления способом, описанным в этом разделе. Следующий возможный шаг †оптимизирова циклы, как описано в равд. 1!.3, сначала внутренние, а затем и внешние.

Когда это сделано, можно вычислить глобальную информацию относительно потока данных, например, как в алтари~не !1.8 и/или в упр. !1.4.19 и 1!ОК20. Зная зту информацию, можно выполнить „глобальные" оптимизации из равд, !1.3, например размножение констант н исключение общих подвыражений. На этой стадии, однако, надо проявлять осторожность, чтобы не увеличить размера внутренних циклов. Для этого можно по. местить участки во внутренних циклах и избегать в таких участках дополнительных действий, связанных с запоминанием значения выражения, даже если зто выражение используется позднее в участке вне цикла.

Если машина, для которой генернрч. гл ~~ Оптимнзлцяя кодл упулжпкния ется кад, имеет более одного регистра, можно выивнть активные переменные (упр. 11.4.20), чтобы определить, панис переменные должны занимать регистры при выходе из участков. Наконец, линейные участки можно преобразовать методами равд. 1! .1 или анаяогичными методами в зависимости от конкретного промежуточного языка. На этой стадия ссуществлиется также распределение регистров внутри участка, удовлетворяющее упомянутым выше ограничениям на глобальное распределение регистров.

Здесь обычно требуются эвристические методы. кпзлжпвнмн 11А.1. Постройте производную последовательность графов управления, иаображенных иа рнс. 11.32 и 1!.36. Сводимы ли этн графы? 11.4.2, Приведите дополнительные примеры несводимых графов управления. 11.4.3. Донажите утвержденна (!) и (2] теоремы 1!.12. "11.4.4. Покажите, что алгоритм 11,0 можно выполнить так, что ан будет тратить время, пропорциональное числу дуг графа управления Р. 11.4.5. Докажите теорему 11.14.

11.4.В. Закончите доказательство теоремы 1!.!б. !1.4.7. Используйте анализ интервалов (алгоритм 11.7) как основу алгоритма, выисияющего по дкнному оператору, ссылающемуся на переменную А, определена ли она явно тзк, что будет принимать в качестве значения одну и ту же константу при наждом выполнении оператора. 3?каяалае: Необходимо найти, какие нз операторов, Определяющих А, могут быть предыдущими определениями А до очередиога выполнения рассматриваемого оператора. Зто легко выяснить, если предыдущий оператор, определяющий А, встречается в том же участке, что и рассматриваемый оператор. Если нет, нужно вычислить 1/4(Я) для участка, в мотором встречается оператор.

В последнем случае говорят, что А имеет значением константу тогда и только тогда, когда все операторы определения в 1?/(Я), определяющие А, присваивают А одну и ту же константу. 11.4.3. Приведите алгоритм, использующий анализ интервалои как основу для выяснения, бесполезен ли оператор 3, т. е. существует ли оператор, употребляющий значение, определяе. мое 3. 11.4.9. Пусть Я вЂ” участок графа управления с д>гамп в Я, н Я„ а 3 †операт управления в Я, значение которого в Я 444 не употребляется. Если никакой из участков, достижимых вз Я„ нс употребляет значения, определяемого оператором г(, то б можно переместить в Я,.

Используйте анализ интервалов как основу для алгоритма, выявлишщего такие сигуа~!ни. 11.4.10. Вычислите /Ы для каждого участка программы /У 2 'г': ( 2 )Р, И ! < Дг йо(о Х мгИе М ?2 Лг й/ — , '1 йо1о )л Х: ! геша1пдег ((т', /) И 7=-0 йош г ! !+1 до(о й/ 1!А.1!. Вычислите Вл/ для каждого участка программы гевб l И /=! йсбо Х 2: 1!!>10 йо1ОГ Х: ./ (+3 итИе ./ 0'. / (+1 йо(о 2 У: ! ! — 1 И / > !5 йо(о 0/ ИаИ 4!1.4.12. Пусть Т, и ҄— преобразования, следующим образом определенные на графах управления; Тб Если вершина л имеет дугу в себя, удаляем зту дугу.

Т;. Если в вершину л входит единственная дуга, выходя. щая из вершины т, и л не является начальной вершиной, сливаем т и и, заменяи дугу из т в л дугами нэ пл в каждую вершину и', в которую раньше шла дуга на п, Зателг исключаем я. Паиажите, что если Т, и Т, применяются к графу управления Г до тех пар, пока они применимы, то результатом будет предел графа Р. 44З гл. и. оптичизлиля кодл гпелжнения *11.4.!3. Примените преобразования 7, и Т, длн вычисления функции )Н другим способом, не использующим анализа интервалов.

'*11.4.14. Пусть  — граф управлении с начальной вершиной ~,, Покажите, что 0 несводим тогда и только тогда, когда он имеет такие вершины п„н, и п„что существуют пути из п в ла из и, в и, и в л„из л, в и, и из л, в и, [рис. 1!.48), сав- Рнс. П.4З. Структура вмеаго несводимого графа. падавшие толька в их конечных тачках. Все л„ла и, н и, должны быть различны, только л, может совпадать с н,. 11А.15. Покажите, что любая б.схема (см. Равд. 1.3.2) сводима. Указание: Воспользуйтесь упр. 11.4.!4.

11.4.16. Покажите, что любая программа на Фортране, в которой каждый переход на предыдущий оператор вызывается циклоы ОО, имеет сводимый граф управления. **11А.!7. Покажите, что можно зз время 0(п!ойи) выяснить, сводим ли данный граф управления. Указание: Воспользуйтесь упр. 11.4.12. *1!.4.18. Какая существует связь между поннтиями интервала и области с одним входом? *11.4.19. Приведите основанный на понятии интервала алгоритм, выясняющий для каждого выражения (скажем, А+В) и каждого участив Я, г~рн каждом ли выполнении программы достигается оператор, вычисляющий А+В (т.

е. существует ли оператор вида С А+В] и не переопределяющий впоследствии ни А, ни В. Укизаииег Если Я не являетси начальным участком, то наложим )Н(Я)=- ПОИТ(Я?), где ясе Яг — прямые предки участка Я. Пусть ОПТ (я) = (1?( (я) П Х) В у где Х вЂ множест выражений, „убиваемых" в Я (мм „убиваем" А 1- В, переопределяя А или В), а У вЂ множест выражений, вычисляемых участком и иеубиваемых.

Для каждого интервала! различных производных графов и каждого его выхода з вычисляем СтЕлУ (/, В) как множество выражений, вычисляемых и впоследствии не убиваемых ни на какам пути иа входа в интервал 7 в его выход. Вычисляем также Т)(АМ3'(А з) как множества выражений, которые, будучи убитыми, генерируются затем на лю. бом таком пути. Отметим, что ОЕ(л)'(1, з) щТЕАгл)8'(1, з). *11.4.20. Приведите алгоритм, основанный нз анализе интервалов, который для каждой переменной А и каждого участка Я выясняет, есть ли выполнение, которое паоле прохождения через Я будет ссылаться иа переменную А перед ее переопределением. 11.4.21.

Пусть Š— граф с и вершинами и е дугалти. Г!окажите, что г-й производный граф от Е имеет ие более чем е — г дуг. *11.4.22. Приведите пример графа управления с и вершинами и 2л дугами, производная последовательность которого имеет длину и. *1!.4.23. Покажите, что алгоритм 11.7 и алгоритмы нз упр. 11.4 !9 и 1!.4.20 тратят не более 0(л') элементарных векторных шагов на графах управления с л вершинамн и не более чем 2п дугами. Существует другой подход к анализу патона данных, таблич. ный ио своей природе.

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

Тип файла
DJVU-файл
Размер
3,44 Mb
Тип материала
Высшее учебное заведение

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

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