Общее понятие верификации и валидации Примеры спецификации программ 15.12.10 Лекция 11 Предикатное программирование.

Презентация:



Advertisements
Похожие презентации
7. Технология предикатного программирования Базовые трансформации Подстановка определения на место вызова Замена хвостовой рекурсии циклом Склеивание переменных.
Advertisements

3. Математические основы 3.3. Матиндукция 5. Построение языка предикатного программирования. Методы доказательства корректности предикатных программ Методы.
Структурное программирование Неудобные ситуации в программировании Гиперфункция и оператор продолжения ветвей Свойства гиперфункций Правила доказательства.
Лекции 8-9
1 Кубенский А.А. Функциональное программирование. Глава 4. Основы лямбда-исчисления Рекурсия в лямбда-исчислении fac = λn.(if (= n 0) 1 (* n (fac.
С какой целью была построена?
Пример1 Мир
Лекция RAISE Specification Language: списки и операции со списками.
ОТОБРАЖАЮЩИЕ ФУНКЦИОНАЛЫ. Важный класс функционалов в практическом программировании на языке Лисп образуют отображающие функции или МАР-функции. МАР-функционалы.
Базовые функции Функциональное программирование Григорьева И.В.
> < = < – 5 … … … 9 8 – 4 … – – 1 15 – 10 9 – … = … = – … = … =
Основы программирования в Лиспе. Функции. Рекурсия Лекция 11.
Другие формы рекурсии II Функциональное программирование Григорьева И.В.
Функциональное программирование МарГТУ2009 г. 1 Функции. Базовые функции. Лекция 2.
ДРУГИЕ ФОРМЫ РЕКУРСИИ I Функциональноепрограммирование Григорьева И.В.
Лекция 2 Предикатное программирование 2. Постановка задачи дедуктивной верификации Программа в виде тройки Хоара, однозначность программы, тотальность.
1 Кубенский А.А. Функциональное программирование. Глава 4. Основы лямбда-исчисления Рекурсия в лямбда-исчислении fac = λn.(if (= n 0) 1 (* n (fac.
Лекция RAISE Specification Language: базовые типы, логика, декартовы произведения, множества и операции с множествами.
Установочная лекция по дисциплине Старший преподаватель каф. ВТ Юлия Вадимовна Новицкая
Лекция RAISE Development Method: некоторые виды спецификаций и проверка согласованности моделей.
Транксрипт:

Общее понятие верификации и валидации Примеры спецификации программ Лекция 11 Предикатное программирование

Построить спецификации 1.В списке вставить элемент x после элемента y 2. Инвертировать список 3. Удалить элемент из списка

1. В списке вставить элемент x после элемента y type T; type S = list(T); ins(S s, T x, y: ????) pre ?????????? post ????????? ;

1. В списке вставить элемент x после элемента y type T; type S = list(T); ins(S s, T x, y: S s1) post Ins(S s, T x, y, S s1) ; formula Ins(S s, T x, y, S s1) = s=nil ? s1 = s: s.car=y ? exists S s2. Ins(s.cdr,x,y,s2) & s1= y + x + s2 : exists S s2. Ins(s.cdr,x,y,s2) & s1=s.car + s2;