Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Е.А. Кузьменкова, А.К. Петренко - практикум на языке RSL

Е.А. Кузьменкова, А.К. Петренко - практикум на языке RSL (Е.А. Кузьменкова, А.К. Петренко - практикум на языке RSL.pdf), страница 3

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

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

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

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

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

Предусловие задается предикатом,зависящим от входных параметров определяемой функции.Дальнейшее определение функции подобно рассмотренному ранееопределению констант может производиться в одном из следующих стилей:•явном (эксплицитном, explicit),•неявном (имплицитном, implicit),• аксиоматическом.Выбор конкретного стиля спецификации зависит от специфики решаемой задачи.Явное описание функцийОписание функции в явном стиле (операционная спецификация)ориентировано на описание конкретного алгоритма и используется в том случае,когда явно задаётся способ преобразования входных параметров в выходные.Примером явного описания всюду вычислимой функции может служитьследующий фрагмент RSL спецификации:valuef : Int -> Intf(x) is x + 1В качестве примера описания частично вычислимой функции в явном стилерассмотрим функцию p(x), вычисляющую значение 1/x:valuep : Real -~-> Realp(x) is 1.0/xpre x ~= 0.0Последняя строка данного описания содержит предусловие, представляющее собойпредикат, накладывающий ограничение на значения входного параметра.14Неявное описание функцийОписание функции в неявном стиле (контрактная спецификация) нацелено наописание свойств результата функции, которые фиксируются в виде некоторогопредиката в постусловии определяемой функции.

Неявная спецификация,абстрагируясь от конкретного способа получения результата, во главу угла ставитформализацию отношений, связывающих между собой входные и выходныепараметры, т.е. здесь описывается не сам алгоритм, а эффект его применения.Данный стиль описания соответствует более высокому уровню абстракции, чемявная спецификация, поскольку конкретный алгоритм преобразования неуказывается и может быть уточнен в дальнейшем путем построения явнойспецификации определяемой функции. При этом для одной и той же неявнойспецификации можно предложить, вообще говоря, разные алгоритмы, эффектприменения которых удовлетворяет указанной спецификации. При разработкеспецификаций функций этап построения их неявных спецификаций как правилопредшествует этапу построения явных спецификаций.Ниже приведены примеры описания в неявном стиле всюду вычислимойфункции f(x), возвращающей в качестве результата некоторое целое число,превосходящее входное значение:valuef : Int -> Intf(x) as r post r > xи частично вычислимой функции square_root(x) для нахождения значенияквадратного корня:valuesquare_root : Real -∼->.

Realsquare_root(x) as spost s ∗ s = x /\ s >= 0.0pre x >= 0.0Причем, как видно из примеров, конкретный алгоритм получения результатаостается в обоих случаях за рамками рассмотрения, описываются лишь свойстварезультата.Аксиоматическое описание функцийПри использовании аксиоматического стиля описания функции предлагаетсянекоторый набор аксиом, определяющих свойства данной функции.Аксиоматическая спецификация может применяться с одинаковым успехом и дляописания способа получения результата, и для описания свойств самого результатавыполнения функции. Поэтому как для явного, так и для неявного описаний всегдаможно предложить эквивалентное описание в аксиоматическом стиле.

Кроме тогоданный стиль является единственно возможным при построении алгебраическихспецификаций, где аксиомы описывают свойства цепочек функций и имеютспецифический вид (например, f(g(x), x) is h(x)), т.е. в качестве аргумента функциидопускается использование обращения к функции.15В качестве примеров приведем аксиоматическое описание всюду вычислимойфункции f(x), эквивалентное рассмотренному выше явному описанию той жефункции:valuef : Int -> Intaxiom all x : Int :- f(x) is x + 1и аксиоматическую спецификацию частично вычислимой функции square_root(x), эквивалентную ее неявной спецификации, также рассмотреннойранее:valuesquare_root : Real -∼-> Realaxiomall x : Real :-x >= 0.0 =>exists s : Real :- square_root(x) = s /\ s ∗ s = x /\ s >= 0.0Схема определения функцииПодводя итог вышесказанному, можно предложить следующую схемуопределения функции:1.

