SPIN
Vorlage:Hinweisbaustein SPIN (ursprünglich ein Akronym für Simple PROMELA Interpreter) ist eines der bekanntesten Werkzeuge zur Modellprüfung ({{#invoke:Vorlage:lang|full|CODE=en|SCRIPTING=Latn|SERVICE=englisch}}). SPIN prüft endliche Zustandsautomaten (engl. Finite State Machines) mit der temporalen Logik LTL. Zusätzlich bietet SPIN viele Optimierungsmethoden, zum Beispiel Partial Order Reduction, Komprimierungen und Bitstate Hashing.
Geschichte
SPIN wurde 1980 von Gerard J. Holzmann entwickelt, anfangs am Computing Sciences Research Center der Bell Labs. Der Quellcode zu SPIN wurde 1991 unter einer eigenen Lizenz offengelegt.<ref>Lizenz von SPIN</ref>
Der jährlich seit 1995 stattfindende SPIN Workshop behandelt mittlerweile nicht nur SPIN, sondern Modellprüfung im Allgemeinen.<ref>Vergangene SPIN-Workshops auf der SPIN-Website</ref> Im Jahre 2001 wurde Holzmann für seine Arbeit an SPIN mit dem ACM Software System Award der Association for Computing Machinery (ACM) ausgezeichnet.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20091223063435
| {{#ifeq: 20091223063435 | *
| {{#if: Software System Award | {{#invoke:WLink|getEscapedTitle|Software System Award}} | {{#invoke:Webarchiv|getdomain|http://awards.acm.org/citation.cfm?id=0750084&srt=all&aw=149&ao=SOFTWSYS}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20091223063435}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Software System Award | {{#invoke:WLink|getEscapedTitle|Software System Award}} | {{#invoke:Webarchiv|getdomain|http://awards.acm.org/citation.cfm?id=0750084&srt=all&aw=149&ao=SOFTWSYS}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-11 13:33:10 InternetArchiveBot | 2019-05-11 13:33:10 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20091223063435}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Software System Award | {{#invoke:WLink|getEscapedTitle|Software System Award}} | {{#invoke:Webarchiv|getdomain|http://awards.acm.org/citation.cfm?id=0750084&srt=all&aw=149&ao=SOFTWSYS}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-11 13:33:10 InternetArchiveBot | 2019-05-11 13:33:10 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Software System Award | {{#invoke:WLink|getEscapedTitle|Software System Award}} | {{#invoke:Webarchiv|getdomain|http://awards.acm.org/citation.cfm?id=0750084&srt=all&aw=149&ao=SOFTWSYS}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-05-11 13:33:10 InternetArchiveBot | 2019-05-11 13:33:10 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Software System Award | {{#invoke:WLink|getEscapedTitle|Software System Award}} | {{#invoke:Webarchiv|getdomain|http://awards.acm.org/citation.cfm?id=0750084&srt=all&aw=149&ao=SOFTWSYS}} }} ({{#if: {{#if: 2019-05-11 13:33:10 InternetArchiveBot | 2019-05-11 13:33:10 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Software System Award | {{#invoke:WLink|getEscapedTitle|Software System Award}} | {{#invoke:Webarchiv|getdomain|http://awards.acm.org/citation.cfm?id=0750084&srt=all&aw=149&ao=SOFTWSYS}} }}
}}}}}}}}{{#if:2019-05-11 13:33:10 InternetArchiveBot
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20091223063435|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://awards.acm.org/citation.cfm?id=0750084&srt=all&aw=149&ao=SOFTWSYS}}
|| {{#if: || }}
}}{{#if: Software System Award
| {{#if: {{#invoke:WLink|isBracketedLink|Software System Award}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://awards.acm.org/citation.cfm?id=0750084&srt=all&aw=149&ao=SOFTWSYS%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://awards.acm.org/citation.cfm?id=0750084&srt=all&aw=149&ao=SOFTWSYS%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://awards.acm.org/citation.cfm?id=0750084&srt=all&aw=149&ao=SOFTWSYS }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}} auf acm.org</ref>
PROMELA und der Model Checker SPIN wurden u. a. bei der Software-Entwicklung für die Marssonde Curiosity eingesetzt.<ref name="Holzmann:2014:MC:2556647.2560218" />
Siehe auch
Literatur
- Gerard J. Holzmann: The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley, 2004. ISBN 0-321-22862-6.
Weblinks
Einzelnachweise
<references> <ref name="Holzmann:2014:MC:2556647.2560218"> {{#invoke:Vorlage:Literatur|f}}
</ref> </references>