On 2010.04.27 16:19, Artem Chuprina wrote:
Oleksandr Gavenko -> debian-russian@lists.debian.org @ Tue, 27 Apr 2010
15:37:28 +0300:
>> OG> В будущем правда имеется перспектива использования формальных
>> OG> методов для доказательства корректности работы программы.
>>
>> С добрым утром. Век уже как доказано, что эта задача в общем виде
>> алгоритмически неразрешима.
>>
>> То есть для реального доказательства надо либо ОЧЕНЬ специально писать
>> проверяемую программу, либо _придумывать_ доказательство для данной
>> конкретной. Причем во втором случае размер доказательства (и,
>> соответственно, вероятность ошибок уже в нем) растет принципиально
>> быстрее, чем размер самой программы. Даже не экспоненциально, а что-то
>> типа гиперэкспоненты.
>>
OG> Это и подразумевалось. Доказательства выполняются вручную в
OG> proof assistant.
OG> Сейчас некоторые процессоры имеют доказательство корретности
OG> работы некоторых своих подчастей.
От то-то и оно, что _некоторые_ процессоры и _некоторых_ подчастей. По
сравнению с кодом хотя бы libc там доказывать-то нечего... И все равно
полного доказательства про весь процессор нету. Да и в том, что есть,
еще надо доказать отсутствие ошибок :-)
Я бы сказал так - на Си код тяжело верифицировать,
скорее всего придется отказаться от существующего кода
и писать на более формальном языке - например Лиспе.
OG> Доказательство же позволит избежать полного невозможного
OG> перебора для тестирования.
Нивапрос. Если его удастся, во-первых, построить, а во-вторых,
проверить.
Построить действительно на данный момент тяжело.
Проверка же выполняется просто -
убедаемся в правильности формализации
и коректности правил вывода.
Доказательство проверится автоматичеки.
Например бегло просмотрите tutorial:
http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html
Тесты ту же вероятность обычно дают дешевле.
В доказательстве нет места вероятности.
Тесты могут обнаружить ошибку,
но не могут гарантировать их отсутствие,
тогда как доказательство гарантирует.
Состояние дел можно узнать по запросам HOL, verification
на http://citeseerx.ist.psu.edu/
--
С уважением, Александр Гавенко.
--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4bd6efc3.9030...@bifit.com.ua