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

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

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

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

Пусть 5 — кисть, содсржагаая корень. Можно считать, что нн в одном из поддеревьев, корнямн ноторых служат прямые поломки вершин из 5, не нарушается ни одно иа указанных выше условий. Любое ассоциативное нли коммутатнвное преобразование должно совершаться целиком внутри одного нз этих поддеревьев или целикол| внутри 5. Если внимателыю присмотреться к шагу (2) процедуры асооппи!е, с|апет ясно, что число младп|нх вершин, возникающих из 5, минималы|о.

По лел|ме 11,12 число стзрших вершин, возникающих из Я, минимально (для гого чтобы это увидеть, надо вновь исследовать результат процедуры асо|ппш!е), и значит, метка корня минимальна. Наконец, видно, что изменения, вносимые алгорнтиом !!.4, всегда можно совершить с помощью ассоциативных и кочмутативных преобразований. !) 11.2.1. Предполагая, что не выполняются никакие алгебраи- ческие ааконы, найдите оптимальную программу иа языке ассемб.

лера при числе сумматоров Н .. 1, 2 и 3 для каждого из сле- дующих выражении|' (а) Л вЂ” В»С вЂ” 0»(Е-|-Е), (б) А + (В+ (С» (О-'- Е)Е- С)» Н)) ' () + 3), (в) (А»(В--С))»(0»(Е»Р)) *-(С+(Н (-)))+(У--(КА-Е))), Вычислите оценку каждой нз найденных программ. !1.2.2. Повторите упр. !1.2.! в предположении, что сложе- ние и умножение коммутативны. 11.2.3. Повторите упр. 11 2.1 в предположении, что сложе- ние и умножение коммутативны н ассоциативны.

1!.2.4. Пусть Ібинарн выражение с Й операциями. Ка- кое максимальное число скобок .требуется для того, чтобы вы- разить Е без лишних скобок? *11.2,3. Г!усть Т -двоичное синтаксическое дерево, корень которого после прпменеаия алгоритма !1.! имеет метку Н '. 2. Покажите, ч | о Т содержит не менее 3 х 2» -» - -1 внутреаннх вершин. 11.2.6. Пусть Т вЂ” дерево бинарного выражения с Й внутрен- аимн вершинами. Покажите, что Т может содержать не более Й младших вершин.

*11.2.7. Покажите, что при данном Н) 2 дерево с М стар- шими вершинами содержит нс менее 3(М+ !) 2»'-г — ! внутренних вершин. *11,2,8. Какова максимальная оценка двоичного синтансического дерева с Й вершинами? *11Ш.О. Каков максимальный выигрыш в опенке двоичного синтаксического дерева с Й вершинами прн переходе ат машины с Н сумматорами к л|ашине с Ф4- ! сумматорами? "*1!.2,10. Пусть»Г — произвольное множество алгебраических законов. Разрешима лн проблема эквивалентности относитель. но Н двух двоичных синтаксических деревьев? 11.2.11.

