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

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

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

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

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

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

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

Определить функцию approx_sqrt, которая с заданной точностью eps (положительное вещественное число) находит приближённое значение корняквадратного из неотрицательного вещественного числа. Возвращаемый18функцией результат должен быть таким, чтобы точное значение квадратногокорня лежало в полуоткрытом интервале:[approx_sqrt(x,eps), approx_sqrt(x,eps) + eps).Указания:• здесь следует использовать неявный стиль описания, т.к.

в постановке задачиоговариваются только соотношения между входными и выходнымипараметрами и не уточняется алгоритм вычисления приближенногозначения квадратного корня;• обратите внимание на то, что функция определена не для всех значенийвходных параметров, т.е.

является частично вычислимой.8. Дана явная спецификация функции, предложить неявную спецификациюфункции, эквивалентной данной:(a) value(b)F1 : Int >< Int >< Int -> Int >< IntF1(a, b, c) isif a < b then (a * c, b - a)elsif a > b then (a – b, b * c)else (a, b)endvalueF2 : Nat >< Nat >< Nat -> Nat >< NatF2(a, b, c) is(if a + b > c then c else a + b end,a * b * (if с > 0 then c else 0 –c end))19ГЛАВА 3.

ОСНОВНЫЕ АБСТРАКЦИИ ДАННЫХ В МОДЕЛЕОРИЕНТИРОВАННЫХ СПЕЦИФИКАЦИЯХ. МНОЖЕСТВАПонятие множества, конечные и бесконечные множества. Способы определениямножеств. Операции над множествами в RSL. Использование абстракции множествв моделе-ориентированных спецификациях. Упражнения.Понятие множестваПонятие множества в RSL вполне совпадает с математическим понятиеммножества, т.е. под множеством понимается неупорядоченный набор различныхзначений одного и того же типа. Например:{1,3,5}{0.0, 1.5, 4.7}{″Mary″,″John″,″Peter″}Из определения множества следуют два основных свойства множества:- все элементы множества различны между собой,- на множестве не задано отношение порядка.Таким образом, выражения {1,3,5}, {5,3,1} и {3,5,1,1} определяют одно и то жемножество.В RSL различаются конечные и бесконечные множества.

Для описания типамножества в RSL предусмотрены типовые операции -set и -infset, с помощьюкоторых строится составной тип T-set для описания конечных множеств изэлементов типа T и T-infset – для бесконечных множеств из элементов того же типа.Так, значениями типа Bool-set являются следующие конечные множества:{}{true}{false}{true, false},причем сюда включается пустое множество {}.Тип T-infset представляет как конечные, так и бесконечные множества,состоящие из элементов типа T.

Следовательно, для любого типа T тип T-set является подтипом T-infset. Например, тип Nat-infset содержит все конечные(в том числе и пустое) и бесконечные множества натуральных чисел.Способы определения множествКонечное множество может быть задано путем непосредственногоперечисления его элементов (именно этот способ был использован в приведенныхвыше примерах), в этом случае выражение, определяющее значение множества,имеет вид {v1,...,vn}, где n≥0. Кроме того, для конечных множеств,образованных из целых чисел, возможно также использование диапазона длязадания значения множества, причем левая граница диапазона не должнапревышать его правую границу (в противном случае множество будет пусто).Например, выражение {3 .. 7} задает множество {3,4,5,6,7}, {3 ..

3} –множество из единственного элемента {3} и  {3 .. 2} – пустое множество {}.20Более общей формой выражения, определяющего значение как конечного, таки бесконечного множества, является выражение вида:{ value_expr | set_limitation },называемое сокращенной (compehended) записью множества или сокращеннымвыражением. При этом выражение value_expr задает формулу для вычислениязначений элементов множества, конструкция  set_limitation определяет типэлементов множества и возможные ограничения на значения этих элементов,заданные в виде некоторого предиката.

Примером такой формы записи можетслужить выражение {2∗n | n : Nat :- n <= 3}, с помощью которого задается конечноемножество {0, 2, 4, 6} или выражение {2∗n | n : Nat}, определяющее бесконечноемножество из четных натуральных чисел.Операции над множествамиДля работы с множествами в RSL определены следующие операции:inter – пересечение (∩),union – объединение (∪),\ - вычитание,isin, ~isin – проверка принадлежности (или не принадлежности) множеству(∈,∉),<<, <<=, >>, >>= - проверка, является ли одно множество подмножествомдругого (⊂, ⊆, ⊃, ⊇),card – вычисление количества элементов множества,кроме того можно использовать операции = и ~=.Операция card вычисляет размер конечного множества, т.е. количество егоэлементов:card : T-infset -∼-> NatПри примененииНапример:кбесконечномумножеству  card возвращает chaos.card {1, 4, 56} = 3card {} = 0card {n | n : Nat} ≡ chaosУпражнения1.

