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

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

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

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

Структуры управления на уровне операторов -;заторов. подлежащая выбору, может находиться буквально в любом месте про— ":иного модуля, содержащего оператор СО ТО. Не существует синтаксической ин. ляции оператора СО ТО и выбираемых последовательностей операторов, которым . делает управление. Поскольку ответственность за размещение операторов СО ТО в - е выбираемых сегментов несет пользователь, выполнение этой конструкции может вать передачу потока управления любому количеству выбираемых сегментов про...чны, Проблема состоит в том, что ошибка, заключающаяся в пропуске одной из этих .

ьсй программы. компилятором не обнаруживается. Даже когда выполнение многоваз иного сегмента необходимо, увеличивается сложность структуры, нанося большой .ро читабельности программы. Это проектное решение является компромиссом меж-.итабельностью и небольшим увеличением гибкости программ. Войти в арифметический оператор 1 Г можно через любой из его операторов в любом ;; те программы. !!ервые два действительно многовариантных оператора ветвления появились в языке 'КТКА!ч' !.

Подобно арифметическому оператору 1Г, они входят во все версии языка ~КТКАН. Вычисляемый оператор СО ТО в языке ГОКТКАМ имеет следующий вид: ТО (метка 1, метка 2, ..., метка и), выражение ::= ь выражение имеет целое значение, а метки представляют собой метки операторов в .- грамме, Семантика этого оператора состоит в том. что значение выражения исполье гся дяя выбора метки, которой следует перелать управление. Первая метка связана со зчением, равным !, вторая метка — со значением. равным 2, и так далее.

Если значе- е выходит за пределы диапазона от 1 до и, оператор не выполняет никаких действий. а;проенный механизм лля обнаружения ошибок не предусмотрен. :!рутой ранний многовариантный оператор ветвления в языке ЕОКТКА!Ч вЂ” назначен", й оператор СО ТΠ— по форме напоминает вычисляемый оператор СО ТО. Оба эти -юговариаитные операторы ветвления имеют те же недостатки, что и арифметический -ератор 1Г. а именно; отсутствие инкапсуляции и возможность нескольких входов.

Кроме го. ничто не ограничивает поток управления одним выбираемым сегментом. 7.3.2.3. Современные многовариантные олероторы ветвления Усовершенствованный вид операторов многовариантного ветвления. названный опегзтором сазе, был предложен Хоаром и включен в язык АЕООц-% (%!по апд Ноаге, : чбб). Эта структура инкапсулирована и имеет один вход. Для каждого выбираемого или ;вставного оператора предусмотрены неявные переходы, ведущие в одну точку в конце всей конструкции, что ограничивает поток управления через структуру одним выбираечыч сегментом.

Общий вид хоаровского многовариантного оператора ветвления приведен ниже: саве целое выражение ок' Ьедхп оператор 11 оператор и ешз 313 7.3. Оперсторы ветвления Здесь операторы могут быть либо отдельными, либо составными. Выполняемым является только олин оператор, выбираемый по значению выражения.

Значение, равное 1, соответствует первом> оператору и так далее. Оператор сава языка Рааса) очень похож на соответствующий оператор языка АЬОО! -Ф, за исключением того, что все выбираемые сегменты помечены метками. Он имеет следующий вид: саве выражение ок' список констант 1: оператор 1; список констант и: оператор пг а Злесь выражение имеет порядковый тип (целый, булевский, символьный или перечислил1ый). Как и в большинстве (но не во всех) управляющих операторах языка Рааса!, выбираемые операторы могут быть либо отдельными, либо составными. Семантика оператора саве языка Рааса) заключается в следующем: вычисляется выражение, и его значение сравнивается с константами в списке констант. Если соответствие найдено.

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

О таких выражениях говорилось, что они приводят к неопределенным рез> льтатам. Такая неопределенность, однако, означает, что данная проблема была просто проигнорирована. Более позднее описание А)чб!7!ЕЕЕ Рааса! Яапбагб (Еебйагб, 1984) было конкретнее; в нем указывалось, что такие выражения являются ошибочными, предположительно подлежащими распознаванию и должны вызывать сообщения об ошибках во время выполнения кода, сгенерированного компилятором языка Рааса!. В настоящее время многие диалекты языка Разса! включают в себя условный оператор. который подлежит выполнению, если значение выражения не принадлежит ни одному нз списков констант в операторе саве, как показано ниже: саве 1пс)ех ок' 1, 3: Ьеалп оао:= аоо + 1; асаос!г):= ацвосс! + 1поех ег.с); 2, 4: Ье9>п ечеп := ечеп +1; Глава 7.

