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

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

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

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

Верификация намного упрощается, если используются либо только циклы с условиями и операторы ветвления, подобные операторам ветвления языка Разса1, либо только защищенные команды. Аксиоматическая семантика защищенных команд определена в работе Опез (1981). Однако очевидно, что сложность реализации защищенных команд значительно увеличивается по сравнению с их детерминированными аналогами. 7.7.

Выводы Мы описали и обсудили множество управляющих структур на уровне операторов. Теперь на очереди их краткая оценка. Во-первых, мы получили теоретический результат, заключающийся в том, что для выражения вычислений абсолютно необходимы только последовательность, ветвление и логически управляемые циклы с предварительной проверкой условий (Вбпщ апд )асор1п1, 1966). Этот результат широко используется теми, кто желает запретить все безусловные переходы. Конечно, достаточно уже и практических проблем, связанных с операторамн 8о1о, для того чтобы осудить нх без подыскивания теоретических причин.

Одно нз применений оператора 8о1о, которое многие считают достаточным для его оправдания, состоит в использовании его лля преждевременного выхода из циклов в языках, в которых для этого не предусмотрены специальные операторы выхода. Не следует на основании результата Бема и Джакопини возражать против включения в язык любых управляющих структур, кроме ветвления и логически управляемых циклов с предварительной проверкой условий.

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

Не всегда ясно, оправдывает ли полезность управляющей структуры ее включение в языки программирования ((.едйагд апд Массопу, 1975). Этот вопрос следует из вопроса: надо ли минимизировать размеры языков. И Вирт (1975) и Хоар (1973) настаивают на простоте при разработке языка. т.е. в языке должно быть только несколько управляющих операторов, и все они должны быть простыми. Разнообразие изобретенных управляющих структур на уровне операторов отражает расхождение во мнениях среди разработчиков языков программирования. После всех изобретений, обсуждения и оценок все еше нет единодушного мнения о том, какой именно набор управляющих операторов должен быть включен в язык. Многие современные языки, конечно, имеют подобные управляющие операторы, но все еше остаются Глава 7.

Структуры управлаиия на уровне операторов -.«шие вариации в деталях их синтаксиса и семантики. Кроме того, сохраняются разно- е;ия по поводу того, должен ли язык программирования содержать оператор яо1о; :. =. ки С++ и Аба используют этот оператор, а языки Модо!а 2 и Вата — нет. Управляющие операторы в императивных языках программирования разделяются на -::колько категорий: операторы ветвления, многовариантные операторы ветвления, - эаторы цикла и операторы безусловного перехода. Язык РОКТКА1Ч впервые ввел в практику программирования одновариантный опера- = ветвления — логический оператор Т Г.

Оператор ветвления в языке А1.ОО1. 60 более .-:жен и позволяет выбирать составные операторы, а также использовать необязатель-:;. оператор е1ав. Многие управляющие структуры выиграли от использования со:-зе ного оператора, введенного в языке А1.ОО1. 60.

Арифметический оператор 1Г языка РОКТКА1Ч вЂ” это трехвариантный оператор :-:-аления, требующий наличия других безусловных переходов. Язык ГОКТКАХ ввел в практику две формы многовариантных операторов ветвления: :: числяемый оператор ОО ТО и назначенный оператор 00 ТО. В точном соответствии воими названиями они представляют собой многовариантные операторы ветвления. ' -ератор оаее языка Рааса! является представителем современных многовариантных -ераторов ветвления; он содержит инкапсуляцию выбираемых сегментов и неявные песее слы в конце каждого из них на одну точку выхода. Языки Моди!а-2, С++, ГОКТКАХ 90, 1ача и Ада имеют операторы выхода из своих зов: эти операторы заняли место одного из наиболее распространенных употребле- '.

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

Защищенные команды Дийкстры являются альтернативными управляющими констг .пнями, имеющими положительные теоретические характеристики. Несмотря на то - -: онн не были одобрены в качестве управляющих конструкций языка программирова- =.. частично их семантика была реализована в механизме параллельности в языках СБР АЛа. 339 эвэюмв 2. 3. 4. 6. 8. 9. 1О.

11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Дайте определение упраашющей струюнуры. Дайте определение блока. Какие вопросы разработки связаны со структурами ветвления? Как обычно решаются проблемы, связанные со вложенными двухвариантными конетрукциями ветвления? Что неправильно сделано в языке Моб1н!а-2? Какие вопросы разработки связаны с многовариантными структурами ветвления? Что составляет основу управляющих операторов языка ГОКТКАХ 1? Какие недостатки имеет арифметический оператор 1 Г языка ГОКТВА1Ч? Что необычного есть в многовариантном операторе ветвления языка С? Какие проектные компромиссы были достигнуты при его разработке? Какие проблемы возникают при разработке циклов со счетчиком? Что представляет собой цикл с предварительной проверкой условий? Что представляет собой цикл с последующей проверкой условий".

Какое самое значительное изменение было сделано в операторе ~0 языка ГОКТКАХ 77 по сравнению с языком ГОКТКА1ч 1Ч? Какие свойства оператора сок языка А1.001. 60 делают использующие его программы трудными для чтения? В чем заключается разница между оператором йок языка С++ и аналогичным оператором языка Зата? Какие проблемы возникают при разработке циклов с условиями? Какова основная причина изобретения управляющих операторов, определяемых пользователем? Какие преимушества имеет оператор ежШ языка Аба над оператором Ькеак язы- ка С? В чем заключается разница между оператором Ькеак языка С++ и аналогичным оператором в языке Зата? Что представляет собой управление циклом, определяемое пользователем? Каковы два недостатка переменных меток в языке Р1./1? В чем состоит основная проблема, связанная с ограничениями, наложенными на использование оператора його в языке Рааса!? Какие распространенные языки программирования заимствовали часть своей структуры у защищенных команд Дийкстры? Глава 7.

Структуры управления на уровне операторов )», Обоснуйте утверждение. что трехвариантный оператор ветвления языка ГОКТКАХ! наиболее соответствовал ситуации во время его разработки. Придумайте ситуацию. в которой переменная метка языка РЕЛ имела бы большое преимушество. Опишите три ситуации, в которых необходимо объединение цикла со счетчиком и логически управляемого цикла.

Сравните вычисляемый оператор 60 то языка ЕОКТКАХ с оператором оаээ языка Разов!, особенно с точки зрения читабельности и надежности. Каковы возможные причины, по которым язык Разса1 содержит цикл с последующей проверкой условия. в то время как язык А).ОО). 60 такого цикла не имеет. Изучите свойства итератора языка СШ, описанного в работе Ыз)соч (1984), и определите его преимушества и недостатки. Сравните набор управляющих операторов языка Ада с аналогичным набором в языке ГОКТКА)Ч 77 н решите, какой из них лучше и почему. Назовите аргументы "за" и "против" использования уникального замыкающего зарезервированного слова в составном операторе. Проанализируйте потенциальные проблемы читабельности, возникающие прн использовании в качестве замыкающего зарезервированного слова для управляющих операторов обратной перестановки букв открывающего зарезервированного слова, например, оаэв-еээо в языке А) ОО).

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

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

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

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