Тут еще ознакомился с плодом сумрачного мелкого и мягкого гения - язычком
Dafny от них (собственно "москали в микрософте" именно оттуда). Язычок представляет собой что-то типа WhyML допиленного до того на чем вроде бы можно программировать (WhyML для этого и не предназначался - это утиля для опытов с доказательством правильности всяких алгоритмов
(
Read more... )
Но зачем?
Reply
Reply
Ну о чём и спич. Препроцессорные директивы воткнули в код. И? Крута, чо... В общем очередная свистоперделка, не без интересных идей, но это можно было теорией выдать, а не писать очередное мертворожденное.
Reply
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
Reply
геймдев, вот пусть и ебется с ним, и мнит себя экспертом по всему в свободное
время, таких дохуя вообще расплодилось экспертов блядь.
Reply
Leave a comment