Описать сигнатуру функции:• выбрать имя функции;• выбрать тип:(a) аргументов,(b) результата,(c) отображения:- всюду вычислимая функция (может быть определена для всехзначений входных параметров),- частично вычислимая функция (необходимо предусловие);2.выбрать стиль спецификации:• явный (можно задать способ вычисления результата),• неявный (можно описать связь входа и выхода посредством предиката),• аксиоматический (может быть использован всегда, необходим валгебраических спецификациях).Упражнения1. Для обеспечения работы с точками на плоскости описать тип дляпредставления:всех точек на плоскости, принадлежащих первому квадранту и лежащихвыше прямой y=x,(b) всех точек с целочисленными координатами, лежащих внутри круга сцентром в начале координат и радиусом 5.(a)Указания: используйте декартово произведение и аппарат определения подтипов.162.

Используя явный стиль спецификации, определить функцию:(a)(b)is_even для проверки заданного числа на четность,is_a_prime, которая проверяет, является ли ее аргумент простым числом.Указания: в пункте (a) можно использовать операцию \ (остаток от деления) иливоспользоваться квантифицированным выражением.3. Определить функцию max, возвращающую значение максимума из двухцелых чисел, используя один из следующих стилей описания:(a) явный,(b) неявный,(c) аксиоматический.Указания:• воспользуйтесь приведенной в этой главе общей схемой определенияфункции;• для удобства записи в пунктах (a) и (c) используйте условное выражениеязыка RSL.4.

Для обеспечения работы с комплексными числами описать:(a) тип Complex для представления комплексных чисел,(b) константу zero для представления комплексного числа 0 + 0i,(c) константу c, представляющую любое комплексное число вида x + xi;(d) функции add и mult для сложения и умножения комплексных чисел,(e) функцию f, возвращающую в качестве результата некоторое комплексноечисло, отличное от заданного.Указания:• в пунктах (b) и (d) воспользуйтесь явным (explicit) стилем описанияконстанты и функций, т.к. здесь явно указано значение константы и способполучения результатов функций по их входным значениям;• в пунктах (c) и (e) следует использовать неявное (implicit) описаниеконстанты и функции, поскольку в условии не оговаривается явно значениеконстанты и способ получения результата по входному значению;• в пунктах (c) и (d) для упрощения записи удобно воспользоватьсявыражением let. С помощью этого выражения, например, для пункта (c)факт равенства действительной и мнимой частей комплексного числа cможно записать так:let (x, y) = c in x = y end5.

Пусть задана следующая спецификация системы координат:scheme SYSTEM_OF_COORDINATES=classtypePosition = Real >< Realvalue17origin : Position = (0.0,0.0),distance : Position >< Position -> Realdistance((x1, y1),(x2, y2)) is((x2 – x1)**2.0 + (y2 – y1)**2.0)**0.5endЗдесь тип Position предназначен для описания координат точек наплоскости, константа origin задает начало координат, функция distance определяет способ вычисления расстояния между двумя точками. Обратитевнимание на то, что при описании константы origin и функции distance использован явный стиль описания, т.к.

указано непосредственное значениеконстанты и формула для вычисления расстояния.Дополнить заданную спецификацию определением:(a) типа Circle для описания окружности по ее центру и радиусу;(b) функции on_circle, определяющей, лежит ли точка с заданнымикоординатами на заданной окружности;(c) окружности с радиусом 3.0 и центром в начале координат;(d) константы pos для представления произвольной точки, лежащей назаданной окружности.Указания:• в пункте (a) определите вспомогательные типы Center и Radius дляпредставления центра окружности и ее радиуса соответственно, дляопределения типа Center используйте тип Position, для типа Radius воспользуйтесь следующим описанием:Radius = {| r : Real :- r >= 0.0 |},задающим подтип действительных чисел с неотрицательными значениями;• в пунктах (b) и (c) следует воспользоваться явным стилем описания функциии константы, можно также использовать конструкцию  let длядостижения большей наглядности записи;• в пункте (d) используйте неявный стиль описания константы.6.

Для обеспечения работы с рациональными числами предложить спецификациюсхемы RATIONAL_NUMBERS, содержащей определения:(a) типа Rational для представления рациональных чисел;(b) функции less, которая сравнивает два рациональных числа и возвращаетtrue, если первое число меньше второго;(c) функции add для сложения двух рациональных чисел;(d) функции max для определения максимума из двух рациональных чисел;(e) функции check, которая проверяет, является ли заданное рациональноечисло несократимой дробью.Указания: используйте явный стиль спецификации.7.

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