Для алгоритма 11.2 определите процедуру соде(л,!ÄÄ..., (л)), которая вычисляет значение вершины л, пользуясь сумматорами Л,„Ль, ..., Л,„, и помещает результат на сумиаторе Л,. Покажите, что если взять в иачестве шага (Б) соде(л,(!т, 1„,, !л)) саде(л,,((!м !г! |м ..., 1„!) соде(а,!Го !». !»....,ГД ОР 9*4,'„'Л,,', Л,,' то алгоритм 11.2 можно модифицировать так, что все команды языка ассемблера типов (3) н (4) примут вид ОРО А,В,А 11.2.12, Пусть (а( при Ь) 0 з!йп(а, Ь) = 0 при 0=0 »( — (а( при Ь < О Покажите, чта операция з(йп ассоциативна, на не коммутативна. Лайте примеры других операций, ассоциативных, но не коммутативных.

*11,2.13. Каждан из команд ЕОА0 М, А ВТОКЕ А, М ОРО Л,М,В использует одно обращение к памнти. Если  †суммат, то ОР О Л, В, С вообще не содержит обращений к памяти. Найдите минимальное число обращений к памяти, генерируемое программой, вычислнющей двоичное синтаксическое дерево с Й вершинами. *1!.2.14. Покажите, что, алгоритм 11.2 вырабатывает программу, требующую при вычислении да|того выражения минимального числа обращений к памлти. *11.2.13.

Взяв в качестве входной грамматики С„постройте схему синтаксически управяяемого перевода, переводящего нн. гл. ц. оптимизация кодл фиксные выражения в оптимальную программу на языке ассЕмблера. Считайте, что имеется М сумматоров и (а) нс выполняются никакие алгебраические законы, (б) сложение и умножение комч)тативны, (в) сложение и умножение аесациативиы и комчутативны. 11.2.1б, Приведите алгоритмы реализации процедур соде, сапппп1е и асопппц1е за линейное вречя.

*11.2.17. Некоторые операции могут потребовать дополнитель. ных сумматоров (например, вызов подпрОграмм или арифметика с кратной точностью). Молифицируйте алгоритмы !1.! н 11.2 так, чтобы учитывать эту возможную потребность н дополнительных сумматорах со стороны операций.

11.2.10. Алгоритмы 11.1 — 11.4 также чожна применить к произвольному двоичному графу, если сначала с помощью расщепления вершин преобразовать его в дерево, Покажите, что алгоритм 11.2 в этом случае ие всегда будет генерировать оптимальную программу. Оцените, насколько плохим он может оказаться при этих условиях.

11.2.10. Обобщите алгоритмы 11.1 — 11.4 так, чтобы они могли обрабатывать выражения, включающие операции с произвоть. ным числом аргументов. *1!.2.20. Арифметические выражения мокнут содержать также н унарные операции + и —. Постройте алгоритм генерации оптималю!ого кода для этого случая. (Предполагается, гго все операнды различны и что четыре бинарные арифметические опе. рации и унарные + и — связаны обычными алгебраическими закопал!и.) *11.2.21. Постройте алгоритм генерапии оптимального кода для одного арифметического выражения, в котором каждый операнд является либо отличной от другкх переменной, либо целой константой.

Считайте, что для сложения и умножения выполняются ассоциативный и коммутативиый законы и справедливы следующие тождества: (1) а-!-О=.О.)-а=а, (2) а+1=.1еа=а, (3) с,бек =с„где с,— целое число, результат применения операции 0 к целым числаы с, и с,.

11.2.22. Найдите алгоритм гсаерации оптимального кода для одного логического выражения, в котором каждый операнд нвлнется либо отличной от других переменкой, либо логической константой (О илн 1). Считайте, что логическое выражение включает операции н, или, ие и онн удовлетворяют законам булевой алгебры (см. том 1). зэа упркжиенин **11.2.23. В некоторых ситуациях две или более операции могут выполняться параллелью.

Алгоритмы из равд. 11.1 и 11.2 предполагают воследовательное выполнение, Однако„ если машина способна выполнить параллельные операции, можно попы. таться так упорядочить выполнение, чтобы порождалось кзк можно болыпе одновременных параллельных вычислений. Пред. положим, например, что у нас есть машина с четырьмя регистрами, в которой одновременно могут выполняться четыре опе. рации.

Тогда выражение Аг+Лв+Ав+Ав+Лк+Ав+Аг+Ав ива 3 иег 1 иаг 1 Рвс, !! 2!. Дерева ллв вврвллвльвык вычвслеввз. можно представить так, как показано иа рис. !1.21. На первом шаге нужно поместить А, в первый регистр, А„ — во второй, А, — в третий, А, — в четвертый. На втором шаге нужно при. бавить Лв к содержимому регистра 1, Л, — к содержимому регисгра 2, А, — к содержииому регистра 3, а А, — к содержимому регистра 4. После этого шага регистр 1 будет содержать А, Р Л„ регистр 2 будет содержать А,ч- Л, и т.

д. На третьем шаге прибавляем содержимое регистра 2 к содержимому регистра 1, а содержимое регистра 4 к содержимому регистра 3. На четвергом шаге прибавлнем содержимое регистра 3 к содержимому регистра !. Постройте машину с М регнстрньюи, в которой ю одном ше~е может выполнн~ься до дГ параллельных ! операяий.

Модифицируйте алгоритм !1.1 так, чтобы он генерировал оптимальнЫй код (в счысле минимального чис.та п!агав) для одного арифметического выражении с рааличными операндами для такой машины. Ироблгжи длл исследования 11.2.24. Найдите эффективный алгоритч, ксаорый будет ге. нерировагь оптимальный код того же типа, что и рассматриваемый в этом разделе, на для произвольного блана. 13'" 1>.Э. ПРОГРАММЫ С ЦИКЛАМИ ГЛ. 11 ОПТИМИЗАЦИЯ КОЛА Замечания по литературе 293 392 Упрцжнеппе нп лрагрцымиразпяые 11.2.26.

Напишите программы, реализующие алгоритмы 11.1 — 11.4. Репер»пни хорошего када дли эрифметическик вырэжени» для каикретнык мешин или нллссов машин посвящена многа статей. Флойд 1196)э) описывает рвд методов оптимнзвцин врнфметичсснит ыр ж нвй, включв» определение опция подвыражений. Ов предлэгвет также, чтобы второй операнд не»амму. т инной биаврной опервдни вычислялся первым.

Андерсон !1964! дает Алгоритм генерации када для машины с одним регистром, па существу совпвдэющий с кодом, вырабатываемым влгоритмом 11.1 при ж=!. Нвквтэ [1967) н Мейере !19661 приводят аналогичные реэультэты. Число регистров, требуеыыа для вычисления дерева выражения, исследовали Нвнвте 11967), Редзневский 1 Ш691, Сети и Ульмвн 1 И70), Алгоритмы 1!.1 — 11.4 в том виде, в каком оии представлены здесь, реэрэбпвиы Сети и У. ьмэном 11976). Упр. 11.2.11 предложил Стокээуэен. Бити [1972! и Фрейли 1!970) исслелаввли ресшире»ня, включающие операцию унэриого минуса.

Чеэ 119721 обобщил алгоритм 11.2 нв некоторые ориентированные эциклические графы. Эффективный алгоритм геиервнии аптимвльиога кода для праизеальнык выражений не известен. Один эвристический метод испольэ »вни» регистров в процахе вычисления выражения ссновви ив следующем алгоритме. Предположим, что должно выч слвться выражение а, э его значение должно зэпоминвтьсн в быстром регмстре !сумм»тор*).

