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

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

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

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

(А + В) С = А + (В + С)). Целочисленная машинная арифметика также ассоциативна. В некоторых случаях, правда, сложение с плавающей точкой не является ассоциативным. Предположим, что число с плавающей точкой хранится с точностью до семи цифр, и нужно сложить одиннадцать чисел, одно из которых равно 1О', а остальные равны 1.

Если меньшие числа (единицы) будут по одному добавляться к большему, то последнее они никак не изменят, поскольку меньшие числа приходятся на восьмой разряд большого числа. Впрочем, если сначала выполнить сложение всех малых чисел, а результат добавить к большому, то результат с точностью в семь знаков составит 1.000001'1О . Вычитание и деление не ассоциативны как в математике, так и в компьютерной технике. Следовательно, правильная ассоциативность может оказаться существенной для выражений, содержащих какое-либо из указанных действий.

3.3. Формальные методы описания синтаксиса З.З.1.9. Ассоциативность операторою Еще одним интересным вопросом, касающимся грамматик выражений, является вопрос, верно ли описана ассоциативность операторов; т.е. в правильном ли порялке появляются соседние операторы, имеющие одинаковый приоритет, на деревьях синтаксического анализа выражений, содержащих несколько таких операторовр Ниже представлен пример такого оператора присваивания: А:В+С+А <ори<влить> <идентифмзтор> = <вмражение> <вмражение> т <терм> <множнтель> <терм> <множитель> <идентификатор> ! ! <идентификатор> д ! с <множитель> <идентификатор> в Рнс.

3.4. Дерево силтаьсичсскаса аники>а ттрвдтоотсенилА:= В + С е А, т<ттюслтриртю- мтве ассаяиативнаслть ста>к<влил <множитель> -> <показатель> *" <множитель> <показатель> <показатель> а ( <выражение> ] ! <идентификатор> мотут использоваться для описания оператора возведения в степень как правоассопиа- тнвного оператора.

3.3.1.10. Одновномное гродддлотнко дгве опероторо Хл'-п)зезз-е1ее Повторим правила формы БНФ, представленные в разделеЗ.ЗА.З, лля отдельной формы оператора хк-с)твп-в1вв: <условный оператор> -ь 1к <логическое выражение> Фавн <оператор> 136 Глава 3. Описание синтаксиса и семантики Если в правиле формы БНФ левая часть содержится в начале правой, правило называется леворекурсивным Пейгесогзве).

Такая левая рекурсия устанавливает левую ассоциативность. Например, левая рекурсивность правил грамматики листинга ЗА приводит к ее левой ассоииативиости по отношению к умножению и сложению. В большинстве языков, имеюших такую возможность, оператор возведения в степень является правоассоциативным. Для указания на правоассоциативность используется правая рекурсия. Грамматическое правило называется праворекурсивным (гтйптгесигзттте), если его левая часть появляется в правом коппс его правой части. Например, правила ьт <логическое выра.ечиа> Еукеп <опесатор> е1ве .опесатор> Если, полтимо этого, у нас есть правило <оператор> -> <условии>1 сператос>, то наша грамматика неоднозначна.

Простейшая сентенциальная форма. илли>стрирчошая эту неоднозначность. имеет вид: йк' <логическое выражение> Еттеп йк' <логическое выраже"ие> Еутеп <оператср> е1ве <оператор> Приведенные на рис. 3.5 два дерева синтаксического анализа показывают неоднозначность этой формы высказывания. Пралтическне проблемы, связанные с проблемой оператора е1ве, подробно рассматриваются в главе 7.

<условный атщитор> И <полете<кое выражение> квеп <опервтор> е1ее <опервтор> <условный оператор> ы <логическое выражение> сьев <опервтор> <условный опервтор> ке <логическое выражение> кьео <опервтор> <условный оператор> те <логическое вырвжение> кьеп <оператор> е1ее <опервтор> Рис. 3.5.

рви рагаычных дерева сантакслческого анагвза для одной и я|ой же фортгы выскаэываггтнт Разработаем теперь однозначную грамматику, описыааюшую данный оператор И. В большинстве языков правило для конструкций йЕ состоит в следуюшем: оператор е1ве (если он есть) соответствует ближайшему предыдуцтему оператору еутеп. для которого такое соответствие еше не установлено. Следовательно. ме кду оператором с<тел 3.3. Формальные методы описания синтаксиса и соответствующим ему оператором е1ве не может существовать оператора дк без оператора в1ве. Таким образом, в ланной ситуапии мы должны различать операторы, для которых соответствие найлено, и те, для которых оно не найдено.

