URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 57847
[ Назад ]

Исходное сообщение
"Найден способ формального подтверждения соответствия ПО техн..."

Отправлено opennews , 14-Авг-09 12:51 
Ученые из австралийского исследовательского центра NICTA нашли (http://tech.slashdot.org/story/09/08/13/0827231/Worlds-First...) способ математически доказать, что определенное ПО не содержит ошибок и, соответственно, не станет причиной отказа управляемого им оборудования. Проведение такого рода тестирования жизненно необходимо во многих отраслях промышленности, таких как, например, авиа и автомобилестроение, где сбои в бортовой компьютерной сети возникают чаще, чем поломки механических агрегатов.

Для проведения теста (http://ertos.nicta.com.au/research/l4.verified/) было взято микроядро Secure Embedded L4 (seL4), содержащее 8700 строк кода. Ядро является ключевым компонентом любых современных встраиваемых устройств, и имеет неограниченный доступ ко всем работающим системам. Суть тестирования заключалась в том, чтобы доказать, что написанный код удовлетворяет всем тем спецификациям, которые были заложены на этапе проектирования. В результате, испытание...

URL: http://tech.slashdot.org/story/09/08/13/0827231/Worlds-First...
Новость: http://www.opennet.dev/opennews/art.shtml?num=23011


Содержание

Сообщения в этом обсуждении
"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено Аноним , 14-Авг-09 12:51 
что-то они там упустили

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено AlexanderYT , 14-Авг-09 12:56 
Ну ты им расскажи об этом.

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено Aleksey , 14-Авг-09 13:03 
У нас сегодня определенно день надуманных новостей. В тексте новости явно рассказано, что исследователям удалось создать первое ядро системы для которого для которого было проведено доказательство 100% соответствия тех.заданию. (First Formally-Proven OS Kernel).

А механизмы доказательства корректности алгоритмов известны не одно десятилетие и вовсю применяются в областях, где это необходимо.


"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено Aleksey , 14-Авг-09 13:04 
И как правильно заметили в комментарии к исходной новости:

It only means it meets the spec, not that the spec is correct ...

It does not mean that the faulty or erratic hardware cannot crash the system

It does not mean that other programs cannot crash and lose your data ...

It does not mean that buggy device drivers can make your system unusable

It does not mean that the system is perfect, only that it will always do what it is supposed to ... which may not be what you want ...


"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено dq0s4y71 , 14-Авг-09 13:20 
Ну и нормально. И хорошо, что пока еще не изобрели методику, которая за меня определяет _что_ я хочу. :)

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено Vkni , 11-Июн-20 03:26 
> only that it will always do what it is supposed to

Скорее, что она работает не выходя за рамки спецификации... Это не совсем "supposed to".

Скажем, практически все спецификации на сортировку будут удовлетворены командами sort | uniq. А значительная часть спецификаций из всяких самоучителей вообще пропустит такую функцию сортировки:

sort :: Ord a => [a] -> [a]
sort _ = []

Нельзя ведь сказать, что результат выполнения этой функции неотсортирован!


"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено anonymous , 14-Авг-09 15:42 
> А механизмы доказательства корректности алгоритмов известны не одно десятилетие и вовсю применяются в областях, где это необходимо.

Вот-вот. Поправьте новость уже, без слез смотреть нельзя.


"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено anonimous , 14-Авг-09 13:17 
Риторический вопрос: как верифицировать верификатор?

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено zazik , 14-Авг-09 13:48 
Первый вопрос, который пришёл в голову. Лем очень неплохо в Ананке над верификаторами постебался.

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено nathoo , 14-Авг-09 15:21 
примерно так же, как компилируют компиляторы: первым делом ;-)

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено anonymous , 14-Авг-09 15:24 
> Риторический вопрос: как верифицировать верификатор?

Так ведь как обычно. Выбрать аксиоматику (ту же ZFC) и пожалуйста, в бой.


