OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 23 Октябрь, 2017 16:35

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: Принцип приоритета угроз
СообщениеДобавлено: Воскресенье, 01 Октябрь, 2017 18:36 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7681
Откуда: Троицк, Москва
Д.В.Дагаев (РОСАТОМ) на Дне Оберона 2017 сформулировал (в докладе, по названию которого ничего такого ожидать было нельзя) абсолютно фундаментальный принцип:

Цитата:
При анализе новых фич (предлагаемых, например, к добавлению в язык программирования сверх некоторого минимума) приоритет следует отдавать не новым возможностям, а потенциальным угрозам, которые могут возникнуть из-за этих новых фич.
Приоритетное внимание угрозам в ущерб любым удовольствиям -- это, на самом деле, фундаментальный принцип работы центральной нервной системы, выработанный Эволюцией за 4 миллиарда лет.

Понятно, почему именно "росатомный" программист сформулировал принцип: в докладе крупно фигурировал жёлтый значок радиационной опасности:

Изображение.

И понятно, почему принцип стал актуален именно сейчас: кругом все эти беспилотные автомобили, многотонные нории, отрубающиеся системы управления воздушным движением в аэропортах и т.д. и т.п.

Принцип отлично проясняет минимализм Оберона -- такой формулировки сильно не хватало.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Воскресенье, 01 Октябрь, 2017 19:07 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 118
Откуда: Москва
В докладе https://forum.oberoncore.ru/viewtopic.php?f=127&p=101972#p101972.
Новые программные продукты привносят, во-первых, новые угрозы (не верифицируемость, уязвимость к кибер-атакам), и только во-вторых, новые преимущества.
Вложение:
alarmDP.png
alarmDP.png [ 5.06 КБ | Просмотров: 429 ]
•Отсутствие обеспечение целостности при работе с указателями.
Вложение:
alarmMP.png
alarmMP.png [ 5.32 КБ | Просмотров: 428 ]
•Отсутствует изоляция данных от других задач.
Вложение:
alarmSO.png
alarmSO.png [ 5.12 КБ | Просмотров: 428 ]
•Возможность переполнения стека.
Вложение:
alarmLIFO.png
alarmLIFO.png [ 4.03 КБ | Просмотров: 428 ]
•Обеспечение LIFO-последовательности вызова сопрограмм.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Воскресенье, 01 Октябрь, 2017 19:18 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 118
Откуда: Москва
Купирование последствий угроз может быть дорогостоящим (например, защита в многопоточных приложениях).
Нассим Талеб писал(а):
Чистый убыток такого рода, ущерб от лечения (обычно скрытый или отложенный), который превышает пользу,
называется ятрогенией (буквально причиненный врачом)

Консервативный стиль Оберона - в отказе от новомодных программных технологий (выбрасывание всего лишнего), польза от которых сомнительна, а угроза причинения вреда - реальна.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Среда, 04 Октябрь, 2017 11:45 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1043
Откуда: СССР v2.0 rc 1
Я тут нечаянно подумал, ведь можно к программной системе применить критерий устойчивости Найквиста?
Есть вполне осязаемые метрики кода, как количественные, та и качественные.
Оберон -- про качество, код -- про количество.
Оберон -- марка стали, код -- размер щита из этой стали.
Какие будут предложения?)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Среда, 04 Октябрь, 2017 11:57 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1007
Откуда: Россия, Чебоксары
prospero78 писал(а):
Я тут нечаянно подумал, ведь можно к программной системе применить критерий устойчивости Найквиста?
Какой, к лешему, Найквист для настолько нелинейной системы?!
Каждый байт кода - потенциальная бифуркация с серьёзными последствиями.
Тут никакая метрика не даст даже качественной оценки, имхо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Среда, 04 Октябрь, 2017 13:43 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1043
Откуда: СССР v2.0 rc 1
Да ладно??
Использование типизированных ссылок против не типизированных никакого качества не даёт?
Или сигнатура функции по результату и параметрам ведь лучше чем просто произвольные параметры?

Коэффициент для выравнивания качества можно, скажем, предусмотреть х500. Почему нет?
А если есть аппаратная поддержка пространства модулей/кода/данных/стека -- разве это не критерий?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Среда, 04 Октябрь, 2017 16:17 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1007
Откуда: Россия, Чебоксары
prospero78 писал(а):
Использование типизированных ссылок против не типизированных никакого качества не даёт?
Само по себе - нет.
Только в комплекте с дисциплиной разработки.
На трудозатраты влияет прямо (или даже экспоненциально :wink: ), но трудозатраты и качество не взаимозависимы.

Цитата:
Коэффициент для выравнивания качества можно, скажем, предусмотреть х500. Почему нет?
Да пожалуйста. Никто не запрещает использовать среднюю температуру по больнице. :D

Цитата:
А если есть аппаратная поддержка пространства модулей/кода/данных/стека -- разве это не критерий?
Конечно, критерий.
Я не против критериев. Я о том, что применение Найквиста к столь сильно "устреднённым" моделям практически бессмысленно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Среда, 04 Октябрь, 2017 16:39 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1043
Откуда: СССР v2.0 rc 1
Alexey_Donskoy писал(а):
На трудозатраты влияет прямо (или даже экспоненциально :wink: ), но трудозатраты и качество не взаимозависимы.

Вообще-то, взаимозаменяемы. Правда, я умолчу какова будет цена. Всё в этом мире имеет свою цену.
Alexey_Donskoy писал(а):
Я не против критериев. Я о том, что применение Найквиста к столь сильно "устреднённым" моделям практически бессмысленно.

х500 -- это усреднение?))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Среда, 04 Октябрь, 2017 20:13 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 172
prospero78 писал(а):
Оберон -- про качество
...
Коэффициент для выравнивания качества можно, скажем, предусмотреть х500. Почему нет?

