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

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

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

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

137 — 167. 7. Оаш, 1., "В!Ыю8гарЬу оп Булгак Епог Напг)1!п8 !и 1.ап8иа8е Тгапв!агюп Куя гепь", 1991. Доступен в группе новостей совр. соврз.1егв; см. Ьгср: //совр11ега.1есс.сов/соврагсЬ/агс1с1е/91-04-050. 8. ОеВ.ешег, Р., "Ргасбса! Тгаил!агота Гог ЕВ(!с) 1.ап8иа8ев", РЬ.О. 1Ьев!л, М(Т, СагпЬпд8е, МА, 1969. 9. ОеВешег, Р., тбипр!е 1 К(1с) 8гаплпагв'*, Сотт. АСМ 14:7 (1и!у, 1971), рр. 453-460. ОоппеПу, С. апд В. Яга!1шап, "В!зоп: ТЬе гАСС-согпраг!Ые Рагвег бепегагог'*, Ьсгр://вплн.дпи.ого/во1Гнаге/1з1воп/вапиа1/. 10. 11.

Еаг!еу, 1., "Ап ей)с(епГ сопгехг-1гсе рагяи8 а18ог!1Ьш'*, Сотт. АСМ 13:2 (РеЬ., 1970), рр. 94 — 102. Еаг!еу, 1., "АшЫ8шгу аиг( ргесег)енсе !и лунгах нелспр!!оп", Асса 1п/Ьгтагиа 4:2 (1975), рр. 183 — 192. 12. ! 3, Ноуг(, В. И'., "Оп ашЫ8шгу ш рЬгаве-виисшге !ап8ла8ея", Соте. АСМ 5:1О (Ос!., 1962), рр. 526-534.

14. Ноуг(, К. Иг., тбупГасбс апа!ул!л апб орега!ог ргесебепсе", Х АСМ 10:3 (1963), рр. 316-333. строки; время работы этого алгоритма в общем случае — 0 (пв), но для однознач- ных грамматик оно сокращается до О (п ). 381 4.1 !. Список литературы к главе 4 15. бгипе, В апд С.

1 Н. )асоЬя, "А рго8гапипег-й!енса! у ЬЬ(1) рагяег 8епегаГог", Бо/очаге Ргасг/се апг/ Ехрег1епсе 18:1 ()ап., 1988), рр. 29-38. См. также Ьсср://чпгн.св.чп.п1/-сег1е1/1.1.реп.ЬГда1. ! 6. Ноаге, С. А. К., "К ерогг оп гйе Ейюп А!8о! !ганя! агог", Сотргаег Х 52 (! 962), рр. 127-129. 17. Норсгой, 1 Е., К. МоПчапЬ апд 1. О.

ЫПгпап, 1пггог/исггоп го А и!атаги ТЬеогу, йап8иа8ез, апг1 Сотригаг/оп, Адйзоп-%ея!еу, Воя!оп МА, 2001. !8. Ног)зоп, Б. Е. ег а1., "С()Р ЬАЬК Рагяег бепегагог !п )ача", доступно по адресу Ьсер: //чпеы2. св. спш. ес!и/рго3ессв/сор/. !9, 1п8еппап, Р. У,, "Рашш-Вас)гпз Гопп зп88ея1ей", Сотт. АСМ 10:3 (МагсЬ 1967), р. 137. 20. УоЬпяоп, Я. С., "брасс — Уег Апогйег Сошрйег Сошрйег*', Сошригш8 Яс!епсе ТесЬп(са! Керогг 32, Вей 1.аЬогагопез, Мштау Н!П, Ы1, 1975. Доступно по адресу Ьсер: //Ыповапх. согвр11екГоо1в.

пеГ/уасс/. 21. Каяапп', Т., "Ап ешс!епГ гесо8пйюп апд зупГах апа!уяя а!8опГЬш Рог сопГехГ1гее!ап8па8ея", АРСКЬ-65-758, А!г Рогсе СашЬг)фе КеяеагсЬ 1.аЬогагогу, Ведун), МА, 1965. 22. КппгЬ, Р. Е., "Оп 1Ье ггапз!айоп оГ!ап8па8ез антош 1ей го П8Ьг",!п~огтагюп апИ Сопгго1 8:6 (! 965), рр. 607-639. 23. Когеп)а)с, А.

