juan_gandhi: (Default)
[personal profile] juan_gandhi
Тут в разговоре про очередного, имхо, шарлатана, профессора Шалыто, выяснилось, что есть такая идея, будто для верификации программ достаточно FSM, конечного автомата.

Вот скажите мне, возьмём такой пример: даден алфавит, {a, b}, и две программы, одна генерирует все палиндромы в этом алфавите, вторая проверяет, что данная строка является палиндромом.

Скажите, какой конечный автомат может верифицировать эти программы?

Date: 2010-05-09 02:28 am (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Да вот непонятно. С одной стороны вроде нельзя, надо хотя бы уметь имена переменных запоминать и потом сравнивать. С другой стороны, это тривиальная надстройка над конечным автоматом. Может, можно препроцессинг какой запустить и избавиться от таких переменных, а потом уже верифицировать. Содержательная часть — это доказательство некоторого утверждения о программе. Доказательства каких-то тривиальных утверждений можно породить конечным автоматом. Может быть, можно придумать язык, на котором легко писать так, чтобы большинство интересных нам утверждений были в нужном смысле тривиальными (типа «определение записано правильно»). Я не знаю.

Date: 2010-05-09 03:34 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Язык вроде Агды?

Date: 2010-05-09 05:12 pm (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Я тут посмотрел комменты и понял, что очень мало об этом понимаю. Наверное, классическим FSM это делать если и можно, то слишком сложно и непонятно зачем. Но утверждать наверняка не берусь.

Date: 2010-05-10 02:36 am (UTC)
From: [identity profile] cadadr.livejournal.com
Я знаю больше Coq, его язык можно считать чем-то подходящим.

Всё опирается как раз на логику и типы,
это не бином Ньютона конечные автоматы.

http://adam.chlipala.net/cpdt/

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

June 2025

S M T W T F S
1 2345 67
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 7th, 2025 10:58 am
Powered by Dreamwidth Studios