Jump to content

Предикативное программирование

Предикативное программирование — это оригинальное название формального метода спецификации и уточнения программ , недавно получившего название «Практическая теория программирования», изобретенного Эриком Хенером . Основная идея заключается в том, что каждая спецификация представляет собой двоичное ( логическое ) выражение, которое истинно для приемлемого поведения компьютера и ложно для неприемлемого поведения. Отсюда следует, что уточнение — это всего лишь следствие . Это простейший формальный метод и наиболее общий, применимый к последовательным, параллельным, автономным, взаимодействующим, завершающим, незавершающим, работающим в естественном времени, реальном времени, детерминированным и вероятностным программам и включающий временные и пространственные границы.

Команды в языке программирования считаются особым случаем спецификации — тех спецификаций, которые компилируются. Например, если переменные программы , , и , команда := +1 эквивалентно спецификации (двоичное выражение) = +1 ∧ = = в котором , , и представляют значения переменных программы перед присвоением и , , и представляют значения переменных программы после присвоения. Если спецификация > , мы легко докажем ( := +1) ⇒ ( > ), в котором говорится, что := +1 подразумевает, или уточняет, или реализует > .

Доказательства цикла значительно упрощены. Например, если является целочисленной переменной, чтобы доказать, что

пока >0 делать := -1 из

уточняет или реализует спецификацию ≥0 ⇒ =0, докажи

если >0 тогда := –1; ( ≥0 ⇒ =0) еще быть ⇒ ( ≥0 ⇒ =0)

где = ( = ) — пустая команда или команда, ничего не делающая. Нет необходимости в инварианте цикла или наименьшей фиксированной точке . Петли с несколькими промежуточными мелкими и глубокими выходами работают одинаково. Эта упрощенная форма доказательства возможна, поскольку команды программы и спецификации можно осмысленно смешивать.

Время выполнения (верхние границы, нижние границы, точное время) можно доказать таким же образом, просто введя переменную времени. Чтобы доказать завершение, докажите, что время выполнения конечно. Чтобы доказать непрерывность, докажите, что время выполнения бесконечно. Например, если переменная времени , а время измеряется путем подсчета итераций, чтобы затем доказать, что выполнение предыдущего цикла while требует времени когда изначально неотрицательен и занимает вечность, когда изначально отрицательно, докажите

если >0 тогда := –1; := +1; ( ≥0 ⇒ = + ) ∧ ( <0 ⇒ =∞) иначе быть ⇒ ( ≥0 ⇒ = + ) ∧ ( <0 ⇒ =∞)

где = ( = = ).

Библиография [ править ]

Внешние ссылки [ править ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e0224407b159eb5bbac2202150674ca9__1714046040
URL1:https://arc.ask3.ru/arc/aa/e0/a9/e0224407b159eb5bbac2202150674ca9.html
Заголовок, (Title) документа по адресу, URL1:
Predicative programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)