И как же мерить качество? К примеру, вот здесь ограничений больше, чем в Оберонах (прежде всего -- статическое выделение ресурсов). Но в итоге любая программа сразу же по построению, как минимум, с гарантией отсутствия deadlock-ов и livelock-ов. И по сравнению с Обероном, к примеру, на борту имеются даже "generic"-и для обобщённых алгоритмов. Т.е. что-то урезано, но нечто другое расширено, и, главное, имеется условный формальный контроль -- вроде есть "качество", но могут быть ограничены возможности.
Но, в принципе, динамическое выделение ресурсов (включая запуск процессов) "сдерживается" лишь проблематикой верификации. Однако возможны техники частичных проверок, и если допустить "динамику" -- возможностей возникает существенно больше, и вновь под контролем.
В общем, лишь "выбрасывание всего лишнего" -- вряд ли можно принимать за фундаментальный критерий качества.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Среда, 04 Октябрь, 2017 21:46 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8825
Откуда: Россия, Орёл
Для встроенки динамика может быть структурирована по стадиям рантайма.

viewtopic.php?f=152&t=6126


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Четверг, 05 Октябрь, 2017 19:23 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 118
Откуда: Москва
Важна также и ПРЕЗУМПЦИЯ НАЛИЧИЯ УГРОЗ.

У Дейкстры и Хоара доказывается корректность программы исходя из некоторых необходимых условий. Если условия не удовлетворяются, программа не корректна. Дейкстра говорит в идеале об "интеллектуально-управляемых программах".
Я разобрал программу по зернышкам и отдаю на экспертизу - мне отвечают, а докажите еще отсутствие взаимодействия каждого оператора одной процедуры с каждым оператором другой процедуры. Это - правильный подход.

Зато, когда речь идет о хорошем коммерческом ПО, предлагается всегда ПРЕЗУМПЦИЯ ОТСУТСТВИЯ УГРОЗ.
PSV100 писал(а):
К примеру, вот здесь ограничений больше, чем в Оберонах (прежде всего -- статическое выделение ресурсов). Но в итоге любая программа сразу же по построению, как минимум, с гарантией отсутствия deadlock-ов и livelock-ов

Я знаю, я в курсе АСУТП, но как разработчик я никаких гарантий не дам, до тех пор, пока мне не докажут каждую строчку кода.

Верификация посредством тестирования доказательством корректности не является.
Дейкстра писал(а):
тестирование программы может весьма эффективно продемонстрировать наличие ошибок, но безнадежно неадекватно для демонстрации их отсутствия. Единственный эффективный способ значительно поднять уровень доверия к программам - предоставить убедительное доказательство их корректности.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Четверг, 05 Октябрь, 2017 22:57 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7681
Откуда: Троицк, Москва
Дмитрий Дагаев писал(а):
Важна также и ПРЕЗУМПЦИЯ НАЛИЧИЯ УГРОЗ.
Да, это должно быть явной частью Принципа.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Пятница, 06 Октябрь, 2017 09:38 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1043
Откуда: СССР v2.0 rc 1
Дмитрий Дагаев писал(а):
Верификация посредством тестирования доказательством корректности не является.

Совершенно верно.
Можно сколько угодно тестов написать, но если память сбоит -- то код даже после верификатора будет глючить.
Доказательство трудоёмко и зачастую невозможно. Есть замечательная русская пословица:"Гладко было на бумаге да забыли про овраги"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Пятница, 06 Октябрь, 2017 18:29 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 172
Дмитрий Дагаев писал(а):
PSV100 писал(а):
К примеру, вот здесь ограничений больше, чем в Оберонах (прежде всего -- статическое выделение ресурсов). Но в итоге любая программа сразу же по построению, как минимум, с гарантией отсутствия deadlock-ов и livelock-ов

Я знаю, я в курсе АСУТП, но как разработчик я никаких гарантий не дам, до тех пор, пока мне не докажут каждую строчку кода.
Верификация посредством тестирования доказательством корректности не является.

В тех краях как раз компилятор выдаёт программы только после базовой верификации и гарантирует начальную достижимость. Здесь уточнения:
viewtopic.php?f=152&t=6126#p102120


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Пятница, 06 Октябрь, 2017 18:33 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 172
prospero78 писал(а):
Можно сколько угодно тестов написать, но если память сбоит -- то код даже после верификатора будет глючить.
Доказательство трудоёмко и зачастую невозможно. Есть замечательная русская пословица:"Гладко было на бумаге да забыли про овраги"

У Мухопада были обзорчики принципов реализаций самоконтролируемых автоматов. См. в этом сборнике -- с.32:
http://docplayer.ru/39045765-Informacio ... istem.html
И ещё:
http://www.problem-info.sscc.ru/2013-1/1.pdf

Я о том, что кому нужно, тот и о железе позаботится. А верификация модели подтвердит, что все критические траектории системы правильно заданы (к примеру, не забыты спекулятивные вычисления в виде дублирования процессов, на разном железе или/и с разными алгоритмами, с последующим консенсусом -- анализ кворума результатов).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип приоритета угроз
СообщениеДобавлено: Пятница, 06 Октябрь, 2017 19:45 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1043
Откуда: СССР v2.0 rc 1
Уважаемый PVS100!))
Не считаю приличным обсуждать то, в чем половину слов не понимаю))
Академические исследования, безусловно, надо осваивать. Но освоение -- это тоже технология и к этой технологии предъявляются всё те же требования: легко понять, легко внедрить, легко поддерживать.
Шаги освоения должны быть понятными. Технология должна жизнь упрощать, а не наращивать сложность.
И не забывает про правило 80/20.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2017, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB