Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
SPIN model checker
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Tool for verifying the correctness of software models}} {{Multiple issues| {{More citations needed|date=September 2020}} {{Third-party|date=September 2020}} }} {{Infobox software | name = SPIN | logo = | screenshot = | caption = | developer = [[Gerard J. Holzmann]] | released = {{Start date|1989}} | latest release version = 6.5.2 | latest release date = {{release date and age|2019|12|06}} | latest preview version = | latest preview date = | programming_language = [[C (programming language)|C]] | operating system = [[Linux]]<br/>[[Microsoft Windows]]<br/>[[Mac OS X]] | platform = | genre = [[Model checking]] | language = [[English language|English]] | license = * [[BSD licenses|3-clause BSD License]] (since version 6.4.5) * [https://web.archive.org/web/20080515112112/http://cm.bell-labs.com/cm/cs/what/spin/spin_license.html SPIN Software Public License] (previous versions) | website = http://spinroot.com/ }} '''SPIN''' is a general tool for verifying the correctness of [[concurrency (computer science)|concurrent software]] models in a rigorous and mostly automated fashion. It was written by [[Gerard J. Holzmann]] and others in the original [[Unix]] group of the Computing Sciences Research Center at [[Bell Labs]], beginning in 1980. The software has been available freely since 1991, and continues to evolve to keep pace with new developments in the field. ==Tool== Systems to be verified are described in [[Promela]] (Process Meta Language), which supports modeling of [[wikt:asynchronous|asynchronous]] [[distributed algorithm]]s as [[Nondeterministic algorithm|non-deterministic]] [[automata theory|automata]] (''SPIN'' stands for "Simple Promela Interpreter"). Properties to be verified are expressed as [[Linear Temporal Logic|Linear Temporal Logic (LTL)]] formulas, which are negated and then converted into [[Büchi automaton|Büchi automata]] as part of the model-checking algorithm. In addition to model-checking, SPIN can also operate as a simulator, following one possible execution path through the system and presenting the resulting execution trace to the user. Unlike many model-checkers, SPIN does not actually perform model-checking itself, but instead generates [[C (programming language)|C]] sources for a problem-specific model checker. This technique saves memory and improves performance, while also allowing the direct insertion of chunks of C code into the model. SPIN also offers a large number of options to further speed up the model-checking process and save memory, such as: *[[partial order reduction]]; *state [[Data compression|compression]]; *[[bitstate hashing]] (instead of storing whole states, only their hash code is remembered in a bitfield; this saves a lot of memory but voids [[Completeness (knowledge bases)|completeness]]); *weak fairness enforcement. Since 1995, (approximately) annual SPIN workshops have been held for SPIN users, researchers, and those generally interested in [[model checking]]. In 2001, the [[Association for Computing Machinery]] awarded SPIN its System Software Award.<ref>[https://spinroot.com/gerard/pdf/acm_awarded.pdf Software System Award: ACM CITES TOOL TO DETECT SOFTWARE "BUGS" FOR PRESTIGIOUS AWARD. Bell Labs Researcher Developed "SPIN" to Make Computers More Reliable] // ACM Press-Release</ref> ==See also== * [[NuSMV]] * [[Uppaal Model Checker]] ==References== <references/> ==Further reading== *Holzmann, G. J., ''The SPIN Model Checker: Primer and Reference Manual''. [[Addison-Wesley]], 2004. {{ISBN|0-321-22862-6}}. ==External links== *[http://www.spinroot.com/ SPIN website] [[Category:Model checkers]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:ISBN
(
edit
)
Template:Infobox software
(
edit
)
Template:Multiple issues
(
edit
)
Template:Short description
(
edit
)