Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Евгений Корныхин - Формальная спецификация программ

Евгений Корныхин - Формальная спецификация программ (Евгений Корныхин - Формальная спецификация программ.pdf), страница 6

PDF-файл Евгений Корныхин - Формальная спецификация программ (Евгений Корныхин - Формальная спецификация программ.pdf), страница 6 Формальная спецификация и верификация программ (64253): Книга - 9 семестр (1 семестр магистратуры)Евгений Корныхин - Формальная спецификация программ (Евгений Корныхин - Формальная спецификация программ.pdf) - PDF, страница 6 (64253) - СтудИзба2020-08-21СтудИзба

Описание файла

PDF-файл из архива "Евгений Корныхин - Формальная спецификация программ.pdf", который расположен в категории "". Всё это находится в предмете "формальная спецификация и верификация программ" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 6 страницы из PDF

Функцию из последнего примера можно задать и другим поствыражением:1valuemax : Nat × Nat → Natmax( a , b ) as mposti f a > b then m = aelse m = bend234567Сравните эту запись с эксплицитной записью той же функции:1valuemax : Nat × Nat → Natmax( a , b ) ≡i f a > b then a234else b5end6Рассмотрим такое имплицитное определение:1valuemax : Nat × Nat → Natmax( a , b ) as mposta > b ⇒m = a2345Оно отличается тем, что задает функцию max не полностью: еслиa > b, то известно требование на результат функции (он должен бытьравен а), в противном случае поствыражение истинно, а про результатфункции ничего не сказано.Рассмотрим другой пример:123valuemax : Nat × Nat → Natmax( a , b ) as m48Глава 1.

RAISE SPECIFICATION LANGUAGE (RSL)post4m= a ∨ m= b5Здесь точно результат функции не известен ни в одном случае (если числа a и b имеют различные значения). И тем не менее это тожедопустимое и полезное поствыражение.Иными словами, необходимо понимать следующие возможности:∙ поствыражение должно восприниматься как необходимый эффектфункции (если поствыражение, вычисленное на аргументах и результате функции, ложно, значит функция сработала неверно; если поствыражение истинно, ничего нельзя сказать про правильность работы функции); такие поствыражения описывают ту частьфункциональности, которая должна быть соблюдена обязательнои неукоснительно, любой «шаг влево-вправо» рассматривается самым критичным образом;∙ поствыражение должно восприниматься как достаточный эффектфункции (если поствыражение, вычисленное на аргументах и результате функции, истинно, значит функция сработала правильно;в противном случае ничего нельзя сказать о правильности работы функции); такие поствыражения описывают ряд случаев, но,возможно, не весь;∙ поствыражение должно восприниматься как необходимый и достаточный эффект функции.Язык RSL не предоставляет средств для указания того, как должновосприниматься каждое поствыражение.

В каждом случае эту «модальность» надо оговаривать явно. В дальнейших примерах, если это не сказано явно, будет предполагаться, что поствыражение должно описыватьнеобходимый и достаточный эффект.Например, ответьте, почему поствыражение в следующем примерезадает функцию, не являющуюся максимумом двух чисел, даже несмотря на то, что логика короткая (многие студенты на экзамене ошибочнопредполагают, что это поствыражение действительно описывает максимум и применяют подобное «преобразование» условного выражения вдизъюнкцию, не замечая совершаемой при этом ошибки):12valuemax : Nat × Nat → Nat1.6. Эксплицитное и имплицитное описание функций49max( a , b ) as mpostm= a ∧ a > b∨ m= b3456В поствыражении могут встречаться «вызовы» других функций:1valuesum : Nat * → Natsum ( x ) as sposti f x = ⟨ ⟩ then s = 0e l s e s = sum ( t l x ) + hd x end23456Вы уже заметили, насколько похожи эксплицитная и имплицитнаязапись функций.

На самом деле если функция не использует глобальных переменных по чтению-записи и завершается с детерминированнымрезультатом, то эксплицитная запись может быть переписана в имплицитном виде очень просто: вместо возвращаемых значений запись равенство, как это было сделано в последних примерах:123value max : Nat × Nat → Natmax( a , b ) as mpost m = ( i f a > b then a e l s e b end)Однако если функция использует глобальные переменные по чтениюзаписи, то поствыражение должно содержать описание побочного эффекта. Дело в том, что поствыражение нужно для описания результатафункции, поэтому:1) поствыражение не должно иметь побочного эффекта (а функцияможет иметь побочный эффект);2) поствыражение пишется только для функций, которые завершаются и завершаются детерминированным образом (для недетерминированных функций поствыражение ложно).Итак, если исходная функция имеет побочный эффект, например1variablea , b : Int234valueswap : Unit → write a , bUnit50Глава 1.

RAISE SPECIFICATION LANGUAGE (RSL)swap ( ) ≡5l o c a l variable temp : Int := a ina := b ;b := tempend6789то эквивалентное5 определение функции в имплицитном виде полностью сохраняет сигнатуру, а в поствыражение должно входить соотношение значений переменных до вызова функции и значений после вызовафункции:1variablea , b : Int23valueswap : Unit → write a , bswap ( )posta = b′ ∧ b = a′4567UnitШтрихованные переменные — это значения переменных до вызовафункции.ЗадачиПервые задачи несложные, в них надо формализовать указанныеутверждения. Большинство задач взяты из [3].1.16.1 Ни одному лысому не нужна расческаРешение:12345scheme Exmp = c l a s stype Lys , R4value need : Lys × R4 → Boolaxiom ∀ l : Lys , r : R4 ∙ ∼need ( l , r )end51.16.2Все мои тетки не справедливы.1.16.3Ни один кошмарный сон не приятен.слово «эквивалентное» ещё раз подчёркивает, что это поствыражение следует восприниматькак необходимое и достаточное описание эффекта функции1.6.

