Petriscript - Petriscript
![]() | Tento článek je Použití externí odkazy nemusí dodržovat zásady nebo pokyny Wikipedie.Listopad 2012) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
PetriScript je modelovací jazyk pro Petriho sítě, navržený Alexandrem Hamezem a Xavierem Renaultem.[1] The CPN-AMI plošina poskytuje mnoho nástrojů pro práci na Petriho sítích, například nástroje pro ověřování a kontrolu modelů.[2]
Původně byly jednoduché Petriho sítě vytvářeny prostřednictvím grafický design, ale výzkum prováděný interně v LIP6 odhalila, že k automatizaci těchto úkolů je potřeba.[3] PetriScript byl navržen tak, aby poskytoval některá zařízení pro modelování přechodů míst a barevných Petriho sítí v rámci platformy CPN-AMI. Hlavním účelem Petriscript je automatizovat operace modelování na Petriho sítích slučováním, vytvářením a připojováním uzly. Podporuje téměř vše potřebné, jako je makra, ovládání smyček, seznamy a tětiva a aritmetické výrazy, a co nejvíce blokuje zásah uživatele. Jeho syntaxe je Ada jako.
Následující skript produkuje FIFO se třemi sekcemi:
definovat(FIFO_SIZE,3) definovat(FIFO_BASE_X,100) definovat(FIFO_BASE_Y,100) definovat(FIFO_STEP,120) int $mávat := 0; pro $mávat v 1..FIFO_SIZE smyčka vytvořit místo „Slot_“ & '$mávat' (X FIFO_BASE_X + FIFO_STEP * $mávat, y FIFO_BASE_Y); vytvořit místo "Prázdný_" & '$mávat' (X FIFO_BASE_X + FIFO_STEP * $mávat, y FIFO_BASE_Y + 100, označení "1"); konec smyčka; pro $mávat v 1..FIFO_SIZE+1 smyčka vytvořit přechod „t“ & '$mávat -1' & "_na_" & '$mávat' (X FIFO_BASE_X + FIFO_STEP * $mávat - FIFO_STEP / 2, y FIFO_BASE_Y + 50); -li $mávat < FIFO_SIZE+1 pak připojit "1" přechod „t“ &'$mávat -1' & "_na_" & '$mávat' na místo „Slot_“ & '$mávat'; připojit "1" místo "Prázdný_" & '$mávat' na přechod „t“ &'$mávat -1' & "_na_" & '$mávat'; konec -li; -li $mávat > 1 pak připojit "1" přechod „t“ &'$mávat -1' & "_na_" & '$mávat' na místo "Prázdný_" & '$mávat - 1'; připojit "1" místo „Slot_“ & '$mávat - 1' na přechod „t“ &'$mávat -1' & "_na_" & '$mávat'; konec -li; konec smyčka; soubor přechod „t0_to_1“ na (název „FIFO_Start“); soubor přechod „t“ & 'FIFO_SIZE' & "_na_" & 'FIFO_SIZE + 1' na (název „FIFO_End“);
Který produkuje následující graf:
Tady je další příklad, který ukazuje sílu PetriScriptu:
definovat(X,250) definovat(Y,350) definovat(poloměr,50) definovat(R,150) definovat(SEKCE,15) definovat(INNER_ANGLE,360/SEKCE) definovat(OUTER_ANGLE,360/(2*SEKCE)) int $i := 0; int $j := 0; pro $i v 1.. SEKCE smyčka vytvořit místo "F" & '$i' ( X X, y Y, r poloměr, t $i * INNER_ANGLE); vytvořit místo "Sekce_" & '$i' ( X X, y Y, r R, t $i * INNER_ANGLE); vytvořit přechod „t“ & '$i' & "_na_" & '$i mod SEKCE + 1' ( X X, y Y, r R, t $i * INNER_ANGLE + OUTER_ANGLE); konec smyčka; pro $i v 1.. SEKCE smyčka připojit místo "Sekce_" & '$i' na přechod „t“&'$i' & "_na_" & '$i mod SEKCE + 1'; připojit přechod „t“ & '$i' & "_na_" & '$i mod SEKCE + 1' na místo "Sekce_" & '$i mod SEKCE + 1'; -li $i /= 1 pak připojit místo "F" & '$i' na přechod „t“ & '$i-1' & "_na_" & '$i'; jiný připojit místo "F1" na přechod „t“ & 'SEKCE' & "_na_" & '1'; konec -li; připojit přechod „t“ &'$i mod SEKCE + 1' & "_na_" & '($i+1) mod SEKCE + 1' na místo "F" & '$i'; konec smyčka; pro $i v 1.. SEKCE smyčka -li $i mod 3 = 0 pak soubor místo "Sekce_" & '$i' na označení "1"; jiný soubor místo "F" & '$i' na označení "1"; konec -li; konec smyčka;
Který vytváří následující graf:
Reference
- ^ Alexandre Hamez; Xavier Renault. „PetriScript Reference Manual 1.0“ (PDF). LIP6. Archivovány od originál (PDF) dne 24. října 2016.
- ^ Principy informačních systémů: Počítačová věda
- ^ Obchodní databázové systémy: počítačová věda, správa databází
externí odkazy
Plná dokumentace je k dispozici tady.