18.04.2013 Views

Tehnici de implementare a concurentei în analiza si proiectarea ...

Tehnici de implementare a concurentei în analiza si proiectarea ...

Tehnici de implementare a concurentei în analiza si proiectarea ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Functia beh furnizeaza multimea tuturor secventelor <strong>de</strong> mesaje po<strong>si</strong>bile pe care<br />

le poate accepta o instanta. Se presupune ca aceasta multime este <strong>în</strong>chisa la prefixare,<br />

adica având o secventa valida < a, a, b >, se con<strong>si</strong><strong>de</strong>ra vali<strong>de</strong> <strong>si</strong> secventele , <strong>si</strong><br />

< a, a>.<br />

beh : Instance ? ? (Key * )<br />

Semantici <strong>de</strong> urma:<br />

bec : Class ? ? (Key * ), bec(P) = p{ beh(p) : p ? instances(P) }<br />

Semantici <strong>de</strong> stari<br />

state : ? (Key * ) ? Key * ? ? (Key * )<br />

state(?)u = ?<br />

? ? { z : u^<br />

z ? ? }, daca u ? ?<br />

? , in rest<br />

States : ? (Key * ) ? ? (? (Key * ))<br />

States(?) = { state(?)u : u ? ? }<br />

Figura 3.7. Multimi <strong>si</strong> functii semantice pentru<br />

formalizare comportamentului obiectelor concurente<br />

Functia bec returneaza comportamentul unei clase. Dupa cum se observa,<br />

comportamentul unei clase este privit ca <strong>si</strong> comportamentul comun al tuturor<br />

instantelor acesteia. Daca ? este o multime <strong>de</strong> instante atunci notatia pbeh? reprezinta<br />

cea mai mare margine inferioara a comportamentelor instantelor din ?, p{ beh(p) :<br />

p ? ?}. Se va utiliza formalismul <strong>de</strong> urme pentru manipularea secventelor <strong>de</strong> mesaje<br />

<strong>de</strong>finit <strong>în</strong> [HOA85]. Operatia <strong>de</strong> concatenare construieste o urma dintr-o pereche <strong>de</strong><br />

urme u <strong>si</strong> v punându-le împreuna <strong>în</strong> aceasta ordine, rezultatul fiind notat prin u^v.<br />

Capul unei urme u este primul <strong>si</strong>mbol din aceasta, <strong>si</strong> este notat cu u0.<br />

*<br />

Definitie 8. Multimile <strong>de</strong> secvente <strong>de</strong> mesaje ? , ? ?? ( Key ) se afla <strong>în</strong> relatia:<br />

? T ?<br />

daca <strong>si</strong> numai daca ? ? ? <strong>si</strong> ? u ? ?, u = v^z un<strong>de</strong> v ? ? iar z0 (daca exista) nu apare<br />

niciodata <strong>în</strong> ?. Multimea nevida <strong>de</strong> instante ? este un alement al TypesT daca <strong>si</strong> numai<br />

daca ? p ? ?, pbeh? T beh(p). Mai mult, daca q ? Instance astfel <strong>în</strong>cât pbeh? T<br />

beh(q), atunci q ? ?.<br />

74

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!