Эксплицитное и имплицитное описание функций1.16.4Все битвы сопровождаются страшным шумом.1.16.5Не все двоечники ленивы.1.16.6Каждый, кто упорно работает, добивается успеха.1.16.7Ни один бездельник не станет знаменитостью.1.16.8Некоторые художники не бездельники.1.16.9Некоторые бездельники не художники.1.16.101.16.11ния.51Некоторые подушки мягкие.Тот, кто может укрощать крокодилов, заслуживает уваже-1.16.12Ни одна лягушка не имеет поэтической внешности.1.16.13Ни одна тачка не комфортабельна.1.16.14Всякий орел умеет летать.1.16.15Некоторые свиньи не умеют летать.1.16.16Некоторые свиньи — не орлы.1.16.17Ни один судья не справедлив.1.16.18Ни один ребенок не любит прилежно заниматься.1.16.19 Все шутки для того и предназначены, чтобы смешить людей.1.16.20Ни один парламентский акт не шутка.1.16.21Пауки ткут паутину.1.16.22Все лекарства имеют отвратительный вкус.1.16.23Ни у одной ящерицы нет волос.52Глава 1.

RAISE SPECIFICATION LANGUAGE (RSL)1.16.24Все свиньи прожорливы.1.16.25Все, что сделано из золота, драгоценно.1.16.26Некоторые секретари — птицы.1.16.27Все секретари заняты полезным делом.1.16.28Ничто разумное не ставит меня в тупик.1.16.29Логика часто ставит меня в тупик.1.16.30Некоторые цыплята — не кошки.1.16.31угольника.Точки A, B, C являются вершинами равнобедренного тре-1.16.32 Иванов, Петров, Васильев и Сидоров могут вытащить этумашину из ямы, если они трезвы и видят бутылку.1.16.33 Иванов, Петров, Васильев и Сидоров не могут решать квадратные уравнения, даже если они трезвы, но видят бутылку.1.16.34Не все углы, синус которых больше 1/2, больше /6.1.16.35 Квадратные корни из некоторых рациональных чисел иррациональны.1.16.36 Синус и косинус равны друг другу тогда и только тогда,когда равны тангенс и котангенс.1.16.37Когда кто-то поет больше часа, он надоедает.1.16.38Все девочки боятся лягушек и мышей.1.16.39Кошки бывают только белые и серые.1.16.40Все ораторы либо честолюбивы, либо скучны.1.16.41 Число делится на 25 в том и только том случае, когда оноделится на 50 либо дает при делении на 50 остаток 25.1.6.

Эксплицитное и имплицитное описание функций531.16.42 Все комплексные числа действительны или становятся действительными после умножения на i.1.16.43Не все студенты отличники или спортсмены.√1.16.44 Для того чтобы выполнялось равенство = 2 , необходимо и достаточно, чтобы было положительным действительным числом.1.16.45ложь.Не все, что рассказывал барон К.

Ф. И. фон Мюнхгаузен,1.16.46Некоторые людоеды — плохие люди.1.16.47Некоторые финансисты — мошенники, но не все.1.16.48Прапорщики любят порядок, и не только они.1.16.49Милиционеры замешаны в преступлениях, но не все.1.16.50Некоторые замки не отпираются, но запираются.1.16.51Если будешь хорошо учиться, поступишь в вуз, а иначепровалишься.1.16.52Ничего не вижу, ничего не слышу, ничего не знаю.1.16.53Молодо—зелено.1.16.54Взялся за гуж — не говори, что не дюж.1.16.55Чтобы не быть собакой, достаточно быть кошкой.1.16.56Чтобы не быть человеком, необходимо быть свиньей.1.16.57Некоторые кошки поют по ночам.1.16.58Все компакты совершенно нормальны.1.16.59Некоторые мюмзики не куздры.54Глава 1.

RAISE SPECIFICATION LANGUAGE (RSL)1.16.60Три точки A, B, C лежат на одной окружности.1.16.61Три точки A, B, C не лежат на одной прямой.1.16.62Числа a и b имеют одинаковый знак.1.16.63Одно из чисел a, b равно 0.1.16.64Числа a и b имеют разные знаки.1.16.65Ромео и Джульетта любят друг друга.1.16.66Гамлет и Клавдий ненавидят друг друга.1.16.67Мери любила Печорина, но не взаимно.1.16.68 Чтобы прийти на свадьбу, необходимо приглашение женихаили невесты.1.16.69Некоторые лентяи не оптимисты, но жизнелюбы.1.16.70Все замки отпираются и запираются.1.16.71Никто из нашего класса не поехал в Москву и Париж.1.16.72Все мои одноклассники поехали в Москву и Париж.1.16.73Некоторые числа четные.1.16.74Некоторые лекции невозможно понять.1.16.75Всякому в Москве не перекланяешься.Более сложные задачи:1.17.1 Весна, и вы говорите: «Все парни и девушки сейчас влюбленыдруг в друга».

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