Насколько мне известно, самый мощный статический язык DbC на данный момент - Spec # от Microsoft Research . Он использует мощный инструмент статического анализа под названием Boogie , который, в свою очередь, использует мощный средство проверки теорем / ограничителей, называемое Z3 , для доказательства выполнения или нарушения контрактов во время разработки.
Если средство проверки теорем может доказать, что контракт будет всегда нарушаться, это ошибка компиляции. Если доказатель теоремы может доказать, что контракт никогда не будет нарушен, это оптимизация: проверки контракта удаляются из окончательной DLL.
Как указывает Чарли Мартин, проверка контрактов в целом эквивалентна решению проблемы остановки и, следовательно, невозможна. Таким образом, будет много случаев, когда доказатель теоремы не может ни доказать, ни опровергнуть договор. В этом случае выполняется проверка во время выполнения, как и в других, менее мощных системах контрактов.
Обратите внимание, что Spec # больше не разрабатывается. Механизм контрактов был извлечен в библиотеку под названием Кодовые контракты для .NET , которая будет частью .NET 4.0 / Visual Studio 2010. Однако языковая поддержка контрактов не будет.