Структуры управления на уровне операторов вцвечеп := вовечеп + 1пс(ех епс( е1ве нглсе1п('Ошибка в операторе саве, 1пс(ех =', 1пс(ех] епс( Как только значение переменной 1пс(ех выйлет за пределы диапазона от 1 до 4 при э .полнении оператора саве, будет выведено сообщение об ошибке. Отметим.

что нет никакой необходимости использовать оператор е1ве исключи-в.:ьно для обработки ошибочных ситуаций. Иногда он подходит и для обработки нор" 'зьных условий, а операторы севе — наоборот, лля обработки необычных условий. Операционная семантика представляет собой эффективный способ описания семан- ~кн некоторых управляющих конструкций. Для этой цели расширим операшюнную сечнтику, введенную в главе 3, включив в нее операторы присваивания с такими обшил~и ьыражениями, как кНБ. Будем также использовать английские обозначения лля некотогых операторов.

Такие описания будут появляться в скобках. В заключение отметим. что "ы позволяем включать в операционную семантику операторы вывода из того языка, ко-. рый она описывает. Описание операционной семантики предыдущего оператора севе дано ниже: (Г 1пс)ех = 1 йо(о опе С]згее (з 1пс)ех = 3 яо(о опе г]згее Ы 1пг(ех = 2 яо(о Сно моиг !з 1пбех = 4 ло(о гно Еоцг нгдге1п('Ошибка в операторе саве, 1пс(ех = ',1пс(ех) йо(о оцг =пе г]згее: осЫ: = ос]с( + 1) вцввос(с(:= вцввос( = 1пс(ех фо(о оцг =ио йоцг: ечеп := ечеп + 1 вцвечеп := вцвечеп + 1пс(ех =цг: Структура конструкции вндксЬ многовариантного ветвления в языке С, входящей также и в языки С++ и 1вча, относительно проста. Ниже представлен ее общий вид: вмдсоЬ (выражение] ( саве выражение константа 1: оператор 1; саве выражение константа и: оператор -.; [6егеи1с: оператор и+1) Здесь управляющее выражение и выражения-константы имеют целый тнп.

Вьюираемые операторы могут быть последовательностями операторов, составиыкш операторами или блоками. Оператор вмлвс]з инкапсулирует выбираемые сегменты кода, подобно оператору саве языка Разов!, но он не запрешает наличия нескольких входов и не предусматривает неявных переходов в конец сегментов кода. Это позволяет пропускать поток управления 7.3. Операторы ветвления через несколько выбираемых сегментов во время одного выполнения оператора ЗикгСЬ. РаССМОтрИМ СЛЕЛуЮШнй ПрИМЕр. ПОХОжИИ На ПРИВЕЛЕННЫй ВЫШЕ ПрИМЕр ИС- пользования оператора сазе в языке Рааса): 1 г1с)е х ) зиьгсЬ ( саве 1 сазе 3 ос)с) += 1г аишос)с) ' 1пс)ех) Ьгеай; сазе 2: саве 4: ечеп += 1; вшаечеп '= гпс)ехг Ьгеа)с; рг1пгй("Ошибка в операторе зидгоЬ, 1пс)ех = сс)М", с)екаи1 ' пс)ех); ) Иногда удобно позволить перехол потока управления от одного выбираемого сегмента кода к другому. Очевидно, по этой причине в конструкции зидгсЬ нет неявных переходов.

И поэтому. если программист по ошибке пропустит в конструкции зиьгсЬ оператор Ькеа)с. возникает проблема с належностью, поскольку поток управления ошибочно передается следуюшему сегменту. Разработчики оператора зидгс)з в языке С. подобно разработчикам вычисляемого оператора ОО ТО в языке РОКТКАХ, решили немного ослабить надежность. выиграв в гибкости языка. Исследования, однако, показали, что возможность передавать поток управления от одного выбираемого сегмента другому используется релко.

Оператор зилесЬ в языке С создан по образцу многовариантного оператора ветвления в языке А(.001 68, который также не имеет неявных переходов из выполняемых сегментов. Оператор сазе языка Ас)а позволяет использовать такие ограниченные типы, как 10 .. 15, а также операторы ИЛИ. указываемые символом (, например, в выражениях 10 ) 15 ) 20 в списках констант. В случае применения непредставленных значений выполняется оператор огЬекз.

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

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

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

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