Abstraktní stavový automat - Abstract state machine
v počítačová věda, an abstraktní stavový stroj (ASM) je státní stroj pracuje na státy což jsou libovolné datové struktury (struktura ve smyslu matematická logika, to je neprázdné soubor společně s řadou funkce (operace ) a vztahy přes sadu).
The Metoda ASM je praktický a vědecky podložený systémové inženýrství metoda, která překlenuje mezeru mezi dvěma konci vývoje systému:
- lidské chápání a formulace problémů reálného světa (zachycení požadavků přesným modelováním na vysoké úrovni na úrovni abstrakce určené danou doménou aplikace)
- nasazení jejich algoritmických řešení stroji provádějícími kód na měnících se platformách (definice návrhových rozhodnutí, podrobnosti systému a implementace).
Metoda vychází ze tří základních konceptů:
- ASM: přesná forma pseudokódu, zobecňující Konečné státní stroje pracovat nad libovolnými datovými strukturami
- pozemní model: důsledná forma plánů sloužících jako autoritativní referenční model pro návrh
- upřesnění: nejobecnější schéma postupných instancí modelových abstrakcí ke konkrétním prvkům systému, poskytující kontrolovatelné vazby mezi stále podrobnějším popisem v postupných fázích vývoje systému.
V původním pojetí ASM, jediný činidlo provádí program v posloupnosti kroků, případně interagujících s jeho prostředím. Tato představa byla rozšířena o zachycení distribuované výpočty, ve kterém více agentů spouští své programy současně.
Vzhledem k tomu, že ASM modelují algoritmy na libovolných úrovních abstrakce, mohou poskytovat pohledy na návrh hardwaru nebo softwaru na vysoké, nízké a střední úrovni. Specifikace ASM se často skládají z řady modelů ASM, počínaje abstraktem pozemní model a postupovat k větším úrovním podrobností postupně upřesnění nebo coarsenings.
Vzhledem k algoritmické a matematické povaze těchto tří konceptů lze ASM modely a jejich vlastnosti zájmu analyzovat pomocí jakékoli přísné formy ověření (zdůvodněním) nebo validace (experimentováním, testováním provedení modelu).
Dějiny
Koncept ASM je způsoben Jurij Gurevič, který to poprvé navrhl v polovině 80. let jako způsob, jak si vylepšit Turingova práce že každý algoritmus je simulované příslušným Turingův stroj. Formuloval ASM práce: každý algoritmus, jakkoli abstraktní, je krok za krokem emulovaný příslušným ASM. V roce 2000 Gurevič axiomatizovaný pojem sekvenčních algoritmů a prokázal pro ně práci ASM. Zhruba řečeno, axiomy jsou následující: stavy jsou struktury, přechod státu zahrnuje jen ohraničenou část státu a všechno je neměnný pod izomorfismy struktur. (Struktury lze zobrazit jako algebry, což vysvětluje původní název vyvíjející se algebry Pro ASM.) Axiomatizace a charakterizace sekvenčních algoritmů byly rozšířeny na paralelní a interaktivní algoritmy.
V 90. letech byla pomocí komunitního úsilí vyvinuta metoda ASM s využitím ASM pro formální specifikace a analýza (ověřování a validace ) z počítačový hardware a software. Komplexní specifikace ASM programovací jazyky (počítaje v to Prolog, C, a Jáva ) a designové jazyky (UML a SDL ) byly vyvinuty. Podrobný historický účet lze nalézt v AsmBook (Kapitola 9) nebo vtento článek.
K dispozici je řada softwarových nástrojů pro provádění a analýzu ASM.
Publikace
Knihy
- AsmBook: Egon Börger, Robert Stärk. Abstract State Machines: A Method for High-Level System Design and Analysis
- JBook: R.Stärk, J.Schmid, E.Börger. Java a Java Virtual Machine: Definice, Ověření, Ověření
- Sborník / Vydání deníku (od roku 2000)
- 2008: Springer LNCS 5238 Abstract State Machines, B and Z
- 2007: Zvláštní vydání J.UCS s a http://osys.grm.hia.no/asm07/proceedings Vybrané příspěvky z ASM'07
- 2006: Springer LNCS 5115 Přísné metody pro konstrukci a analýzu softwaru, Seminář ASM a B Dagstuhl[trvalý mrtvý odkaz ]
- 2005: Zvláštní vydání Fundamenta Informatica s Vybrané příspěvky z ASM'05 (elektronické řízení )
- 2004: Springer LNCS 3052 Abstract State Machines 2004
- 2003: Springer LNCS 2589 Abstract State Machines 2003: Advances in Theory and Practice
- 2003: Zvláštní vydání TCS s Vybrané příspěvky z ASM'03
- 2002: Dagstuhl Seminar Report Teorie a aplikace abstraktních stavových strojů
- 2001: J.UCS 7.11 Zvláštní vydání s Vybrané příspěvky z ASM'01
- 2000: Springer LNCS 1912 Abstract State Machines: Theory and Applications
- Srovnávací případové studie s příspěvky ASM
- Řízení parního kotle: Případová studie specifikace, Springer LNCS 1165
- Produkční buňka: Případová studie vývoje softwaru, ASM model
- Railcrossing: Formální metody výpočtu v reálném čase, Model ASM
- Řízení světla: Případová studie požadavků na inženýrství, Seminář Dagstuhl
- Fakturace: Případová studie zachycující požadavky
Behaviorální modely pro průmyslové standardy
- OMG pro BPMN (verze 2006): Springer LNCS 5316
- OASIS pro BPEL: IJBPMI 1.4 (2006)
- ECMA pro C #: „Modulární definice sémantiky C♯ na vysoké úrovni“ doi:10.1016 / j.tcs.2004.11.008
- ITU-T pro SDL-2000: formální sémantika SDL-2000 a Formální definice SDL-2000 - kompilace a spuštění specifikací SDL jako modelů ASM
- IEEE pro VHDL93: E.Boerger, U.Glaesser, W.Mueller. Formální definice abstraktního simulátoru VHDL'93 od společnosti EA-Machines. In: Carlos Delgado Kloos a Peter T. ~ Breuer (Eds.), Formální sémantika pro VHDL, str. 107–139, Kluwer Academic Publishers, 1995
- ISO pro Prolog: „Matematická definice celého Prologu“ doi:10.1016 / 0167-6423 (95) 00006-E
Nástroje
(v historickém pořadí od roku 2000)
- ASMETA, Metamodel abstraktního stavového stroje a jeho sada nástrojů
- AsmL
- CoreASM, Dostupné v CoreASM, rozšiřitelný spouštěcí stroj ASM
- AsmGofer
- Open source projekt XASM
Reference
- Y. Gurevič, Evolving Algebras 1993: Lipari Guide, E. Börger (ed.), Specifikace a metody ověřování, Oxford University Press, 1995, 9-36. (ISBN 0-19-853854-5)
- E. Börger a R. Stärk, Abstract State Machines: A Method for High-Level System Design and Analysis, Springer-Verlag, 2003. (ISBN 3-540-00702-4)
- R. Stärk, J. Schmid a E. Börger, Java a Java Virtual Machine: Definice, Ověření, Ověření, Springer-Verlag, 2001. (ISBN 3-540-42088-6)
- Y. Gurevič, Sekvenční abstraktní stavové stroje zachycují sekvenční algoritmy, Transakce ACM ve výpočetní logice 1 (1) (červenec 2000), 77-111.