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.

orice instanta din ? poate fi folo<strong>si</strong>ta <strong>în</strong> locul unei instante din ?, fara nici o modificare<br />

observabila din exterior a comportamentului rezultat.<br />

Sistemele <strong>de</strong> meto<strong>de</strong> ([COO89]) reprezinta formalizari <strong>si</strong>mple ale programarii<br />

orientate-obiect <strong>si</strong> includ <strong>de</strong>scrieri <strong>de</strong> instante, clase <strong>si</strong> operatii (meto<strong>de</strong>) (figura 3.5).<br />

Functia class returneaza clasa unei anumite instante, iar instances returneaza<br />

multimea tuturor instantelor po<strong>si</strong>bile ale unei clase.<br />

Pentru o anumita clasa, functia methods pune <strong>în</strong> corespon<strong>de</strong>nta numele unui<br />

mesaj cu corpul acestuia (codul operatiei asociate) sau cu elementul ne<strong>de</strong>finit ? (<strong>în</strong><br />

cazul <strong>în</strong> care nu exista nici o operatie <strong>de</strong>finita la nivelul clasei asociata mesajului).<br />

Functia M returneaza multimea tuturor operatiilor (meto<strong>de</strong>lor) <strong>de</strong>finite pentru o clasa<br />

anume.<br />

Multimi<br />

Instante: p, q, r ? Instance<br />

Clase: P, Q, R ? Class<br />

Signaturi <strong>de</strong> mesaje: m ? Key<br />

Expre<strong>si</strong>i <strong>de</strong> operatii: e, f ? Exp<br />

class : Instance ? Class<br />

Functii<br />

instances : Class ? ? (Instance)<br />

methods : Class ? Key ? Exp?<br />

M : Class ? ? (Key), M(P) = {m : methods(P,m) ?? }<br />

Figura 3.5. Multimile <strong>si</strong> functiile <strong>si</strong>stemului <strong>de</strong> meto<strong>de</strong> introdus <strong>în</strong> [COO89]<br />

Multimea Exp? reprezinta multimea implementarilor <strong>de</strong> operatii reunita cu<br />

elementul ne<strong>de</strong>finit ? . Înainte <strong>de</strong> a formaliza mecanismul <strong>de</strong> mostenire pe baza<br />

acestui <strong>si</strong>stem <strong>de</strong> meto<strong>de</strong>, vom <strong>de</strong>finit <strong>în</strong> cele ce urmeaza o relatie binara peste<br />

multimea Exp?.<br />

Definitie 2. Fie e, f ? Exp? doua expre<strong>si</strong>i. Spunem ca e este "ne<strong>de</strong>finita sau<br />

egal cu" f, <strong>si</strong> vom nota e f , daca e = ? sau e = f.<br />

Din <strong>de</strong>finitie rezulta ca evi<strong>de</strong>nt faptul ca relatia este ordine partiala.<br />

69

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

Saved successfully!

Ooh no, something went wrong!