В последнем случае операторами, для которых соответствующая пара не найдена, будут операторы е1ее, которых будет меньше, чем существующих операторов дк, при этом для остальных операторов соответствие должно быть найдено. Проблема описанной выше грамматики заключается в том, что в ней все операторы считаются синтаксически эквивалентными, т.е. совпадающими между собой. Для отражения существования различных видов операторов должны использоваться различные абстракнии, или нетерминальные символы. Однозначная грамматика, основанная на описанных идеях, привелена ниже: <оператор> -э <согласованное выражение> (<несогласованное выражение> <согласованное выражение> -> дк <логическое выражение> креп <согласованное выражение> е1ее <согласованное выражение> ! любое выражение, не содержащее оператор 11 <несогласованное выражение> -э йх <логическое выражение> сэзеп <оператор> дк <логическое выражение> сЬеп <согласованное выражение> е1ве <несогласованное выражение> Если использовать эту грамматику, то лля предложения, приведенного на рис.

3.5, существует только одно возможное дерево синтаксического анализа. 3.3.2. Расширенная форма БНФ Из-за некоторых незначительных неудобств, присущих форме БНФ. в нее были внесены некоторые дополнения. Версии формы БНФ. лля которых таких дополнений было сделано больше всего. стали называться расширенными формами БНФ, или просто РБНФ (ЕВЕР— ех~епдед ВХР), хотя сами эти формы не совсем идентичны.

Данные расширения не увеличивают описательную силу формы БНФ; они всего лишь увеличивают удобство ее чтения и использования. Различные версии формы РБНФ, как правило, включают три дополнения. Первое из них обозначает необязательную часть правой стороны правила, которая помещается в квадратные скобки. Например, оператор выбора языка С может быть описан следующим образом. <выбор> -+ дх ( <выражение> ) <оператор> [е1ве <оператор>) Без использования квадратных скобок синтаксическое описание данного оператора потребовало бы двух правил. Вторым дополнением является использование в правой части правила фигурных скобок, указывающих на то, что заключенная в скобки часть может повторяться неограниченное число раз нли вообще пропускаться.

Это дополнение позволяет создавать списки с помощью олного правила, не используя рекурсию и лополнительное правило. Например, список идентификаторов, разделенных запятыми, может быть описан так: <список идентификаторов> -ь <идентификатор> (, <идентификатор>( Глава 3. Описание синтаксиса и семантики Это правило представляет собой замену рекурсии формой подразумеваемой итерации; заключенная в скобки часть может повторяться любое число раз. Третье обычное дополнение связано с многовариантным выбором.

Когда из группы должен выбираться один элемент, варианты выбора помешаются в круглые скобки и разделяются оператором ИЛИ ( 1 ). Например, следуюшее правило описывает оператор хок языка Разса1. <оператор цикла> -э кок <переменная> := <выражение> (со 1 с(оипео) <выражение> <1о <оператор> Повторим, что лля описания этой структуры потребовалось бы два правила формы БНФ. Квадратные, фигурные и круглые скобки в дополнениях формы РБНФ являются метасимволами. Это означает, что они являются способами обозначения, а не терминальными символами в синтаксических объектах, которые они помогают описывать. Если эти метасимволы являются также терминальными символами описываемого языка.

то последние должны подчеркиваться отдельно. форма Внаи <выражение> ь <выражение> ~ <терм> <выражение> — <терм> <тесм> <терм> -з <терм> * <множитель> <терм> / <множитель> 1 <множитель> форма РБНФ: <выражение> ~ <терм> ((+1-) <терм>1 <терм> -э <множитель> ((*1/) <множитель>) Некоторые версии формы РБНФ допускают приписывание к правой фигурной скобке числовых верхних индексов, чтобы указать на верхний предел числа возможных повторов фрагмента, заключенного в скобки.

В некоторых версиях также используется верхний инлекс+ лля указания на олно нлн несколько повторений. Например, правила <составной оператор> -з Ьеадп <оператор> 1<оператор>1 впа <составной оператор> -з Ьеазп (<оператор>)' вос1 эквивалентны. 3.3.3. Синтаксические графы Граф (стара) представляет собой набор узлов, некоторые из которых соелиняются линиями, называемыми ребрами. Ориентированный граф(гйгес(ед бгарй) — граф с ориентированными ребрами; т.е. на одном из их концов имеется стрелка, указывающая направление.

Ограниченной формой ориентированного графа является дерево синтаксического анализа. На ориентированном графе представляется информация о правилах форм БНФ и РБНФ. Такие графы называются синтаксическими графами (зуп(ах ргар(зз), синтакси- 139 3.3. Формальные методы описания синтаксиса ч«кими диаграммами или синтаксическими схемами. Для каждой синтаксической единицы используется огдельный синтаксический граф, так же. как нетерминальиый символ в грамлтатике.

Для представления терминальных и нетерминальных символов правой части грамматического правила на синтаксическом графе используются различные типы узлов. Прямоугольные узлы содержат название синтаксической единицы (нетермттнального симво.ю), Терлтинальные символы находятся в кругах или эллипсах. На рис. 3.6 показан синтаксис оператора хк' языка Аба в форме РБНФ и в форме оингоксического графа. Отметим.

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

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

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

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