Определить множество, элементами которого являются:(a) нечетные числа в диапазоне от 0 до 10,(b) простые числа в диапазоне от 2 до 20.Указания: используйте два способа задания значения множестванепосредственное перечисление его элементов и сокращенное выражение.-212.

Вычислить значение выражения:card { n | n : Nat :- 30 \ n = 0}3. Написать RSL выражение для вычисления количества точек с целочисленнымикоординатами, попадающими внутрь круга с центром в начале координат ирадиусом 5.Указания: определите множество координат соответствующих точек и найдитеколичество его элементов.4. Определить функцию:(a) max, возвращающую максимум из значений элементов непустогомножества из целых чисел,(b) choose, возвращающую некоторый элемент непустого множества изэлементов типа Т.Указания:•используйте неявный стиль описания функций,•обратите внимание на то, что обе функции определены не для всехзначений входного параметра, т.е.

являются частично вычислимыми.5. Пример использования абстракции множеств в моделе-ориентированнойспецификации. В базе данных университета содержится информация остудентах, обучающихся в этом университете, и читаемых им курсах. Пустьбаза данных университета описана следующим образом:schemeUNIVERSITY_SYSTEM =classtypeStudent,Course,CourseInfo = Course >< Student-set,University = {| (ss, cis) : Student-set >< CourseInfo-set :- is_wf(ss, cis) |}value/∗ is_wf осуществляет проверку на «хорошо сформированную» базу данных,проверяя выполнение свойства уникальности курса ∗/is_wf :- Student-set >< CourseInfo-set -> Bool,/* hasStudent проверяет, учится ли данный студент в указанном университете*/hasStudent : Student >< University -> Bool,/∗ hasCourse проверяет, читается ли данный курс в указанном университете */hasCourse : Course >< University -> Bool,/∗ studOf возвращает множество студентов заданного университета,посещающих указанный курс ∗/studOf : Course >< University -~-> Student-set,/∗ attending возвращает множество курсов, которые посещает данный студентв указанном университете ∗/attending : Student >< University -~-> Course-set,/∗ newStud добавляет нового студента к числу студентов заданногоуниверситета ∗/newStud : Student >< University -~-> University,22/∗ dropStud исключает указанного студента из числа студентов заданногоуниверситета ∗/dropStud : Student >< University -~-> University,/∗ newCourse добавляет новый курс с пустым множеством студентов к числукурсов заданного университета ∗/newCourse : Course >< University -~-> University,/∗ delCourse удаляет указанный курс из числа курсов заданного университета∗/delCourse : Course >< University -~-> Universityend(a) Написать явное определение функций, сигнатура которых приведена вданном описании.(b) Описать неявную спецификацию функции studOf.(c) Почему некоторые из перечисленных выше функций частично вычислимы?Указания:• обратите внимание на необходимость введения ограничения подтипа приопределении типа University для проверки того свойства, что для любогочитаемого в университете курса в базе данных должно быть зафиксированоединственное множество посещающих этот курс студентов (свойствоуникальности курса),• в пункте (а) воспользуйтесь явным стилем описания функций и операцияминад множествами.23ГЛАВА 4.

ОСНОВНЫЕ АБСТРАКЦИИ ДАННЫХ В МОДЕЛЕОРИЕНТИРОВАННЫХ СПЕЦИФИКАЦИЯХ. СПИСКИПонятие списка, конечные и бесконечные списки. Способы определения списков.Операции над списками. Выражение case. Использование абстракции списков вмоделе-ориентированнных спецификациях. УпражненияПонятие спискаПод списком понимается последовательность значений одного и того же типа,например:<.1, 3, 3, 1, 5.><.true, false, true.><.3.14, 0.15.>Отсюда следуют два основных свойства списка:- порядок следования элементов в списке определен и существенен,- допускается повторное вхождение элементов в список.Таким образом, выражения <.1, 3, 5.>, <.5, 3, 1.> и <.1, 3, 3, 1, 5.> определяют триразных списка.В RSL различаются конечные и бесконечные списки.

Для описания типасписка предусмотрены типовые операции -list и -inflist, с помощью которыхстроится составной тип T-list для описания конечных списков из элементов типа T иT-inflist – для бесконечных списков из элементов того же типа. Например,значениями типа Bool-list являются все конечные списки (в том числе и пустой)из булевских значений.Выражение T-inflist  задает тип как конечных, так и бесконечных списковиз элементов типа T.

Следовательно, для любого типа T тип T- list являетсяподтипом T-inflist.Способы определения списковДля списков применяются те же способы определения значений, что и длямножеств. Так, значение конечного списка может быть задано путемнепосредственного перечисления его элементов. В этом случае значение спискаопределяется выражением вида <.v1,...,vn.>, где n≥0 и все vi являютсявыражениями одного и того же типа, в частности, <..> задает пустой список. Вприведенных выше примерах был использован именно этот способ.

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