На тему привидений

Dec 01, 2019 02:15

Тут еще ознакомился с плодом сумрачного мелкого и мягкого гения - язычком Dafny от них (собственно "москали в микрософте" именно оттуда). Язычок представляет собой что-то типа WhyML допиленного до того на чем вроде бы можно программировать (WhyML для этого и не предназначался - это утиля для опытов с доказательством правильности всяких алгоритмов ( Read more... )

verification, Языки программирования, dafny, Компутерщина

Leave a comment

anonymous December 1 2019, 07:49:39 UTC
не генерируя оверхеда можно было в предикате сослаться

Но зачем?

Reply

kouzdra December 1 2019, 08:08:05 UTC
В данном случае - чтобы задать в инварианте требование неизменности фрагмента. Если верификатор не сумеет его доказать - программа не откомпилируется.

Reply

vladicusmagnus December 1 2019, 08:37:28 UTC

Ну о чём и спич. Препроцессорные директивы воткнули в код. И? Крута, чо... В общем очередная свистоперделка, не без интересных идей, но это можно было теорией выдать, а не писать очередное мертворожденное.

Reply

kouzdra December 1 2019, 09:12:11 UTC
Причем тут "препроцессор" вообще - если компилятор не сможет доказать что инвариант цикла (в данном случае - неизменность фрагмета массива) гарантировано выполняется - программа не откомпилируется.

ghost var нужны имено для задания инвариантов без порождения лишнего кода. С точки зрения компилятора они ведут так же как обычные и на общих правах участвую в процессе верификации "как если бы были настоящими" - но в код это не попадает.

Аналогом этого кода в С было бы что-то вроде:

std::vector a = ...
...
auto const inv = std::vector (a [lo], a [hi]);
for (int i = 0; i != a.size(); ++ i) {
assert (inv == std::vector (a [lo], a [hi]));
...
}
Только без оверхеда и с контролем условия во время компиляции

Reply

anonymous December 1 2019, 15:00:55 UTC
У вас есть препроцессор, который умеет проверять инварианты? Название в студию.

Reply

anonymous December 1 2019, 22:06:54 UTC
Блядь, ну нахуя с тупым жывтоне в диалог? Оно умеет там свой какой-то сраный
геймдев, вот пусть и ебется с ним, и мнит себя экспертом по всему в свободное
время, таких дохуя вообще расплодилось экспертов блядь.

Reply


Leave a comment

Up