Главная » Просмотр файлов » Р.У. Себеста - Основные копцепции языков программирования (2001)

Р.У. Себеста - Основные копцепции языков программирования (2001) (1160794), страница 39

Файл №1160794 Р.У. Себеста - Основные копцепции языков программирования (2001) (Р.У. Себеста - Основные копцепции языков программирования (2001)) 39 страницаР.У. Себеста - Основные копцепции языков программирования (2001) (1160794) страница 392019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

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

Если все полобные правила типов языка )ача точно опрелелить в рамках формы БНФ, то грамматика станет слишком громоздкой, поскольку ее размер определяет и размер программы синтаксического анализа. Обычное правило обязательного объявления переменных не может быть определено в форме БНФ. Другой пример: если за оператором епс( подпрограммы, написанной на языке Аоа. следует некоторое имя. то это имя должно совпадать с именем подпрограммы.

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

Статическая семантика называется так потому, что анализ, требуемый для проверки этих условий, должен быть выполнен во время компиляции. Из-за с) шествования проблемы описания статической семантики с помощью формы БНФ для решения этой задачи было разработано множество более люшных механизмов. Разработка одного из таких механизмов.

описывающего синтаксис и статическую семантику программ и названного атрибутивнылш грамматиками, была выполнена Кнутом (Клайн 1968а). Обсуждение линамической семантики будет провелено в разлеле 3.6. 3.5.2. Оснояные понятия Атрибутивными грамматиками называются грамматики, к которым были добавлены атрибуты, атрибутнвные вычислительные функции и преликативные функции. Атрибут ы (аппЬшез), связанные с символами грамматики. подобны переменным в том смысле, что им,могут присваиваться значения.

Атрнбутнвные вычислительные функции (апПЬи(е сошрцгайоп Гцпс11опз), иногда называемые семантическими функциями, связаны с грамматическими правилами вычисления значений атрибутов. Предикативные функции (ргеб(саге Гцпс1(опз), устанавливающие некоторые синтаксические правила и правила сзаз ической семантики языка, связаны с грамматическими правилами. 3.5.3. Определение отрнбутняных грамматик Атрибутивными называются грамматики.

имеющие следующие дополнительные свойства. ° С каждой грамматикой связывается символ Х. обозначающий набор атрибутов А(Х). Набор А(Х) состоит из двух непересекающихся множеств 8(Х) и 1(Х), называемых синтезированными и унаследованными атрибутами, соответственно. Синтезированные атрибуты (зупгйез(ген апНЬцгез) используются лля передачи семантической информации вверх по дереву синтаксического анализа, тогда как Глава 3.

Описание синтаксиса и семантики унаследованные атрибуты ()пйепгед апг(Ьшез) используются для передачи семантической информации вниз по дереву. ° Правило, связанное с каждой грамматикой, является набором семантических функций и, возможно, пустого множества предикативных функций, определенных на атрибутах символов в грамматическом правиле. Для правила Хе ~ Х, ...Х„синтезированные атрибуты правила Х, вычисляются семантической функцией вила $(Хе) = ((А(Х~), ..., А(Х„)).

Таким образом, величина синтезированного атрибута узла дерева синтаксического анализа зависит исключительно от значений атрибутов дочерних узлов этого узла. Унаследованные атрибуты символов Хг 1<) <л (в правиле, приведенном выше) вычисляются семантической функцией вида 1(Х;) ((А(Х,),..., А(Х„)). Таким образом, значение унаследованного атрибута узла дерева синтаксического анализа зависит от значения атрибута родительского узла и значений атрибутов узлов того же уровня.

Отметим, что во избежание порочного круга унаследованные атрибуты часто ограничиваются ф>нкцией вила ИХ,) =((А(Хо),- А(Х)ч)). Такая форма предотвращает зависимость унаследованных атрибутов от самих же себя или от атрибутов, находящихся правее на дереве синтаксического анализа. Предиквтивная функция имеет вил булевского выражения, заданного нв множестве атрибутов (А(Хе), ..., А(Х„)). Единственными выводами, разрешенными в рамках атрибутивной грамматики, являются те, в которых все предикаты, связанные с каждым нетерминальным символом, истинны. Ложное значение предикативной функции указывает на нарушение синтаксических правил или правил статической семантики языка. Дерево синтаксического анализа атрибутивной грамматики базируется на грамматике формы БНФ, лежащей в основе данной атрибутивной грамматики.

с. возможно. пустым множеством значений атрибутов, связанных с каждым узлом. Если вычислены значения всех атрибутов дерева синтаксического анализа, то оно называется полностью определенным (бзИу аппЬцгед). Хотя на практике подобным образом поступают далеко не всегда, удобно полагать, что значения атрибутов вычисляются после создания дерева синтаксического анализа. З.ЗА.

Внутрвннив атрибуты Внутренние атрибуты (1пп(пз(с а[пЬц[ез) — это синтезированные атрибуты узлов, значения которых определяются вне дерева синтаксического анализа. Например. тип экземпляра переменной в программе может поставляться из таблицы илентификаторов, используемой для хранения имен переменных и их типов. Содержимое таблицы идентификаторов определяется выполненными ранее операторами объявления. Предположим, что изначально было создано дерево с неопределенными значениями атрибутов.

и нам нужно их определить. При этом единственными атрибутами, имеющими значения. являются внутренние атрибуты узлов. Поместив значения внутренних атрибутов на дерево синтаксического анализа, мы сможем использовать семантические функции для вычисления значений остальных атрибутов. 3.5. Атрибутивныв грамматики 3.5.5. Примеры атрибутивных грамматик Рассмотрим следующий фрагмент атрибутивной грамматики, описывающий правило, заключающееся в том, что нмя, следующее за оператором епа в конце процедуры языка Аба, должно совпадать с именем самой процедуры.

Атрибут строки <имя про)зедуры>, обозначенный как <имя процелуры>.строка, является реальной строкой символов, которая может обнаруживаться лексическим анализатором. Отметим, что при наличии в синтаксическом правиле атрибутивной грамматики нескольких нетерминальных символов, последние заключаются в скобки лишь с целью их различения. Ни индексы, ни скобки частью описываемого языка не являются. Синтаксическое правило: <определение процедуры> -~ ркооес[ике <имя процедуры>[1] <тело процедуры> вас[ <имя процедуры>[2]; Семантическое правило: <имя процедуры>[1].строка<имя процедуры>[2].строка Ниже показано, как с помощью атрибутивной грамматики проверить правила совместимости типов простого оператора присваивания.

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

Значение выражения, в котором фигурируют операнды различных типов, всегда имеют действительный тип. Тнп значения выражения с операндами одного типа совпадает с типом операндов. Тип левой части присваивания лолжен совпадать с типом правой части. Таким образом, типы операндов правой части мокнут смешиваться, но присваивание коррелтно только в том случае, если его левая часть и значение, полученное при вычислении правой части, имеют один н тот же тип.

Атрибутивная грамматика определяет описанные семантические правила. Синтаксическая часть атрибутивной грамматики, описывающей ланный пример, имеет слелуюший внд: <лрисваивание> -з <переменная> := <выражение> <выражение> -з <переменная> ь <переменная> <переменная> <переменная> -з А[В[С В следующих абзацах описываются атрибуты лля нетерминальных символов данной атрибутивной грамматики. Флкпшческпй гпип Синтезированный атрибут, связанный с нетерминальными символами <переменная> н <выражение>.

Он используется для запоминания фактического типа (в нашем примере целого или действительного) переменной или выражения. Для переменной фактический тип является внутренним. Для выражения он определяется на основе типов дочернего узла нли узлов нетерминального символа <выражение>. Ожидаеный аппп Внутренний атрибут, связанный с нетерминальным символом <выраженне>.

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

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

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

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