Nivel abstract

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare
Aceasta este o prezentare a conceptului în cadrul informaticii, pentru o expunere în contextul ideii de grupare, vezi Principiul abstractizării.

Un nivel abstract (sau nivel de abstractizare, strat abstracție) este o metodă de a ascunde detaliile de implementare pentru un set particular de funcționalitate. Poate cel mai bine cunoscute modele de programe aplicație ce utilizează straturi de abstractizare sunt modelul Nivel OSI 7 pentru protocoalele de rețea, biblioteca OpenGL pentru grafica pe calculator, și modelul de intrare/ieșire (I/E) emisiune de octeți produs de Unix și adoptat de MSDOS, Linux, și majoritatea celorlalte sisteme de operare moderne.

În sistemul de operare Unix, majoritatea felurilor de operații de intrare și ieșire sunt considerate a fi emisiuni de octeți ce sunt citite dintr-un dispozitiv sau scrise într-un dispozitiv. Acest model de emisiune de octeți este folosit pentru operații de I/E asupra fișierelor, prizelor și terminalelor pentru a asigura independența dispozitivului. Pentru a putea citi și scrie la un dispozitiv la nivelul programului aplicație, programul apelează o funcție pentru a deschide dispozitivul care poate fi un dispozitiv real, ca de exemplu un terminal, sau un dispozitiv virtual, cum ar fi un port de rețea sau un fișier într-un sistem de fișiere. Caracteristicile fizice ale dispozitivului sunt ascunse de către sistemul de operare care le prezintă drept interfețe abstracte fapt ce îi oferă programatorului posibilitatea de a citi și scrie octeți de la/în dispozitiv. Sistemul de operare efectuează transformările reale necesare pentru a citi și scrie emisiunea de octeți la dispozitiv.

Majoritatea bibliotecilor grafice cum este și OpenGL implementează un model abstract de dispozitiv grafic ca o interfață. Biblioteca este responsabilă pentru traducerea comenzilor date de programator în comenzi specifice de dispozitiv necesare pentru a desena elementele și obiectele grafice. Comenzile specifice dispozitivului pentru o imprimantă se deosebesc față de comenzile de dispozitiv pentru un monitor CRT dar biblioteca grafică ascunde detaliile de implementare și cele ale dispozitivului prin prezentarea unei interfețe abstracte ce oferă un set de primitive ce sunt folositoare în general pentru desenarea obiectelor grafice.

În informatică, un nivel de abstractizare este o generalizare a unui model sau algoritm, în afara oricărei implementări specifice. Aceste generalizări provin din similarități mari ce sunt încapsulate cel mai bine în modele ce exprimă similaritățile prezente în diverse implementări specifice. Simplificarea adusă de un bun nivel de abstractizare ajută la o reutilizare ușoară prin distilarea unui concept folositor sau a unei metafore în așa fel încât situațiile în care el poate fi aplicat cu acuratețe poate fi repede recunoscut.

O abstracție bună va generaliza ceea ce poate fi abstractizat; în același timp îngăduind specificitatea unde abstractizarea eșuează și aplicarea sa cu succes necesită acordarea cu fiecare cerință sau problemă unică.

În mod frecvent nivelele ce abstractizare pot fi compuse într-o ierarhie de nivele abstracte. Modelul OSI este alcătuit din șapte nivele abstracte. Fiecare nivel al modelului OSI ISO de rețelistică încapsulează și se adresează unei părți diferite a necesităților multor comunicații digitale reducând în acest fel din complexitatea soluțiilor inginerești asociate.

Un faimos aforism al lui Butler Lampson sună așa: Toate problemele din informatică pot fi rezolvate de alt nivel de indirectare; acesta este de multe ori în mod deliberat citat în mod eronat cu "abstractizare" substituit pentru "indirectare".

Arhitectura calculatorului[modificare | modificare sursă]

O viziune tipică a unei arhitecturi de calculator ca o serie de nivele de abstractizare: nivel fizic, program din fabrică, asamblor, nucleu, sistem de operare și aplicații (vezi și Tanenbaum 79).

În arhitectura calculatorului, un sistem de calcul este reprezentat în mod curent ca fiind constituit din cinci nivele de abstractizare: nivel fizic, program din fabrică, asamblor, sistem de operare și aplicații (Tanenbaum 79).

Bibliografie[modificare | modificare sursă]

Vezi și[modificare | modificare sursă]