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

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

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

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

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

Язык Рег! требует, чтобы все операторы ГЬвп н в1вв . гли составными, предотвращая таким образом проблему нх взаимного соответствия. Альтернатива проектному решению, реализованному в языке АЕООЕ 60, как будет показано в следуюшем разделе, — введение специальных замыкающих слов лля операторов КЬеп и е1ве. 7.3. з.4. Специальные слова и замыкание алвратора ветвления Рассмотрим синтаксическую структуру оператора ЕЕ в языке Разса1. Оператор кЬеп начинается с зарезервированного слова КЬеп, а оператор е1ве — с зарезервированного слова е1ве. Если оператор кьеп представляет собой отлельный оператор и присутствует оператор е1ве, то зарезервированное слово е1ае фактически отмечает конец оператора КЬеп.

несмотря на то, что в этом нет никакой необходимости. Если оператор КЬеп является составным. он завершается зарезервированным словом епс1. Однако, если последний оператор в операторе зк (либо КЬеп, либо е1ве) не является составным, то не сугцествует синтаксического способа для того, чтобы отметить конец всей конструкции ветвления.

Использование ключевого слова для этой цели могло бы разрешить вопрос, связанный с семантикой вложенных операторов ветвления, и увеличить надежность конструкции. Именно так был решен этот вопрос при разработке языков АЕООЕ60, РОКТКАХ 77 и 90, Мооц1а-2 и Ада. Рассмотрим следуюшую конструкцию языка Ада: ЕСА>В ЯОМ '-.СООМТ е1ве ЯОМ ООМТ епс1 5.кг сЬеп ЯОМ + дл АСООМТ ~. 1> ЯОМ + В; ВСООМТ + 1г Гакая конструкция имеет более четкую структуру, чем конструкции ветвления в языках Ршса1 и АЕООЕ 60. поскольку ее форма остается той же самой независимо от количества опсразоров, входящих в операторы кЬеп и е1ве.

Эти операторы состоят из последовательносз ей операторов, а не из составных операторов. Первую интерпретацию примера ветвления, привезенного в начале раздела 73.1.3, можно записать на языке Ада следуюшим образом: Ек ЯОМ = О КЬеп Ек СООМТ = О КЬеп КЕЯ" Т := О; е1ве ВЕЯОЕТ := 1; епп' ЕЕ; епс1 ЕЕ; Ек ЯОМ = О КЬеп ЕЕ СОБМТ = О ЕЬеп КЕЯОЕТ : О; а ЕСз ВЕЯОЕТ '.= 1; епо 1Е; 330 Гдово 7. Структуры упровпения но уровне операторов Если ключевые слова епс1 ЕС закрывают вложенный оператор Ек, значит оператор е1ве соответствует внутреннему оператору КЬеп. Вторую интерпретацию примера ветвления, приведенного в начале раздела 7.3.1.3, можно записать на языке Ада следующим образом: В языке Мог)ц!а-2 все управляющие конструкции закрываются тем же самым зареегаированным словом Езй>.

Программа на языке Мобц)а-2 достигает того же результа-: что и пример на языке Ада, приведенный выше, используя при этом меньше зарезер:- гованных слов. Несмотря на это, программы на языке Модо!а-2 менее читабельны, - еч аналогичные программы на языке Ада, особенно если различные управляющие кон;-г> кции включаются одна в другую. Когда лля закрытия управляющей констр> кции 1Г :зользуется зарезервированное слово ЕЯЭ, оно несет лишь часть информации, которую ;: держат зарезервированные слова Еэй> 1Г. 7.3.2. Конструкции многовариантного ветвленив Конструкция многовариантного ветвления (шц)г!р!е зе!есбоп) позволяет выбрать лля выполнения один оператор или одну группу операторов из произвольного количества .зераторов или групп операторов, соответственно.

Следовательно, она представляет со: д обобщение оператора ветвления. Действительно, одновариантный и двухвариантный :ператорь| ветвления можно построить на основе многовариантного оператора ветвле-ня. Исходная форма многовариантного оператора ветвления впервые была предложена з языке гОКТЕАХ. Необходимость выбирать путь передачи потока управления в программе — вполне :бычное явление. Несмотря на то что многовариантный оператор ветвления можно по;троить на основе двухвариантного оператора ветвления и операторов без>словного пеехола його, структуры. полученные таким образом. являются громозлкимн. тр> знычи =зя создания и чтения программ, а также ненадежными.

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

Другой вопрос, связанный с двухвариантным оператором ветвления. — это вопрос о типе выражения, на котором основывается выбор. В данном случае спектр возможностей широк, частично из-за количества вариантов выбора. Для двухвариантного опсразора ветвления требуется выражение, которое может принимать всего два значения.

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

В заключение отметим еше один вопрос — что следует счш ать результатом условного выражения, вычисляющего значение, которое не соответсзв>ез ни одному из сегментов, подлежащих выбору. Здесь разработчики должны привязь решение — просто не допускать возникновения такой ситуации или сформулировать правило, 7.3. Операторы ветвления 311 описываюшее. что именно происходит, когда такая ситуация возникает. Непредставленные значения условных выражений будут обсуждаться в разделе 7.3.2.3. Вопросы разработки многовариантных операторов ветвления можно резюмировать следуюшим образом. ° Какова форма и тип выражения, управляюшего ветвлением? ° Можно ли выбрать отдельный оператор, последовательность операторов или со- ставноЯ оператор? ° Инкапсулирована ли вся конструкция в некую синтаксическую структуру". ° Ограничен ли поток выполнения, проходяший через структуру, выбором лишь одного выбираемого сегмента? ° Как обрабатывать непредставленные значения условных выражениЯ и надо ли их обрабатывать вообше? 7.3.2.2.

Ранние многовариантные операторы ветвления Многовариантные операторы ветвления, введенные в практику языком ГОКТКА]4!, упоминаются здесь по историческим причинам, а также потому, что они остаются частью последней версии языка ГОКТКАХ вЂ” языка ГОКТКАХ 90. Подобно другим управляюшим операторам языка ГОКТКАХ, его многовариантные операторы ветвления основаны непосрелственно на машинных командах компьютера (ВМ 704. Как указывалось ранее, трехвариантный оператор ветвленил языка ГОТКАХ, называемый арифметическим оператором 1Г, представляет собой вырожденный случай многовариантного оператора ветвления. Поскольку с помошью этого оператора можно вьюрать не более трех наборов операторов, строго говоря, он не является многовариантным оператором ветвления.

Арифметический оператор 1Г производит выбор среди трех ветвей на основе значения некоего выражения. Ветвление математически основано на трихотомии чисел. Это означает, что заданное числовое значение либо больше нуля, либо равно нулю, либо меньше нуля. Арифметический оператор 1Г имеет вид: 1Г (арифметическое выражение] (41, К2, (43 Здесь )41, ]42 и (43 — метки операторов, которым передается управление, если значение выражения меньше нуля, равно нулю или больше нуля, соответственно. Например, при выборе среди трех последовательностей операторов арифметический оператор 1Г имеет следуюший общий вид; 1Г (выражение) 10, 20, 30 10 00 ТО 40 20 ОО ТО 40 30 40 В действительности этот тип оператора ветвления мог бы быть еще более пагубным для читабельности программы, чем в приведенном примере, поскольку последовательность 312 Глава 7.

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

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

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

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