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.

P' difera <strong>de</strong> Q respectiv P doar prin starea initiala. Starea unei instante este<br />

<strong>de</strong>terminata <strong>de</strong> valorile proprietatilor sale. Deci, Q' se obtine din Q prin modificarea<br />

valorilor initiale ale anumitor proprietatile. În functie <strong>de</strong> limbaj acest lucru poate<br />

invalida tranzitia incrementala dintre P <strong>si</strong> Q'. Prin urmare, vom impune ca fiind<br />

<strong>în</strong>tot<strong>de</strong>auna po<strong>si</strong>bila modificarea valorilor initiale ale proprietatilor din P (obtinând<br />

P') astfel <strong>în</strong>cât P' ? ? ? I Q'<br />

. Aceasta afirmatie este a<strong>de</strong>varata pentru toate limbajele<br />

<strong>de</strong> programare orientate obiect concurente imperative studiate <strong>în</strong> cadrul capitolului<br />

doi.<br />

Pornind <strong>de</strong> la expre<strong>si</strong>a (1), vom con<strong>si</strong><strong>de</strong>ra v = u^ ? bec(R) <strong>si</strong> vom<br />

construi clasa R' astfel <strong>în</strong>cât bec(R') = state(bec(R))v. Din presupunerea anterioara<br />

'<br />

avem P' ? ? ? I R'<br />

?<br />

<strong>si</strong> bec(P') = state(bec(P))w, cu w ? bec(P). Dar bec(R') = { < >,<br />

} <strong>în</strong> timp ce bec(P') = { m1, m2 } * (P are o <strong>si</strong>ngura stare).<br />

Deci bec(P') T bec(R') <strong>si</strong> impT(R') ?? impT(P'). Prin urmare mecanismul <strong>de</strong><br />

mostenire nu conserva comportamentul.?<br />

Teorema 1 <strong>de</strong>monstreaza faptul ca chiar pentru o submultime a anomaliilor<br />

(indusa <strong>de</strong> TypesR), nu poate fi proiectat un limbaj <strong>de</strong> programare orientat-obiect<br />

concurent fara anomalii <strong>si</strong> care conserva comportamentul. Majoritatea limbajelor <strong>de</strong><br />

programare orientate-obiect concurente conserva comportamentul relativ la TypesT.<br />

Teorema 1 are loc doar pentru limbajele <strong>de</strong> programare care sunt cel putin la fel <strong>de</strong><br />

expre<strong>si</strong>ve ca <strong>si</strong> ma<strong>si</strong>nile cu stari finite.<br />

3.4. Mo<strong>de</strong>larea principiilor <strong>de</strong> proiectare ale limbajelor orientate-obiect<br />

concurente<br />

În cadrul capitolului prece<strong>de</strong>nt am <strong>de</strong>terminat o multime <strong>de</strong> patru principii <strong>de</strong><br />

<strong>proiectarea</strong> ale limbajelor <strong>de</strong> programare orientate-obiect concurente. Aceste patru<br />

principii sunt:<br />

- principiul expre<strong>si</strong>bilitatii <strong>concurentei</strong>, care se refera la:<br />

- concurenta intra-obiect,<br />

- executie <strong>de</strong>pen<strong>de</strong>nta <strong>de</strong> stare,<br />

- executie <strong>de</strong>pen<strong>de</strong>nta <strong>de</strong> istoric,<br />

- principiul codului <strong>de</strong> interactiune orientat pe obiectul apelat,<br />

82

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

Saved successfully!

Ooh no, something went wrong!