The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Сверхнадёжное ядро seL4 будет переведено в разряд открытых п..."
Отправлено Ordu, 25-Июн-14 10:29 
> Но математическое обоснование должно же, по идее, подразумевать существование (корректной и полной)
> модели железа, на котором это будет крутиться? Что, понятное дело, нереально.

Не должно. :)

В идеале так надо было бы, конечно. Но если играть в идеалистов, то вообще не стоит браться за написание программ, потому что никто не знает как писать программы без багов. В общем, если мы позиционируем себя как практиков, то мы должны признать, что неполная модель железа использованная в доказательстве, всё же лучше чем отсутствие этой самой модели. Правда да, тесты позволяют протестировать что-либо на реальном железе, но меня если честно, сильно сомневает способность тестов выявить какую-то "железную" проблему. Разве что документированную, многократно описанную, с существующим эксплоитом в паблике.

Собственно:

> Hardware management: the proof tries to make only the most minimal assumptions on the underlying
>  hardware. It abstracts from cache consistency, cache colouring and TLB (translation lookaside
> buffer) management. The proof assumes these functions are implemented correctly in the assembly
> layer mentioned above and that the hardware works as advertised. The proof also assumes that
> especially these three hardware management functions do not have any effect on the behaviour of
> the C program. This is only true if they are used correctly.

Взято отсюда: http://ertos.nicta.com.au/research/l4.verified/proof.pml

Причём эта ссылка достаточно древняя, например, сейчас они уже не доверяют компилятору, и проверяют также и сгенерированный машинный код на корректность: http://www.techworld.com.au/article/547841/nicta_release_dro...

> То есть, вероятно, математические доказательства корректности - это интересное
> упражнение, но для практики не больше ли пользы в хорошем покрытии юнит-тестами и
> основательном объеме fuzzy-тестирования?

Нет, математическое доказательство полезнее. Потому что оно работает не с конкретными наборами входных данных, а с множествами этих самых наборов. Представь себе, в качестве примера, функцию высчитывающую корни квадратного уравнения, которая на входе принимает три числовых значения, на выходе даёт 0, 1 или 2 числовых значения. Сколько разных случаев можно проверить тестом? 5? 10? 100? 1000? 10000? Математически же можно проверить все возможные случаи, несмотря на то, что количество этих случаев, равно бесконечности (практической бесконечности, поскольку все случаи проверить практикой невозможно).

Конечно есть свои нюансы. Для того, чтобы доказать функциональную корректность кода, требуется предварительно написать спецификацию этого кода на формальном языке. Спецификация тоже может содержать ошибки. Но, поскольку и тесты также могут содержать ошибки, это нельзя считать недостатком метода по сравнению с написанием тестов.

А вообще, это весьма перспективное направление. Варнинги компилятора придумали давно. Потом кому-то их показалось мало, и создали статистические анализаторы. Ребятам же показалось мало проверки кода по паттернам, и они попытались решить общий случай. Это следующая итерация того же самого. Которая сейчас лишь пытается взлететь, но когда взлетит и войдёт в обыденность, её уже будут вытеснять системы автоматического написания программ по спецификациям. И вот тогда, востребованность программистов на рынке труда упадёт ниже плинтуса, и останутся одни быдлокодеры, а настоящие программисты вымрут как динозавры.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.

На сайте действует частичное премодерирование - после публикации некоторые сообщения от анонимов могут автоматически скрываться ботом. После проверки модератором ошибочно скрытые сообщения раскрываются. Для ускорения раскрытия можно воспользоваться ссылкой "Сообщить модератору", указав в качестве причины обращения "скрыто по ошибке".



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру