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

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

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

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

Затем во внутреннем блоке идентификатор 1 по. средством сил!волов (аЬе( [1:2] и йо!о [1:4] соответственно объявлен и используется как метка (что законно), а ндензнфикатор 2 посредством символа а [2:3] используется как переменная. На рис. 10.9 приведено дерева разбора с таблицами, связанными с каждой вершиной. Т) Понятие грамматики свойств можно обобщить. Например, (1) отображение р можно сделать иедетерминированиым, т.

е. дапуститзм что р (р, ю) — аодмножество множества У, (2) можно не предполагать наличия нейтрального свойства, (3) можно наложить ограничения на класс таблиц, связаниык с символами; например, можно ие допускать наличии полностью нейтральных таблиц. Некоторые теоремы о грамматиках свойств в этой более Общей формулировке изложены в упражнениях. Объявленные идентификаторы передаются в (список Объявлений>. (11) (список объявлений) е Р (25, 5! Здесь та же ситуашзя, что и в правиле (9).

Теперь приведем пример построения таблиц снизу Вверх на дереве разбора. Таблицу, которая индексу 1, присваивает свойство о для 1щ ]щ и, а всем остальным ийдексалз--нейтральное свойство, будем обозначать [Г,:ом г„:ом ..., („:Р„]. 303 19.3.3. Ревннзацня грамматик свойств Рассмотрим реализацию грамматики свойств для случая, когда входная К<)грамматика допускает детерминированный восходящий разбор с помощью алгорнтматипа „перенос — свертка", Нисходящий разбор или применение других алгоритмов раабора, Изложенных а зтай книге, приводит к тем же проблемам согласования при конструировании таблиц, что и при построении цепочек переводов в ОУ-переводе.

Поскольку их решение а основном то же, чта и в гл. 9, мы рассмотрим только восходящий разбор. В нашей модели компилятора вход для лексического анализатора не имеет таблиц, связанных с его терминалами. Будем предполагать, что лексический анализатор сигнализирует о том, является ли выбранная лексема идентификатором или зв !О э гп»мм»тики сВОйстВ «ряен > беде и < епиепя ерэпрпенки" ~! . Еее!в »покоя пбъяряпное> <еппопя опероюорор> <опере ор> [гиЯ [из) ! ! соперопюр.. епипоя переменюю. [2:2! [1'х! с еэон> с опиши мромоннмк.

а Ьп~рю <оппоон олопляояео> <щоео» ыороюоргл мюг е р:г,г;з[ Б:г,г:21 Н:4) ! ! <опере<яр -"О)'О !эЬе! сспимнппремеяими. селищ»перемен»и». и Пм! Ьючй <епнооя око»ляпкин> < оппппн пперпюорм> е и [1'1, 2:11 П:3, 2'3) е сгппщн опероюорпи опере»юр. Рюс. !0.9. Дерееп Эеэблра с гпбпияаюя. нет. Таким образом, каждая лексема, будучи входом прн раз. боре, имеет одну нз двух таблиц — либо полностью нейтральную, либо таблицу, в которой один индекс обладает не иейтральпым свойством. Поэтому мы будем считать, что еще необработанный вход вообще не имеет таблиц, и онн строятся, когда символ передается в магазин.

Будем также предполагать, чта таблицы не влияют на разбор, пе считая случая ошибки, когда разбор надо прервать. Таким образом, механизмом разбора будет нормальный механизм типа „перенос †сверт", причем к каждому символу магазина будет добавляться указатель на таблицу свойств этого элемента. Пусть в верхушке магазина находится [В, Т,1[С, Те[ и выполняется свертка в соответствии с правилом А ВС.

Наша задача заключается в том, чтобы быстро и проста по Т, и Т, построить таблицу, связанную с А. Поскольку бзльш!!яство индексов в таблице отображается в нейтральное свойс!во, желательна помещать в нее только те индексы, которые обладают не нейтральным свойством. Схема обработки таблиц будет реализована так, чтобы все операции по обработке таблиц и запросы о свойстве данного индекса можно было выполнить эа время, фактически пропорциональное числу операций н запросов. Естественно предположи!ь, что число запросов в таблицы пропорциональна длине входа. Предположение корректно, если разбор детерминированный, поскольку число выполняемых сверток (а следавател!и!о, и число слияний таблиц) в этом случае пропорционально длине входа. Б то же время разумный алгоритм перевода нс дошкен осуществлять запросы свойств более чем фиксированное число раз на одну свертку.

1[алее мы будем считать, что в нашей грамматике свойств входная КС-грамматика имеет нормальную форму Хамского. Обобщения алгоритма вынесены в упражнения. Будем предпо. лагать, что в любой таблице свойств каждый индекс (идентификатор), обладающий не нейтральным свойствам, занимает позицию в таблице расстановки, и что можно создавать структуры данных иа элементарных единиц, называемых ячейками. Каждая ячейка имев! форму ДАННОЕ! .. ДАННОЕт ... УКАЗАТЕЛЕИ ... УКАЗАТЕЛЬ» т.

е. состоит из одного или более полей, каждое иэ которых может содержать некоторые данные илн указатель на друг)ю ячейиу. Я чейки понадобятся при построении связных списков ГЛ. 1 ° . ОРГАНИЗАЦИЯ ИНФОРМАЦИИ 10 т. ГРАИИАтики сэоистэ Предположим, что У состоит из й свойств. Таблица свойств, связаиаая с символам грамматики, расположенным в магазине, представляется структурой данных, состоящей не более чем из А снискал свойств и из списка пересечений. Каждый список свойств начинается с заголовка слиасо свойств. Список пересечений начинается с зпголоело списка лересечеиий.

Эти заголовки связаны так, как зто показано иа рис. !0.10. 3 темене могпгнне Унпгпае в дпгонодон епщнп пелеещеннр Зогонодно слоеной едонсмд Рпс. 10.10, Элеие«п иагплппа сп с«руктурпй, прело«леле~лжей тлблппу свойств. Заголовок списка свойств имеет три поля: СВОЙСТВО РАЗМЕР СЛЕДУКУШИЙ ЗАГОЛОВОК Заголовок списка пересечений абдер«кит только указатель на первую ячейку списка пересечеаий. Каждая ячейка синопов свойств и списков пересечений называется индексной ячеикой. Итщексиая ячейка состоит из четырех полей с указателями: Предположим, что Т вЂ” таблица свойств, связанная с символом в магазине.

Тогда Т будет представляться р списками свойств, где у — число различных свойств в Т, и одним списком пересечений. Для каждого индекса в Т, обладающего не нейтральным свойством /, есть одна вндексная ячейка в списке свойств, на. чинающемся с заготовка списиа свойств для свойства 1.

Индексные ячейки, обладающие одинаковым свойством, объ. еш1нецы в дерево'1, корнем которого служит заголовок для этого свойства. Первый укаватель в индексной ячейке †э указатель па ее прямого предка в этом дереве. Если индексная ячейка принадлежит списку пересечений, то вторым указателем в ней является указатель на следующую ячейку списка пересечений. Если ячейка не принадлежит списку пересечений, то этот указатегш пуст. Два остальных указателя связывают индексные ячейка, представляющие один и тот же индекс, но в различных таблипал свойств. Предположим, что ЗТеуТ«ВТ«п прелставляет такую цепочку таблиц я магазине, что каждая из таблиц Т„Т, и Т, содержит индекс «с ие нейтральным свойством и все таблицы в а, В, у и б дают индексу ! нейтральное свойство.

Если ближе всех к верхушке магазина расположена таблица То то индексная ячейка С„предсгавлшощая 1' в Т„будет содержать в третьем поле указатель на позицию таблицы имен для «. Четвертое поле в С, содержит указатель на ячейку С, в Т„представляющую !. В С, третье поле содержит указатель на С„а четвертое поле содержит указатель на ячейку в Т„ представлявшую !. Таким образом, на индексные ячейки налагается дополнительная структура: все индексные ячейки, предстаоля«ощие один и тот же индекс во всех таблицах в магазине, помещаются в двунаправленный списан, пачииающийся с элемента таблицы расстановки для этого индекса Ячейка размещается в списке пересечений таблип тогда и только тогда, когда какая-нибудь таблица, расположенная над ней в магазине, ииеет индексаую ячейку, представляющую тот же индекс. В приведенном выше примере ячейка С, будет в списке пересечение для Т,.

Пример 1О.!О. Предположим, что в магазине находится символы грамматики В и С, причем С вЂ” в верхушке магазина. Пус«ь с этими злементамм связаны соответственно таблицы Т,.— !! о,, 2'о„б:о„, 6:о,, В:о«Д Т, =2«о„З; о„й«о„б«о„у: о„й«о,1 Возможная реализация этих таблиц показана иа рис. 10.11. Кружочка««и указаны инлексные ячейки. Чнсло внутри кружочка — это индекс, представляемый ячейкой. Связи списка пересечений указаны пунктиром. Отметим, что список пересечений самой нервней таблипы пуст по определению, а список пересечений таблицы Т, состоит из иидексныл ячеек для индексов 2, «! Структур» этого дерева будет ясзл ип ачгпритил 1О.З. — Прим лонго. зау ГЛ М, ОГГЛНИЗЛЦИЯ ИНЕОРМЛЦНИ м г гелммлтнки сзапств 5 н 8.

Ссылки на таблицу расстановки и на вчейкн, предсгап. лающие одни н тот же индекс в прутик таблицах, указаны шгриховымн линиями. Во избежание путаницы оип показаны только для индексов 2 и 3. Е) мигигй )айииеи имен Ряс гп.г!. Рлллизлпия тлблнп свойств. 1(рсдположим, что в процессе разбора нада в магаанне свериугь ВС в Л. Надо вычислить таблицу Т для г) по таблицам 7', и Т, для В и С соответственно.

Поскольку С вЂ” верхний силгвол магазина, список пересечений таблицы Т, содержит в точности те гшдексы, которые обладают ое цейтральаым свойствам в сбспх таблипах Т, и Т, (отсюда и название „список пересечений"). Эти индексы мы рассмотриы позднее. Индексы, не принадлежащие списку пересечений 7'„обладают нейтральным свойствам по крайней мере в одной из таблип Т, или Т„. Таким образом, ик свойство в Т есть функция только зов их одного не нейтрального свойства.

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

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

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

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

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