!1) Если энэченне а уже ээпомеепо в иеноторам регистре 1, та ие перевычислаем а. Регис~Р 1 нэшДитса тепеРь ав УпотРеблении". [2) Если значение а ие э*пампе»о ни в каком регистре, эвпоминэем ега в очередном сна!юлиан регистре, скажем !. Регистр 1 ивзодится теперь в употреблении. Если нет свободных доступнмк регистров, та содержимое некаторога регистре д ввпомвивем н основной и мяти, в значение а ввпомииэем в регистре А.

Регистр й выбираем так, чтобы к его внвчеиню кэк можно дольше не была сер»щения. Бнледи !19661 показал, что в иекатарык снт> вцннк этот алгоритм опгимэлен. Однэко этот элгоритм !Рвзрэботэнный ллв листов»ни») нредполвгэет модель, ие совпэдзющую в точности с моделью линейного кода. В частности, порядок вычислений считается фиксировэаиым, в та еремы «эк в равд. 11.1 и 11.2 было пакэзапо, чта, переупорядочиввя вычислеииа, можно добиться внэчшельного.выигрыша. Аиыогнчнэя ээдвчв распределении регистров исследуется в рабате Хореи»в и др. 11966).

твм предполагается, чта дена паследаэвтельность ппервннй, абрэщэк>щэяся к виэченням и изменяющая к. Задача ээключэется в том, чтобы в»нести эти значения в быстрме регистры тэк, чтобы число записей и счи1ываинй иэ быстрык регистров в основную пвмвть была минимальным. Нх решение с»а»вши к выбору пути с минимальной оценкой нэ ориентиро«ваном вциклнчесном грифе ооэмажнмк решемвй. Деются методы умеиьшени» размера грифа. Дальнейшее исследование распределения ре нстрав, «огдэ по. рядок вычислений не финсироввн, проведена Кеииед» !1972) н Сети !1972!. Перевод врифметнческик выражений в кад длв пэрвллельиых машин иэ. лвгветсэ Аллэрдам и др. [1964), Хеллермвнам 119661, Стоуном [19671, Бэром и Базе 11968! Общая ээдвчв оптимального рвспределеии» задач между пв- рэллельвымн процессарэми очень трудна.

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

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

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

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