14.10.2011: Вышла версия 2.7 инструмента верификации BLAST

Центр верификации Linux опубликовал новую версию свободного инструмента верификации BLAST 2.7, который автоматически анализирует Си-программы на предмет нарушения заданных правил корректности посредством реализации метода итеративного уточнения абстракции программы на основе контр-примеров CEGAR.

Версия BLAST 2.7 стала результатом улучшений, внесённых специалистами Центра верификации Linux в BLAST 2.6 в рамках программы Linux Driver Verification , а также в рамках подготовки к Competition on Software Verification, которое состоится в рамках конференции TACAS'12.

Основные улучшения коснулись следующих направлений.

  • Ускорении работы
    • Реализован быстрый алгоритм анализа алиасов дял указателей на структуры,
      не имеющий ограничений на глубину разыменования.
    • Улучшено кеширование запросов постусловий путем добаления их нормализации.
    • Ускорено слияние состояний решетки.
  • Новые возможности
    • Реализована поддержка анализа функциональных указателей (опция -fp),
      для ситуаций когда одна переменная хранит указатель не более чем на одну функцию.
    • Обновлен CSIsat, что теперь позволяет анализировать большие целочисленные константы.
  • Улучшения в инфраструктуре
    • Отделены поддерживаемые опции от неподдерживаемых.
      Вновь добавленные опции включены по умолчанию.
    • Регрессионные тесты теперь можно запустить в режиме "соревнований".
  • Исправления ошибок
    • Исправлен алгоритм O(logN) кеширования useful blocks,
      что позволяет избежать большей части исключений вида FOCIinterface.SAT.

Скачать исходные коды и бинарные сборки для платформы Linux можно из раздела Files сайта проекта. Также смотрите страницу оригинального проекта.