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

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

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

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

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

Например, проллежуточный код передается на фазу оптимизации, диагностика размещается в собственный список, чтобы затем быть напечатанной, а команды по организации информации выполняются немедленно. Предположим, что для обобщенного синтаксически управляе. мого перевода применяется один из наиболее общих вариантов алгоритмов 9.1 — 9.4. Можно было бы дождаться, когда будет полностью сконструировано дерево или ориентированный ацинлический граф, а затем сформировать единый выходной поток. Деление потока на объектный кол и команды могло бы осуществляться точна так же, как и для МП-преобразозателя. Это оз.

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

Однако, если алгоритм разбора требует возвратов, надо быть осторожным, чтобы не выполнить команды, связаннои с вершиной, не являющейся частью дерева раабора. В этой ситуации необходим механизм для отмены результата такой команды. КЦРАЖМЕИИЯ 9,3.1. Найдите ОСУ-схемы для следующих переводов: (а) ((а", а" )(и ~1), (б) ((а", а'") (л~)1), (в) ((гв, нш)(ш Е (О + 1)').

9.3.2. Покажите, что существуют переводы, определяемые ОСУ-схемой, но не определяемые никакой СУ-схеиой. *А9.3.3. Пусть Т вЂ семантичес однозначная ОСУ-схема с бесконечной областью определения, входная КС-грамматика которой является приведенной. Понажите, что в этом случае должно удовлетворягься одно из следующих услоиий: (1) Существуют константы с, и с„ большие 1 и такие, что если (к, у) Ет(Т), то (у((с',"' и для бесконечного числа цепочек х найдутся такие пары (х, у) Ет(Т), что (у(,мс("!.

(2) Существуют константы с, н см балшние О, н целое число л ) 1, такие, что если (х, у) Ет(Т) и хФЕ, то (у)(с,(А!' и для бесконечного числа цепочек х найдутся такие пары (х, у) Ет(Т), что )у()с,)х(к (3) Множество значений схемы Т конечно 9.3АК Покажите, что перевод ((а", а ) ( ш — целая часть числа ) л) нельзя определять никакой ОСУ-схемой. 9.3.5. Для переводов из упр. 9.8.1 (а) — (в] постройте ориентированные ацпклические графы, вырабатываеллые алгоритмом 9.4 для входов а', а' и 011 соответственно. 9,3.9. Укажите последователылость вершин, по которой про.

ходит алюритм 9.3, примененный к ориентированным апиклическим графам иа упр. 9.3.3 "9.3.7. Дополшше пример 9.16, вктючнв правило вывода 5 мЬПе В бо 5, смысл которого должен заключаться в том, лжо проверяется выражение В, а затем выполняется оператор Я до тех пор, пока значением В не станет ложь. зы гпражнепяя гл. з. пеРевод и генерация кодл В (Е)М Е а, Е)В, 1.)а)В М т,)ю,(..,(жз АГ,=Цо-РЕ(ч92 ' )Ус=2., Е,=-2Е,+В, 1.,-1.,+1 Е,— В, Е,=! В,=О В,=! (у !4п,! и! 34 Е Е ЕВ (= в= т 4-4 лх=-2 В 0 В 1 заз 9.3.3. Следующая грамматика порождает объявления, подобные объявлениям в ПЛД: Терминал а ияображает идентификатор; т„..., ть — это й возможных атрибутов идентификатора в пайке. Терминальными символами являются также запятая и скобки.

Е представляет списон идентификаторов н объявлений; () †э объявление, состоящее из заключенного в скобки списка идентификаторов и объявлений. Атрибут, выведенный из М, должен прил!сняться ко всем идентификаторам, выведенным из Е в правиле вывода () (Е)М, даже если идентификатор находится внутри сложного объЯвлеииа.

НапРимеР, объЯвление (ам (а„а!) ж!) т„назначает идентификаторам а, и а, атрибут лг„ а идезнтйфийаторам ам а и а, атрибут п4,. Используя л4обые типы перевода, постройте схему перевода, переводящую цепочки, выведенные из нетерминала В, в й списков, причем список ! должен содержать в точности те идентификаторы, которым придан атрибут и! 9.3.9. Измените пример 9,17 так, чтобы в команду А)(С4 за. носились не указатели на значения выражений, а сами эти зна. чения.

9.3.10. Рассмотрим схему перевода Во входной грамматике из нетерминала Аг выводятся двоичные числа (возможно, с двоичной точкой). Нетерминал Е представляет список битов, а нетермннал  †б. Элементами перевода являются арифметяческие форьгулы. Элеьгент перевода У! представляет рациональное число †значен двоичного числа, вы. всденного из ЛС Элементы перевода Е, Е„ и В, принимают целые зна4ения. Например, 1!.01 имеет перевод 3'14. Покажите, что т(7) =-((6, б)(Р†двоичн целое, 4( †е значение), 262 "9.3.11.

Рассмотрич следующую схему перевода с входной грамматикой, как в упр. 9.3.10, но содержащую как синтезированные, так и наследственные атрибуты: р) (,п4„!н! р) 9 Е! !4ч Цп =О Ео! 1 в! А! Е 34! =Е! 1.,=-0 В, =).о' Ц" =ЕР4+1 Е В Е, =-В, В, =-Е., 1., =! В О В,=О В 1 В, = 2з Дерево разбора для 11.01 со значениями элементов перевода, соответствующих каждой вершине, изображено на рис, 9.20. Рис, В.во. Дерево разбора с зчреаоламя.

гл з. пи»звон и гене»лция кодл Отметим, что для того, чтобы вычислить элемент перепада йм надо сначала вычислить снизу вверх все Е, справа от разделительной точки, затем сверху вниз все Ьо и, наконец, снизу вверх все Ео Покажите, что эта схема определяет тот же перевод, что и схема из упр, 9.3.10. »9.3.12. Покажите, что всякий перевод, который можно выполнить с помощью наследственного и синтезированного пере. нодон, можно выполнить с помощью только синтезированного перевода. Укаэализг На структуру перевода ограничений нет. Таким образом, перевод, определяемый в некоторой вершине, может быть целым поддеревом. 9.3,13.

Можно ли любой перевод, использующий синтезиро. за~огне переводы, выполнить только с помощью наследственного перевода? **9.3.14. Приведитс алгоритм для проверки, является ли данная схема перевода, содержащая наследственные и синтезированные атрибуты, зацнкленной. 9.8.15. Видоизмеинте пример 9.18 так, чтобы ввести возмож. ности улучшения нада из примера 9.14. "9.3.16. Алгоритм дифференцирования примера 9,!1 позволяет генерировать такие выражения, как 1»сов(х) или 0»л+(1)»1 (формальная производная от !» х).

Можно выявить и исключить выражения, язло разные 0 или 1, где язио определяется следующим образом: (1) 0 явно равен 0; 1 ноно равна 1. (2) Если Е, явно равно О, а Е,— некоторое выражение, то Е, » Е, и Е„» Е, явно равны О. (3) Если Е, и Е, явно равны 1, то Е,» Е, явно равно 1. (4) Если Е, явно равно О, а Е, явйо равно 1, то Е,+Е, и Е,+Е, инно равны 1. (5) Если Е, и Е, явно равны О, то Е,+Е, явно равно О.

Измените ОСУ.схему (в том числе, возможно, и входную грамматику) тан, чтобы в переводе не появлялись выражения, язяо равные О, а в качестве множителей чтобы не пояалялнсь выражения, явно равные 1. 9.3.17. Рессиотрим следующую грамматику для оператора присваивания, включающего переменные с индексом: зпелжнения А- ):=Е Е Е <ансл) Т(Т Т Т<знумн) Р(Е Р (Е)(! 1 а)а(Е) Е-а, б(а <висл) + (— <знумн) »() Примером оператора, генерируемого этой грамматикой, может служить а(а, а): а(а-)-а, а»(а+а))-1-а Вдесь а — ленсема, представляющая идентификатор.

Сконструируйте схему перевода, основанную на этой грамматике н генерирующую необходимые команды языка ассемблера или много. адресного кода для операторов присваивания. 9.3.18. Покажите, что ОСУ.схема из примера 9.11 правильно вырабатывает выражение для производной входного выражения. **9.3.19. Покажите, что перевод ((а,...а Ь!...Ь„,а1Ьо.,а Ь„)(а г1, а,б(0, Ц,Ь ц(2,3)для!~(~а) ие определяется никакой ОСУ-схемой, Проблема длл исследозоиия 9.3.20. Перевод арифметических выражений становится до.

нольно сложным, если допустить в качестве операндов элементы многих различных типов данных, Например, значениями могут быть логические переменные, цепочки, целые, вещественные или комплексные числа †последних грех случаях они могут иметь одинарную, двойную или, возможно, более высокую точность. Кроме того, некоторые значения могут лежать в динамически распределяемой памяти, а некоторые размещаться статически. Число комбинаций вполне может быть настолько большим, что элементы перепада, связанные с таким правилом вывода, как Е Е + Т, станут весьма громоздкими. Можете ли Вы по данному переводу, перечисляющему желаемые коды для каждого случая, придумать способ автоматического упрощения записир Скажем, в примере 9.19 части перевода Еш для 1йеп и е1зе отличаются тол~ко одним символом А или В в конце команды АОО.

Таким образом, если использовать более изощренные механизмы, описание можно сократить почти вдвое. Л ОРГАНИЗАЦИЯ Ю %Ф ИНФОРМАЦИИ Замечания по литературе 10.1. ТАБЛИЦЫ ИМЕН Денные Имя целое ВООР метке вешестисниый массив Рнс. 10.1. Теблице ич ш Гл. е. пеРеВОд н генеРАция кадА Упрозснение но проероммиролпние *9.8.21. Сконструируйте схему перевода, отображаеощуео подмножество Фортрана в промежуточный язык, как в упр. 9.!.10. Напишите программу, реализующую эту схему перевода.

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

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

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

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