1., "А ргасйса1 шеГЬод Гог сопяГгпсйп8 ЬК((г) ргосеязогз", Сотт. АСМ 12:!! (14оч, !969), рр. 613 †6. 24. Ьечч!я, Р. М. 11 апд К. Е. 81еагпя, "Бупгах-йгесгед ггапяг(ис!юп", ./. АСМ 15;3 (1968), рр. 465-488. 25. МсС!пге, К М., "ТМб — а яупгах-йгессег( сошр!!ег", Ргос. 20г6 АСМ /Чагl. СопЯ (1965), рр. 262 274. 26. Хаог, Р. ег а!., "КерогГ оп йе а18ог!ГЬгшс !ап8па8е А1.бО1 60", Сотт. АСМ 3:5 (Мау, 1960), рр. 299 — 314. См.

также Сотт. АСМ 6: ! (Лап., 1963), рр. 1-17. 27. Рагг, Т., "АХТЬК", Ьсср: //ичгчг. апс1г. окд/. 28. БсЬогге, 13. Ч., "Мега-П: а зупгах-опепсег! сошрйег ччпйп8 !ап8оа8е", Ргос. !9й А СМ /чаг!. СопЯ (1964), рр. 131.3-1-О1.3-11. ГЛАВА 5 Синтаксически управляемая трансляция В данной паве развивается затронутая в разделе 2.3 тема — трансляция языков, управляемая контекстно-свободной грамматикой. Методы трансляции из этой главы будут использоваться в главе 6 для проверки типов и генерации промежуточного кода. Эти методы применимы также при реализации небольших языков для специализированных задач; в данной главе приведен пример из полиграфии.

Мы связываем информацию с конструкциями языка, назначая атрибуты символу (или символам) грамматики, представляющему конструкцию (этот вопрос уже рассматривался в разделе 2.3.2). Синтаксически управляемое определение указывает значения атрибутов при помощи связывания с грамматическими продукциямн семантических правил. Например, транслятор инфиксных выражений в постфиксные может иметь следующие продукцию и правило: СЕМАНТИЧЕСКОЕ ПРАВИЛО Е.соде = Еысог2е~йТ.соде~~' + ' ПРОДУКЦИЯ Е=Е,+Т (5.1) Š— Е1 + Т (рплю '+ ') (5.2) По соглашению семантические действия заключаются в фигурные скобки. (Если фигурная скобка встречается в качестве грамматического символа, она заключается в одинарные кавычки — '(' и ')*.) Положение семантического действия Эта продукция содержит два нетерминала, Е и Т; индекс у Е1 предназначен для того, чтобы отличать Е в теле продукции от Е в заголовке.

И Е, и Т имеют атрибут сос(е, представляющий собой строку. Семантическое правило указывает, что строка Е.согде образуется путем конкатенации строк Е1 . соде, Т.сне и символа '+'. Правило явно указывает, что трансляция Е образуется из трансляций Е, Т и 'г', но реализация в ходе непосредственной работы со строками может оказаться неэффективной. В разделе 2.3.5 схема синтаксически управляемой трансляции вставляет в тела продукций программные фрагменты, называющиеся семантическими действиями, как в следующем случае: Глава 5.

Синтаксически управляемая трансляция в теле продукции определяет порядок, в котором выполняются действия. В продукции (5.2) действие выполняется в конце, после всех грамматических символов; в общем случае семантические действия могут располагаться в любом месте тела продукции. Сравнивая эти два варианта записи, можно заметить, что синтаксически управляемые определения более удобочитаемы, а следовательно, более подходят в качестве спецификаций.

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

Мы познакомимся с классом синтаксически управляемых трансляций, которые называются "1.-атрибутными трансляциями" (здесь (. означает "слева направо") и включают почти все трансляции, которые могут выполняться в процессе синтаксического анализа. Мы также изучим меньший класс — "Я-атрибутные трансляции" (здесь Я означает "синтезируемые"), которые легко выполняются при восходящем синтаксическом анализе. 5.1 Синтаксически управляемые определения Синтаксически управляемое определение (СУО) является контекстно-свободной грамматикой с атрибутами и правилами. Атрибуты связаны с грамматическими символами, а правила — с продукциями.

Если Х представляет собой символ, а и — один из его атрибутов, то значение а в некотором узле дерева разбора, помеченном Х, записывается как Х.а. Если узлы дерева разбора реализованы в виде записей или объектов, то атрибуты Х могут быть реализованы как поля данных в записях, представляющих узлы Х.

Атрибуты могут быть любого вида: числами, типами, таблицами ссылок или строками. Строки могут представлять собой, в частности, длинные последовательности кода, например кода на промежуточном языке, используемом компилятором. 5.1.1 Наследуемые и синтезируемые атрибуты Мы будем работать с двумя типами атрибутов для нетерминалов. 1. Синтезируемый атрибут для нетерминала А в узле )ч' дерева разбора определяется семантическим правилом, связанным с продукцией в Аг.

Заметим, что в качестве заголовка этой продукции должен выступать нетерминал А. Синтезируемый атрибут в узле )ч' определяется только с использованием значений атрибутов в дочерних по отношению к )У узлах и в самом узле й(. 385 5.1. Синтаксически управляемые определения Альтернативное определение наследуемых атрибутов Если позволить наследуемому атрибуту В.с в узле Х быть определенным с использованием значений атрибутов в дочерних узлах Х, а также в самом %, его родителе и братьях, то не нужны никакие дополнительные трансляции. Такие правила могут быть "имитированы" путем создания дополнительных атрибутов В, скажем, В.сы В.сз,....

Это синтезируемые атрибуты, которые копируют необходимые атрибуты узлов, дочерних по отношению к узлу В. Затем В.с вычисляется как наследуемый атрибут с использованием атрибутов В.сп В.сз,... вместо атрибутов дочерних узлов. На практике такие атрибуты требуются редко. 2.

Наследуеиый атрибут для нетерминала В в узле Ж дерева разбора определяется семантическим правилом, связанным с продукцией в Ж. Заметим, что нетерминал В должен участвовать в продукции в качестве символа в ее теле. Наследуемый атрибут в узле М определяется с использованием значений атрибутов в родительском по отношению к Х узле, в самом узле Х и дочерних узлах его родительского узла ("братьях" )У). Наследуемые атрибуты в узле )У не могут определяться через атрибуты дочерних по отношению к Х узлов; синтезируемые же атрибуты в узле )У могут определяться через значения наследуемых атрибутов в самом узле Х.

