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

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

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

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

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

Большинство операторов сазе в языке Ада содержит оператор огцекз. позволяюший гарантировать, что список констант является исчерпывающим. Оператор сазе языка РОКТКАХ 90 похож на оператор саве языка Ада. Во многих случаях конструкция саве неприемлема для многовариантного выбора. Например, если выбор должен быть сделан на основе булевского выражения, а не некоторого порялкового типа, можно использовать вложенные лвухвариантные операторы ветвления для молелнровання многовариантного оператора ветвления. Чтобы избежать плохой читабельности программ, возникаюшей из-за глубоко вложенных лвухвариантных операторов ветвления, такис языки, как ЕОКТКАХ 90 и Ада, были расширены. Расширения позволяют пропускать некоторые ключевые слова. В частности, последовательности е1зе-дх заменяются одним ключевым словом, а замыкающее ключевое слово вложенного оператора кк отбрасывается. В этом случае вложенный оператор 316 Глава 7. Структуры управления нс уровне операторов .-етвления называется оператором е1здк.

Рассмотрим следуюшую конструкцию вета;чик в языке Аба: хЕ СОПИТ < 10 Кззеп ВА61: = ТКПЕ; е1зхЕ СОПИТ < 100 КЗзеп ВА62 := ТКПЕ; е1здЕ СОПИТ < 1000 Креп ВА63 := ТКПЕ; а 1Ег з эквивалентна следуюшей конструкции: хГ СОПИТ < 10 сЬеп ВА61 := ТЕПЕ; е1зе 1Е СОПИТ < 100 сззеп ВА62 := ТКПЕ; е1зе 1Е СОПИТ < 1000 Вйеп ВА63 := ТКПЕз а 1Е; епс1 1кз епсз дйг !!з этих двух вариантов версия е1зхк более читабельна.

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

а буквы Ь с цифрами — операторы, приведено ниже: 1Г Е1 дово 1 Ы Е1 дово 1 51 досо оцс 62 досо оцв -, описание позволяет увидеть разницу между структурами многовариантного еетьле. и конструкциямн е1здЕ. Она заключается в том. что в конструкции многовариантветвления все выражения, обозначенные буквами Е, можно свести к сравнениям ..

лу значениями отдельных выражений н некоторыми другичн значениями. Языки, не включающие в себя конструкцию е1здЕ, могут использовать ту же управ-' шую структуру, лишь с ненамного большим количеством типов. Конструкции е1здЕ основываются на обшей математической конструкции — услов- и выражении. Функциональные языки программирования. которые будут обсуждаться лаве !4, часто используют условные выражения в качестве одной из основных управ:юшнх конструкций. 31У .3.

Операторы ветвления 7.4. Операторы цикла Операторы цикла (йегабче згаге>пепгз) — это операторы, вынуждающие оператор или набор операторов выполняться один и сколько угодно раз, или не выполняться ни разу. Бажлый язык программирования, начиная с языка Р!апхаЫ1, содержал некоторый метод дзя повторения выполнения сегмента кола. Если бы цикл был невозможен, программист был бы вынужден указывать каждое действие в последовательности операторов: полезные программы стали бы огромными, а их написание заняло бы громадный объем времени. Новгоряюшееся выполнение операторов часто реализуется в.функциональных языках с помошью рекурсии, а не итеративных структур. Рекурсия в функциональных языках будет оос) ждаться в главе 14.

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

операторов зависели от того, как разработчик решал две главные проблемы проек>ирования, ° Еак осушествляется управление циклом? ° В какол>месте цикла находится механизм управления? Основные возможности управления циклом — логические выражения, индексирование или комбинация этих способов. Основные способы расположения механизма управления -- в начале цикла или в конце цикла. Начало и конец цикла — это логические, а не физические понятия.

Вопрос заключается не в физическом размещении механизма управ>» ния. а в том, может ли этот механизм выполняться и осуществлять управление перез плп после выполнения тела цикта. Третья возможность, позволяющая пользователи> сачочу решать. где разместить механизм управления циклом, обсуждается в разделе 7.4 3. Тело цикла — это набор операторов, выполнение которых управляется опера>ором цикла. Мы используем термин предварительная проверка (рге1езг) для того, чжюы отметить тот факт. что проверка условия завершения цикла осуществляется после выполнения тела цикла, а термин последующая проверка (розпезг) означает, что эта проверка производится после выполнения тела цикла.

Оператор цикла и связанное с ним тело цикла вместе образуют итеративную конструкцию (йегабоп сопзггцсг). Броме основных операторов цикла, мы обсудим также альтернативную форму, которая сача по себе принадлежит некоторому классу операторов — определенным пользова>елец механизмам управления циклом. 7.4.1.

Циклы со счетчиком Оператор цикла со счетчиком имеет переменную, называемую счетчиком цикла (1оор тзпаЫс), в которой хранится значение счетчика. Он также обладает некоторыми срем сэип лля указания начального и конечного значений счетчика цикла и разности ч>ж.>з юслезовательными значениями счетчика цикла, которую часто называют величинои шага. Начальное и конечное значения счетчика, а также величина шага цикла назъ>еав . я параметрамн цикла. Глава 7. Структуры управления иа уровне операторов 418 : 1есчотря на то что логически управляемые циклы имеют более обший вил, чем пик;о счетчиком, это не значит, что они более широко используются.

Поскольку циклы . четчиком сложнее, к их разработке предъявляются повышенные требования. .]палы со счетчиком часто поддерживаются машинными командами. К сожалению. зьютерная архитектура зачастую переживает методы программирования, бывшие гчшствуюшими во время разработки этой архитектуры. Например. в компьютерах -'.Х есть команда, очень удобная лля реализации циклов со счетчиком и последуюшей ...веркой, которая была в языке РОКТКАХ во время проектирования этих компьютеОднако сейчас язык ГОКТКАХ больше не содержит такого цикла, в то время как . "пьютеры ЧАХ стали широко распространеннымн.

Конечно, языковые конструкции намного переживают машинную архитектуру. Начер. автору неизвестен ни один современный компьютер, который имел бы трехвачтную команду ветвления для реализации арифметического оператора '.: языка - . КТКАХ. 7.4. 1.1. Вопросы разработки Природа счетчика цикла и параметров цикла вызывает много вопросов. Типы счетчиикла и параметров цикла, очевидно, должны быть одинаковыми или. по крайней чс;овместимыми, но какие именно типы следует считать допустимыми" .Одно из оче.- =иых решений — целые числа, но как насчет перечислимых и символьных типов, а -;" +е чисел с плавающей точкой".

Другой вопрос заключается в том, является ли счетчик . - зз обычной переменной с точки зрения области видимости или у него должна быть .:-. з специальная область видимости. Связан с вопросом об области видимости и вопрос -. ч. какое значение имеет счетчик цикла после его завершения. Разрешение пользова.:.ю изменять счетчик или параметры цикла внутри цикла может привести к созланию "а. очень трудного для понимания, поэтому следуюший вопрос состоит в том. компен. г?ет ли дополнительная гибкость. созданная таким решением, повышенную слож-;ть. Аналогичный вопрос возникает и в отношении того, сколько раз и когда конкретзычисляются параметры цикла: если они вычисляются только олин раз.

это привозит : -ростым, но менее гибким циклам. Эти вопросы можно сформулировать следуюшим образом. ° Какой тип и какую область видимости имеет счетчик цикла! ° Чему равен счетчик цикла после завершения цикла? ° Следует ли разрешать изменения счетчика и параметров цикла внутри цикла. и если да, влияет ли такое изменение на управление циклом". ° Следует ли вычислять параметры цикла только олин раз или это след! ет лслаз ь ~ ш каждой итерации? 7.4.1.2. Оператор РО е языках РОЯТЯАИ 77 и ЕОЯТЯАИ 90 Язык ГОКТКАХ !содержал оператор со счетчиком 00, оставшийся без изиенсния а ыыках ЕОКТКАХ 11 и! Ч. Этот оператор имел последуюшую проверку, что отличгшо его , т циклов со счетчиком во всех других языках программирования.

Обший аид кго~ о оператора приведен ниже: О метка переменная = начальное значение, конечное значили величина шага] 319 7.4. Операторы цикла Здесь метка — последний оператор в теле цикла, а величина шага, если она не указывается явно, по умолчанию равна 1. Параметры цикла могут быть лишь беззнаковыми целымн константалзи или простыми целыми переменными, принимающими положительные значения. Оператор 00 языка ГОКТ)(АН 77 по внешнему виду похож на аналогичный оператор языка РО)(ТВАХ!Ч, за исключениел~ последующей проверки условий. Счетчик цикла может иметь типы 1ЫТЕСЕЕ, йЕА или 000йьЕ-РйЕ01010)Ч.

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

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

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

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