SPIN (верификатор)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
SPIN
Тип

Верификация, Проверка моделей

Разработчик

Gerard J. Holzmann

Написана на

C, Promela, LTL

Операционная система

Linux, Windows, Mac OS X

Первый выпуск

1991

Последняя версия

6.2.3 (24 October 2012)

Состояние

Развивается

Лицензия

свободная

Сайт

spinroot.com

SPIN (англ. Simple Promela Interpreter) — утилита для верификации корректности распределенных программных моделей. Служит для автоматизированной проверки моделей. Развивается Gerard J. Holzmann и его коллегами из Unix group центра Computing Sciences Research Center в Bell Labs начиная с 1980 года. С 1991 года программа распространяется бесплатно вместе с исходными кодами.

Системы, подлежащие верификации должны быть изложены на языке Promela (англ.)русск. (от англ. Process Meta Language — язык метапроцессов), который поддерживает моделирование асинхронных распределенных алгоритмов как недетерминированных автоматов. Свойства, которые требуется проверить, выражаются как формулы Linear temporal logic (англ.)русск. (LTL, Темпоральная логика линейного времени), которые затем инвертируются и преобразуются в автоматы Бюхи (англ.)русск.. Целью SPIN является построение контрпримера, то есть пересечения модели Крипке, получаемой из описания на Promela, и автомата Бюхи.

Кроме проверки моделей, SPIN может работать в качестве симулятора, исполняя один из возможных путей работы системы и предоставляя программисту результаты этого исполнения.

В отличие от многих программ для проверки моделей, SPIN не выполняет работу сам, а генерирует программу на языке Си, которая решает конкретную задачу. За счет этого достигается экономия памяти и повышение производительности, и становится возможным использовать фрагменты кода на языке Си непосредственно из модели. SPIN предоставляет множество опций для ускорения проверки моделей:

  • partial order reduction
  • сжатие состояний
  • хеширование битовых состояний (вместо хранения полных состояний используется их хеш, это уменьшает требования к объему памяти но снижает полноту)
  • weak fairness enforcement

С 1995 года почти каждый год проводятся семинары SPIN для пользователей программы и тех, кто занимается исследованиями в области проверки моделей.

В 2001 году Ассоциация вычислительной техники (ACM) вручила автору SPIN награду System Software Award.[1]

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

Ссылки[править | править вики-текст]