Extras din curs
Introducere
Incepand cu anul 1977 incepe utilizarea pe scara larga a calculatoarelor personale, pretul acestora facandu-le accesibile tuturor. In 1981 IBM, cel mai mare producator de computere, lanseaza pe piata modelul sau de calculator personal – IBM PC (XT). Aproape peste noapte calculatoarele personale patrund in intreprinderi, organizatii si chiar in casele oamenilor. Initial aceste calculatoare erau folosite ca unitati independente, transferul informatiilor de la un calculator la altul se facea prin intermediul dischetelor. Pentru a eficientiza schimbul informatiilor intre calculatoarele personale acestea au fost interconectate fie prin legaturi telefonice fie in retele locale in cadrul aceleiasi cladiri (LANs – local area networks). Aceasta a dus la raspandirea aplicatiilor de calcul distribuit (distributed computing). In loc de a fi adunate si prelucrate centralizat, intr-un centru de calcul dotat cu calculatoare foarte performante, datele se procesau distribuit, pe calculatoare personale conectate in retea, amplasate in locurile in care informatia era obtinuta. Puterea de calcul a unui PC era suficienta pentru a asigura cerintele unui utilizator individual si comunicatia in retea. La ora actuala un PC de 1000$ are o putere de calcul impresionanta, fiind la fel de performant ca un calculator mare din anii 70, avand pretul de un milion de dolari. Informatia este distribuita prin retea unde unele calculatoare numite file servere au sarcina principala de a stoca programe si date iar altele numite clienti apeleaza la serviciile serverelor pentru a accesa si procesa distribuit aceste date. Prelucrarea distribuita a datelor presupune “cooperarea” intre aplicatiile executate pe calculatoarele client si cele executate de servere. Aplicatia client solicita un anumit serviciu aplicatiei server, aceasta din urma efectueaza prelucrarile necesare satisfacerii cererii clientului si ii transmite rezultatele solicitate. O aplicatie data de prelucrare distribuita consta nu dintr-un singur program executat pe un singur calculator ci din mai multe programe executate pe doua sau mai multe calculatoare interconectate in retea. O astfel de aplicatie se numeste aplicatie client/server. In anii 70 si 80 limbajele de programare uzuale in elaborarea sistemelor de operare si a aplicatiilor client /server de prelucrare distribuita in retea erau C si C++. Odata cu interconectarea retelelor locale LAN in retele WAN (wide area network) si dezvoltarea tehnologiilor Internet, limbajul de programare Java castiga rapid teren oferind perspective noi pentru dezvoltarea aplicatiilor bazate pe aceste tehnologii.
Limbaje masina, limbaje de asamblare, limbaje de nivel inalt
Fiecare calculator “intelege” doar limbajul de programare specific procesorului cu care este prevazut. Acest limbaj “natural’ care consta dintr-un “vocabular” restrans de comenzi si un set de reguli sintactice de utilizare a comenzilor se numeste limbaj masina. Fiecare comanda este reprezentata printr-un numar. Operanzii comenzii sunt si ele numere reprezentand fie valori ale datelor prelucrate de comanda fie registrul sau adresa locatiei de memorie in care datele prelucrate se afla sau unde va fi depus rezultatul. O instructiune masina ce poate fi executata de procesor consta deci din numarul asociat comenzii urmat eventual de numere desemnand operanzii comenzii.
Programul masina consta dintr-o succesiune de instructiuni masina a caror executie duce la prelucrarea dorita a datelor initiale si obtinerea rezultatelor. Acest program masina, constand deci dintr-un sir de numere – cod si date, se poate incarca sub forma binara in memoria calculatorului si executat. Este evident ca un program masina nu poate fi executat decat pe un calculator dotat cu procesorul al carui set de comenzi a fost folosit la scrierea programului. Spunem deci ca programul masina nu este portabil fiind dependent de masina. Odata cu raspandirea calculatoarelor cererea tot mai mare de aplicatii programarea direct in limbaj masina a devenit ineficienta fiind prea greoaie. Din acest motiv, pentru a facilita elaborarea programelor, fiecarei comenzi elementare (numar) a procesorului i s-a asociat o succesiune de litere reprezentand abrevierea din limba engleza a comenzii respective. De exemplu pentru comanda de adunare s-a folosit mnemonica ADD (abreviere de la addition). Folosind mnemonicile programele puteau fi concepute, intelese, corectate si modificate mai usor. Setul de mnemonici ale comenzilor si regulile de constructie a instructiunilor constitue asa numitul limbaj de asamblare. Un program scris in limbaj de asamblare nu poate fi executat direct de calculator. Desi inteligibil pentru om, el nu poate fi “inteles” de calculator care asa cum am vazut “intelege” numai limbajul masina al procesorului cu care este echipat. In aceste conditii programul scris in limbaj de asamblare, pentru a putea fi executat, trebuie in prealabil “tradus” in limbaj masina. Aceasta “traducere” este o operatie de rutina prin care fiecare mnemonica a unei comenzi este substituita cu codul masina asociat. Fiind o operatie de rutina, aceasta “traducere” poate fi realizata automat de un program de calculator numit asamblor. Ca si programele masina, programele scrise in limbaj de asamblare se adreseaza unui anumit procesor. Fiecare tip de procesor are propriul sau set de comenzi masina si deci si propriul sau limbaj de asamblare. Mai mult, daca programul apeleaza functii ale sistemului de operare executia sa pe un calculator va fi conditionata nu numai de tipul procesorului ci si de prezenta sistemului de operare ale carui functii le apeleaza programul. Spunem in acest caz ca programul este dependent de platforma (procesor + sistem de operare). Pentru a nu rescrie programele pentru fiecare tip de calculator in parte si pentru a usura elaborarea, depanarea si modificarea lor s-au conceput asa numitele limbaje de nivel inalt. Acestea sunt limbaje artificiale, avand un vocabular si o sintaxa care permit descrierea unor operatii complexe. Primul limbaj de acest tip a fost FORTRAN (FORmula TRANslator). Acesta permitea in principal formularea unor instructiuni de calcul a expresiilor algebrice (formule) continand paranteze, variabile, constante, operatori, functii, intro forma apropiata de cea folosita in algebra. Datele puteau fi scalari – numere reale sau intregi - sau structuri similare vectorilor si matricilor. De asemenea limbajul prevedea instructiuni puternice de introducere si afisare a datelor de la si spre diferite echipamente periferice si pentru lucrul cu fisiere.
Preview document
Conținut arhivă zip
- Programare in Java
- Curs 02.doc
- Curs 03.doc
- Curs 06.doc
- Curs 08.doc
- Curs 09.doc
- Curs 14.doc
- Curs 15.doc
- Curs 16.doc
- Curs 17.doc
- Curs 18.doc
- Curs 19.doc
- Curs 20.doc
- Curs 21.doc
- Curs 22.doc
- Curs 23.doc
- Curs 24.doc
- Curs 25.doc
- Curs 26.doc
- Curs 27.doc
- Curs 28.doc
- Curs 29.doc
- Curs 30.doc
- Programare in Java.doc