25.11.2014 Aufrufe

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

279<br />

root(abort S when α) =root(S)<br />

terms(abort S when α) =terms(S)<br />

rules(abort S when α, N,def)=rules(S, N, ¬act(α)∧ def)<br />

∪{s act(α)∧def<br />

−−−−−−−→ N | s ∈ terms(S)}<br />

Das innere Statement S einer Schleife wird nach Beenden ohne Verzögerung<br />

neu ausgeführt. Dazu wird der Nachfolgeterm von S auf den initialen Term von<br />

S gesetzt.<br />

root(loopSend)=root(S)<br />

terms(loopSend)=terms(S)<br />

rules(loop S end, N, def) = rules(S, root(S), def)<br />

Der initiale Term einer Sequenz ist der initiale Term des ersten Statements<br />

der Sequenz. Terminiert das erste Statement S, wird ohne Verzögerung das zweite<br />

Statement T ausgeführt. Die Terme der Sequenz sind daher die Terme von S und<br />

T vereinigt. Die Regeln der Sequenz sind die Regeln von S und T vereinigt. Der<br />

Nachfolgeterm der Regeln von S ist der initale Term von T, der Nachfolgeterm<br />

von T ist der Nachfolgeterm der Sequenz.<br />

root(S;T) = root(S)<br />

terms(S;T) = terms(S) ∪ terms(T)<br />

rules(S;T, N, def) = rules(S, root(T), def) ∪ rules(T,N,def)<br />

Bei parallelen Statements in Esterel entsteht bei der Umsetzung in PES das<br />

Äquivalent zu einem Produktautomaten. Die Terme sind das karthesische Produkt<br />

der Terme der parallelen Statements S und T. Der initiale Term ist das<br />

Paar der initialen Terme von S und T. Für jedes Paar von Regeln aus S und T<br />

wird eine neue Regel eingeführt. Rules’ erweitert die Regelmenge derart, dass für<br />

jede Signalbelegung eine Ersetzungsregel angewendet werden kann. Für Signalbelegungen,<br />

für die keine Ersetzungsregel angewendet werden kann, wird eine<br />

neue Ersetzungsregel eingeführt, die den Term in sich selbst umschreibt.<br />

root(S ‖ T) = root(S) × root(T)<br />

terms(S ‖ T) = {s × t | s ∈ terms(S), t ∈ terms(T) }<br />

rules(S ‖ T, N, def) = {s × t x∧y<br />

−−→ s’ × t’ | s x −→ s’ ∈ rules’(S, N, def),<br />

t y −→ t’ ∈ rules’(T, N, def) }<br />

mit rules’(S, N, def) = rules(S, N, def) ∪{s ¬ V x:s x −→s ′<br />

−−−−−−−→ s | s ∈ terms(S)}<br />

Alle weiteren Statements von purem Esterel können auf diese Art modelliert<br />

werden. Für Ausgaben (’emit’) ist eine Erweiterung der Aktionsmenge nötig.<br />

Für den sofortigen Prozessabbruch und das Testen der Anwesenheit von Signalen<br />

müssen die Funktionen erweitert werden, da root partiell sein kann und mehrere<br />

initiale Terme für ein Statement möglich sind.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!