Офіційна перевірка пройшла довгий шлях, але зазвичай промисловість / широко використовувані інструменти відстають від останніх досліджень. Ось кілька останніх зусиль у цьому напрямку:
Spec # http://research.microsoft.com/en-us/projects/specsharp/
Це розширення C #, яке підтримує кодові контракти (до / після умов та інваріантів) і може використовувати ці контракти для різних типів статичного аналізу .
Подібні проекти для цього існують і для інших мов, таких як JML для java, і у Ейфеля це вбудовано.
Подальше, такі проекти, як шлам та вибух, можуть використовуватися для перевірки певних поведінкових властивостей з мінімальними анотаціями / втручаннями програмістів, але все ще не можуть мати справу з повною загальністю сучасних мов (такі речі, як ціла арифметика переповнення / покажчика, не моделюються).
Я вважаю, що в майбутньому ми побачимо набагато більше цих прийомів, що застосовуються на практиці. Основним бар'єром є те, що програмних інваріантів важко зробити без анотацій вручну, а програмісти зазвичай не хочуть надавати ці анотації, оскільки це занадто виснажливо / забирає багато часу.