"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено Andrew Kolchoogin , 14-Авг-09 20:53 
Никак. "Проблема обнаружения закладки в компиляторе" неразрешима.

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено Аноним , 28-Янв-11 16:12 
Очередное ламерство от вас :(

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено FractalizeR , 14-Авг-09 13:21 
И все равно непонятно, что именно доказано?
>математически доказать, что определенное ПО не содержит ошибок

Слишком общая формулировка. Никакой конкретики.


"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено Аноним , 14-Авг-09 13:28 
>И все равно непонятно, что именно доказано?

Доказано соответствие спецификации.


"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено white_raven , 14-Авг-09 13:50 
А кто будет отлавливать баги в Isabelle???

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено psyhomo , 14-Авг-09 13:50 
ого! (просто нет других слов)

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено fooser , 14-Авг-09 13:52 
Пускай программу проверки проверят ею же. не исключено что программа не пройдет проверки корректности ;)

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено uZver , 14-Авг-09 14:09 
+1. Если они действительно смогут математически доказывать корректность программы, то это уменьшит количество проблем и багов на порядок.

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено Имя , 14-Авг-09 14:26 
Это смотря кем ещё программа написана. Есть такие программные гении (которые даже не знают что такое указатель), что анализируя их программы быстро исдохнет любая математическая логика.

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено psyhomo , 14-Авг-09 15:01 
Угу. Вечный вопрос - "можно ли математически описать хаос?". Как-то тоже пришлось поглядеть на творчество и фантазию "программных гениев" изнутри.

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено uZver , 14-Авг-09 21:53 
> Есть такие программные гении (которые даже не знают что такое указатель), что анализируя их программы быстро исдохнет любая математическая логика.

дык в этом случае пофигу - прописать в ТЗ что код должен проходить анализ. Потому сдыхание анализатора это несоответствие ТЗ, а сам програмер идет переучиваться.


"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено Aleksey , 14-Авг-09 15:15 
Выдержка из с их страницы (statistic):
=======
Сколько строк было проверено?
> 7500 строк на C. Пока не проверен эсемблерный код и код, ответственный за загрузку (1200 строк)

Насколько большое получилось доказательство?

Около 200000 строк кода на языке доказательств Isabelle. Весь код доказательства был написан вручную с последующей машинной проверкой. В сумме это приблизительно 3500 страниц формата A4, если его распечатать (высота распечатки будет около полуметра высотой).

Это одно из самых больших формальных доказательств из когда-либо сделаных. Для примера, известная теорема о четырех красках (которая тоже была доказана машиной) состояла из 60000 строк в доказательстве теоремы. Единственное известное доказательство, которое больше этого принадлежит проекту Verisoft (они сообщают о 245000 строк доказательства). И конечно, в математике, чем меньше доказательство, тем оно понятнее :)
=======

Так что ни о каком прорыве в программировании речи не идет.


"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено uZver , 14-Авг-09 21:55 
> Так что ни о каком прорыве в программировании речи не идет.

прорыв будет если мат.правила для доказательства будут примерно 1-1 к коду.


"Найден способ формального подтверждения 100% отсутствия ошиб..."
Отправлено Slava_K , 14-Авг-09 21:32 
>> Итоговый анализ выполняется с помощью интерактивной программы Isabelle

А кто проверит Isabelle? Вдруг там ошибка?


"Найден способ формального подтверждения 100% отсутствия ошиб..."
Отправлено аноним , 14-Авг-09 23:36 
Не отсутствия ошибок, а соответствия спецификации, а вообще это неразрешимая проблема в общем случае

"Найден способ формального подтверждения 100% отсутствия ошиб..."
Отправлено Vkni , 11-Июн-20 03:20 
+1

Новость в стиле "учёный изнасиловал журналиста". Проверка спецификации, кстати, отдельная задача. ;-)


"Найден способ формального подтверждения 100% отсутствия ошиб..."
Отправлено Качатель , 15-Авг-09 19:37 
Каким образом они собираются ТЕКСТОВУЮ спецификацию подавать на вход программы для её проверки на соответствие с КОДОМ.

"Решена задача самоприменимости!"
Отправлено FrBrGeorge , 16-Авг-09 08:16 
Следующий шаг -- создание достаточно богатой непротиворечивой теории, включающей в себя инструментарий, с помощью которого доказывается непротиворечивость этой теории.

"Решена задача самоприменимости!"
Отправлено nuclight , 18-Авг-09 15:00 
>Следующий шаг -- создание достаточно богатой непротиворечивой теории, включающей в себя инструментарий,
>с помощью которого доказывается непротиворечивость этой теории.

Это напрямую запрещено теоремой Гёделя.


"Решена задача самоприменимости!"
Отправлено Аноним , 28-Янв-11 15:31 
Достаточно богата еще не значит полна. С Геделем все ОК )

"Найден способ формального подтверждения соответствия ПО техн..."
Отправлено Онаним , 17-Авг-09 16:17 
А если наша Гостехкомиссия (или кто там щас вместо неё) будет юзать эту штуку - время выдачи сертификата уменьшится или увеличится?