Терминалы могут иметь синтезируемые, но не наследуемые атрибуты. Атрибуты терминалов имеют лексические значения, придаваемые им лексическим анализатором. В СУО не существует семантических правил для вычисления значений атрибутов терминалов. Пример 5.1. СУО на рис. 5.1 основано на знакомой нам грамматике для арифметических выражений с операторами + и *. Оно вычисляет выражения, завершающиеся ограничивающим маркером и. Каждый нетерминал в СУО имеет единственный синтезируемый атрибут га1. Мы также считаем, что терминал п181т имеет синтезируемый атрибут 1ех а1, представляющий собой целое значение, возвращаемое лексическим анализатором. Правило для продукции 1, Ь вЂ” Е и, устанавливает Ьюа1 равным Ела!, которое, как мы увидим, равно числовому значению всего выражения.

Продукция 2, Š— Е~ + Т, также имеет одно правило, которое вычисляет атрибут ка! заголовка Е как сумму значений Е~ и Т. В любом помеченном Е узле Ж дерева разбора значение га1 для Е представляет собой сумму значений ка1 дочерних по отношению к Ж узлов с метками Е и Т. 386 Глава 5. Синтаксически управляемая трансляция Рнс. 5.1. Синтаксически управляемое определение простого настольного калькулятора Продукция 3, Š— Т, имеет единственное правило, которое определяет значение из! для Е как значение того же атрибута у дочернего узла Т. Продукция 4 подобна продукции 2: ее правило просто умножает значения атрибутов в дочерних узлах вместо их сложения.

Правила продукций 5 и 6 копируют значения атрибутов дочерних узлов, так же, как и в продукции 3. Продукция 7 присваивает атрибуту Ела! числовое значение токена 618зт, возвращаемое лексическим анализатором.о СУО, которые включают только синтезируемые атрибуты, называются $-атрибутньгми определениями; СУО на рис. 5.! обладает данным свойством. В Я- атрибутном СУО каждое правило вычисляет атрибут нетерминала в заголовке продукции, используя атрибуты, полученные из тела продукции. Для простоты в примерах этого раздела используются семантические правила без побочных действий. На практике бывает удобно допускать в СУО небольшие ограниченные побочные действия, такие как печать результатов вычислений настольного калькулятора или работа с таблицей символов.

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

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

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