Sunteți pe pagina 1din 44

Informatica aplicata-note de curs

http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

Noiuni fundamentale
1.1. Definiii
Informaia reprezint un mesaj (de orice natur) care aduce o precizare ntr-o problem ce
comport un anumit grad de incertitudine.

Boar B.H., The Art of Strategic Planning for Information Technologies, 2nd edition, John W iley, 2001

Exist dou aspecte ale informaiei:


1. Semantic se refer la nelegerea informaiei ca idee, cunoatere, mesaj, care se
transmite pe anumite medii fizice sau biologice, numite suporturi de informaie;
2. Sintactic precizeaz modul de prezentare a informaiei.
O mulime este informaional dac elementele sale sunt informaii. Ea se poate defini n:
a. Comprehensiune (prin enunarea proprietii de care se bucur toate elementele
mulimii);
b. Extensie (prin nominalizarea tuturor elementelor mulimii respective).
Exist trei elemente ce caracterizeaz o informaie:
1. Mulimea informaional n care se afl informaia ca element;
2. Forma de reprezentare (face posibil deosebirea informaiilor ntre ele);
3. Valoarea informaiei.
Datele sunt numere, caractere, imagini sau alte reprezentri simbolice, care pot fi folosite de
ctre om sau pot fi nregistrate n memoria calculatorului i prelucrate de acesta, sau transmise
pe o linie de comunicaie.
1

Noiuni fundamentale
________________________________________________________________
Datele n sine nu au semnificaie. Atunci cnd datele sunt interpretate de ctre un anumit
sistem de prelucrare, ele devin informaie.
Algoritmul este un sistem de reguli care transform informaia iniial n una final, trecnd
printr-un ir de informaii intermediare.
Algoritmul se caracterizeaz prin:
1. Generalitate rezolv toate problemele din clasa respectiv de probleme;
2. Finitudine numrul de transformri intermediare aplicate informaiei iniiale, n
scopul de a obine informaia final, este finit;
3. Realizabilitate (efectivitate) - exist posibilitatea efecturii operaiilor prevzute n
instruciunile algoritmului;
4. Claritate se caracterizeaz printr-o descriere precis, cu specificarea riguroas i
fr ambiguiti a aciunilor care urmeaz s se execute;
5. Automatism - algoritmul poate fi aplicat fr ca instruciunile sale s cear un efort
de gndire deosebit; utilizatorul poate executa n mod mecanic operaiile simple
indicate.
Calculatorul reprezint un ansamblu complex de echipamente electronice care, pe baza unor
date de intrare i a unor programe furnizate i elaborate de om, genereaz la ieire informaii. El
este n acelai timp un mijloc de prelucrare automat a informaiilor, prelucrndu-le sub o
form cuantificat i rezolvnd problemele n conformitate cu anumii algoritmi.
Componentele fizice care alctuiesc un calculator reprezint hardware-ul. Programele care i
precizeaz calculatorului ce s fac alctuiesc software-ul..+peopleware
Observatie: Peopleware este un termen utilizat pentru a desemna un al treilea aspect de baz al
tehnologiei informatice, celelalte dou aspecte fiind hardware i software. Peopleware [Con 01]
se refer la acele aspecte care au legatur cu rolul oamenilor n dezvoltarea sau utilizarea de
software de calculator i sisteme hardware, inclusiv aspecte cum ar fi productivitatea
dezvoltatorilor, munca n echip, dinamica de grup, psihologia de management de proiect de
programare, factori organizaionali, elementele de design pentru interfaa uman, interaciunea
om-main etc.
Calculatorul este o main programabil definit de dou caracteristici eseniale:
pentru un anumit set de instruciuni rspunde ntr-o manier foarte bine definit. Prin
instruciune se nelege o comand elementar (de baz) a unui calculator. Setul de
instruciuni al unui calculator formeaz lista tuturor comenzilor elementare din limbajul
main al calculatorului;
poate executa o list de instruciuni prenregistrate (un program). Fr programe
calculatoarele sunt nefolositoare.

SISTEME DE CALCUL (COMPUTER SYSTEMS)


Coponenta HARDWARE
Componenta SOFTWARE
Componenta Web - Retele si sistemul Internet
Componenta de securitate informatica
Componenta de Aplicatii-programe sepecializate, sisteme informatice
2

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

Informatica reprezint disciplina care ofer metode de rezolvare a problemelor cu


ajutorul calculatorului. Academia Franceza (1966) a definit informatica ca fiind tiina
prelucrrii raionale, ndeosebi prin maini automate, a informaiei, considerat ca
suport al cunotinelor umane i al comunicrilor n domeniile tehnice, economice i
sociale. fr. Information, fr. Automatique Informatique !!!)
"Informatica restabilete nu numai unitatea matematicilor pure i a celor aplicate, a
tehnicii concrete i a matematicilor abstracte, dar i cea a tiinelor naturii, ale omului i
ale societii. Reabiliteaz conceptele de abstract i de formal i mpac arta cu tiina, nu
numai n sufletul omului de tiin, unde erau ntotdeauna mpcate, ci i n filosofarea
lor." Grigore C. Moisil (1906-1973)
n urma prelucrrii, n concordan cu cerinele informaionale, datele devin informaii.
Prelucrarea implic:
1. Culegerea datelor;
2. Prelucrarea propriu-zis;
3. Distribuirea rezultatelor prelucrrii.
Prelucrarea datelor se poate face:
1. Manual;
2. Automat.
Prelucrarea automat a datelor presupune:
a. Resurse materiale (echipamente electronice de calcul calculatoare etc.);
b. Resurse umane (operatori, programatori etc).
3

Noiuni fundamentale
________________________________________________________________
Resursele materiale i umane coexist i formeaz un ansamblu numit Sistem de Prelucrare
Automat a Datelor (SPAD).
Prelucrarea automat a datelor presupune existena unui proces de reglare ntre Introducerea
datelor, Prelucrarea datelor, Extragerea informaiei:

Etapele prelucrrii automate a datelor


Prelucrarea datelor
Extragerea informaiei
Clasificare
Regsire
Sortare
Decodificare
Calcule
Difuzare
Arhivare
Memorare
Sistemul informaional reprezint un ansamblu de fluxuri i circuite informaionale,
organizate ntr-o concepie unitar, care asigur legtura dintre sistemul decizional (de
conducere) i sistemul operaional (de execuie).
Introducerea datelor
Culegere
Verificare
Codificare
Transmitere

Sistemul informatic este un ansamblu structurat de elemente intercorelate funcional, pentru


culegerea, prelucrarea, transmiterea i stocarea informaiilor cu ajutorul mijloacelor automate
de prelucrare a datelor. Scopul acestuia este de a automatiza procesul informaional i de a
fundamenta deciziile. Sistemul informatic este inclus n cel informaional i i d acestuia noi
valene, sub aspect calitativ i cantitativ. Acest lucru se realizeaz prin implementarea de ctre
sistemul informatic a unor modele matematice i prin utilizarea tehnicii electronice de calcul.
Sistemul informatic include:
1. Cadrul organizatoric i datele vehiculate;
2. Resursele umane;
3. Metodele i tehnicile de proiectare;
4. Echipamentele electronice de calcul;
5. Sistemul de programe.

1.2. Evoluia calculatorului


1642 - Blaise Pascal (matematician, fizician, dar i teolog) creeaz prima main de calculat,
n scopul de a-l ajuta pe tatl su la calculul taxelor. Aceast main putea numai s adune. Iau fost necesari 2 ani pentru realizarea acestei maini dar, odat creat, a reuit s o produc n
50 de copii care s-au vndut imediat.
1822 - Charles Babbage, inventator englez, proiecteaz primul motor diferenial matematic,
n scopul uurrii realizrii tabelelor matematice ce erau folosite n industrie, navigaie i
domeniul bancar. Babbage nu a putut s realizeze niciodat acest proiect datorit lipsei de
tehnologii care s-i produc piesele componente la precizia dorit. n cinstea sa, la Londons
Science Museum exist un exemplar al acestui motor diferenial realizat n 1990 dup proiectul
amnunit pe care inventatorul l-a lsat.
1884 - Herman Hollerith, inventator american, realizeaz prima main automat de calculat
pe baz de cartele perforate.
4

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

1926 - Dr. Julius Lilienfield creeaz conceptul primului tranzistor folosit pentru amplificare
(vacuum tubes).
1936 - Alan Turing folosete noiunea de main Turing universal'' pentru a descrie un
calculator universal, care poate executa orice program. Programele erau stocate n memoria
calculatorului, reprezentate ca iruri de numere.
1939 Este proiectat primul calculator digital: John Atanasoff, lector la IOWA State
University, mpreun cu doctorandul Clifford Berry, au pus bazele primului computer digital.
Pentru prima oar s-a pus problema reprezentrii numerelor folosind condensatori pentru a
stoca sarcini electrice.
1944 - Este realizat primul calculator de scar mare, Mark I, conceput de Howard Aiken,
profesor la Harvard University. Computerul Mark I a fost cel mai mare calculator realizat pn
atunci. Compus din peste 750 000 piese i cntrind peste 5 tone, el putea s adune, s scad, s
nmuleasc sau s mpart dou numere (pn la 23 digii) n numai cteva secunde.
1945 - John von Neumann analizeaz starea de fapt a calculatoarelor i scrie un raport intitulat
``First Draft of a Report on the EDVAC'' (Prima ciorn a unui raport despre EDVAC), n care
sugereaz o arhitectur revoluionar: programul nu mai este reprezentat de felul n care sunt
cuplate unitile funcionale, ci este stocat n memorie, fiind descris folosind un limbaj numit
cod-main. n cod-main, operaiile de executat sunt codificate sub forma unor numere
numite instruciuni. Programul de executat este descris printr-un ir de instruciuni, care se
execut consecutiv. Caracteristica principala a masinii von Neuman este ca functionarea ei este
un proces secvential: la un moment dat se executa o singura instructiune, iar executarea unei
instructiuni poate sa inceapa numai dupa ce s-a incheiat executarea celei precedente. In toate
operatiile participa unitatea centrala si registrii acesteia.
1946 Este realizat, la University of Pennsylvania, calculatorul ENIAC (the Electronic
Numerical Integrator and Computer) cel mai puternic pn la acea dat. Cntrea cca 30 tone.
1946 Este realizat calculatorul EDVAC (the Electronic Discrete Variable Computer), mai
puternic. Arhitectura acestui calculator i modul de stocare a programelor sunt asemntoare
cu cele ale calculatoarelor de astzi.
1954 - Apare primul limbaj de programare - limbajul FORTRAN, inventat de John Backus,
angajat al IBM.
1958 - Jack Kilbz (angajat laTexas Instruments) inventeaz primul circuit integrat.
1964 - Tom Kurtz i John Kemeny (profesori la Dartmouth University) creeaz limbajul de
programare BASIC (Beginners All Purpose Szmbolic Instruction Language), marcnd
nceputul programrii intuitive.
1970 - Compania Busicom folosete n producie de serie circuitele integrate la construcia
calculatoarelor.
5

Noiuni fundamentale
________________________________________________________________
1974 - Marcian Hoff proiecteaz primul microprocessor: circuitul 4004, ce opera pe 4 bii i
coninea peste 2.000 de tranzistoare. Proiectul lui Hoff a fost respins de companiile
productoare de atunci.
1974 - Intel realizeaz primul microprocesor 8080 ce opera pe 8 bii. O serie de alte companii
ca Motorola i Zilog au nceput s realizeze o serie de cipuri similare.
1975 - Se vinde primul computer Altair. Acesta era un calculator cu procesor 8080 i putea fi
asamblat de oricine. Costa 439USD. Bill Gates i Paul Allen au dezvoltat o versiune de BASIC
pentru Altair punndu-se astfel bazele companiei Microsoft
1981 - IBM lanseaz primul PC (Personal Computer). Costa 1365USD. Urmeaz calculatoarele
286 (1982); 386 (1985); 486 (1989); Pentium (1993); Pentium Pro (1995); Pentium II (1997);
Pentium III (1999); Pentium IV (2000).
ncepnd din 1981 au loc o serie de dezvoltri extraordinare:
Se pun bazele Internet-ului - sistem global de comunicare la distan prin intermediul
calculatoarelor;
Apar o serie de noi componente ale calculatorului: componente specializate pentru interconectare (modemuri); scannerul; mouse-ul (ca urmare a apariiei primelor programe cu
interfa grafic) etc.
Apar noi companii specializate n producia de programe sau componente de calculator;
Se formeaz mari concernuri: Microsoft (cel mai mare productor de programe de
calculator, fondat n 1975 de Paul Allen i Bill Gates), AOL (America Online), cel mai
mare furnizor de servicii Internet etc.
Nscut in 1955, Scott McNealy nfiineaz n februarie 1982 firma SUN. Numele acesteia
este un acronim pentru Reeaua Universitii Stanford (Stanford University Network- SUN).
Primul loc de munc al lui Scott McNealy, dup terminarea studiilor, a fost ntr-unul din
magazinele Uniunii Muncitorilor Auto (UAW). Interesul pentru tehnologie l-a cuprins n
urma angajrii la firma de computere, Onyx Systems, unde a primit i cinci mii de aciuni.
Zece luni mai trziu, a nfiinat SUN MicroSystems, mpreun cu trei colegi. n doar 20 de
ani Scott McNealy a fcut din SUN principalul furnizor de soluii software pentru reele.
Multe din aplicaiile Netscape au fost dezvoltate iniial la Universitatea din Illinois, folosind
tehnologiile Sun. Compania pe care o conduce a nregistrat n anul 2002 ncasari de peste
11,7 miliarde de dolari i are reprezentane n peste o sut de ri. Fa de acum zece ani,
cnd o aciune SUN valora un dolar, astzi preul acesteia este de cel puin zece ori mai
mare. A nfiinat compania cu 285.000 de dolari, devenind profitabil n primul an. Astzi,
McNealy conduce un imperiu de 18 miliarde de dolari, a adunat o avere considerabil i a
devenit unul dintre cei mai buni critici ai rivalului Microsoft. Fiind numit de o
prestigioas publicaie drept unul dintre cei mai influeni oameni de afaceri din America,
ideile lui McNealy din domeniul ICT (Information and Communication Technologies) au
fost preluate i transformate, adeseori, n noi curente n aceast industrie
(http://www.sun.com/aboutsun/coinfo/ history.html).

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

Cloud Computing

Sursa: http://thehealthcareblog.com/blog/tag/cloud-computing/
Sursa: http://inbound.nowitworks.com/Portals/174836/images/Screen%20shot%202012-1227%20at%204.18.29%20PM.png

Noiuni fundamentale
________________________________________________________________

Sursa: http://thevarguy.com/site-files/thevarguy.com/files/archive/thevarguy.com/wp-content/uploads/2009/10/cloudcomponents.jpg

1.3. Structura funcional a sistemelor de calcul


1.3.1. Clasificare
Sistemele de calcul, n general calculatoarele, se mpart n:
1. Sisteme de calcul numerice - folosesc semnale digitale, reprezentate sub forma numeric
binar 0 i 1;
2. Sisteme de calcul analogice - sunt stabilite relaii matematice prescrise ntre variabilele
continue ale unui sistem fizic;
3. Sisteme de calcul hibride - folosesc calculul numeric cuplat cu calculul analogic.
Calculatoarele numerice pot fi, la rndul lor, neprogramabile sau programabile.
Cele mai cunoscute calculatoare numerice neprogramabile sunt obinuitele calculatoare
de birou sau de buzunar cu un numr fix de operaii, n care introducerea datelor
numerice i a operaiilor se face direct de ctre utilizator, de la tastatur. Exist ns i
numeroase alte dispozitive de calcul numeric neprogramabile, majoritatea fiind
ncorporate n diferite echipamente electrocasnice (telefoane, televizoare, maini de
splat, maini de gtit cu microunde etc) sau n echipamentele de automatizare
industriale i din alte domenii.
Calculatoarele numerice programabile sunt cele care funcioneaz pe baza unui
program introdus n memoria calculatorului i care poate fi modificat. Aceast ultim
caracteristic este esenial pentru a le distinge de cele neprogramabile. n realitate,
calculatoarul neprogramabil funcioneaz i el pe baza unui program, dar acesta este
impus de fabricant i nu poate fi modificat.
n prezent, cnd se folosete cuvntul calculator fr a se specifica din ce categorie face
parte i aceast categorie nu rezult din context, se subnelege c este vorba de un
calculator numeric programabil.
8

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

n funcie de mrime, posibiliti de prelucrare, pre i vitez de operare, exist patru categorii
de sisteme de calcul: supercalculatoare, sisteme principale (mainframe), minicalculatoare i
microcalculatoare.

1.3.2. Structura unui sistem de calcul


Dispozitive periferice de intrare (DPI) permit introducerea datelor n vederea
prelucrrii.
Exemple: tastatur, mouse, joystick, creion optic, scanner etc.
Dispozitive periferice de iesire (DPE) permit redarea rezultatelor prelucrrii.
Exemple: monitor, imprimant, plotter etc.
Canale (magistrale) de intrare/ieire (I/E) - dirijeaz informaii de la DPI la DPE;
Unitatea aritmetico-logic (UAL) - execut operaii aritmetice i logice cu datele care
i sunt furnizate de memorie. Rezultatul operaiilor se depune, dup execuie, tot n
memorie;
Memoria intern principal (MEM) - pstreaz datele i instruciunile programelor
n locaiile binare identificate prin adrese;
Memoria extern (MEM EXT)- solicitat cnd prelucrrile depesc capacitatea
memoriei interne sau n scopul arhivrii datelor i programelor;
Unitatea de comand i control (UCC) - primete instruciunile de la memorie, le
interpreteaz i, corespunztor interpretrilor acestora, emite comenzi ctre UAL, MEM,
comenzi de transfer ctre DPI, DPE sau MEM EXT, prin intermediul canalelor de I/E.
Observaii:
UCC + UAL alctuiesc UCP (unitatea central de prelucrare = procesorul central).
UCP + MEM = UC (unitatea central).
Figura 1.1. Structura unui sistem de calcul

Noiuni fundamentale
________________________________________________________________
1.3.3. Funcionarea sistemului de calcul
Datele iniiale i programele se introduc prin DPI;
Datele i instruciunile programelor sunt transferate n MEM (prin intermediul canalelor
de I/E) sub form binar, n locaiile identificabile prin adresa lor;
Fiecare instruciune este trimis la UCC. Aceasta le interpreteaz i emite comenzi ctre
MEM, UAL i canalele I/E;
Rezultatele memorate la diferite adrese sunt transferate ctre DPE, prin canalele de I/E.
Ele pot ajunge la dispozitivele de ieire (monitor) pentru vizualizare; ctre MEM EXT
pentru arhivare etc.
Observaie:
Calculatoarele electronice nu sunt supraomeneti. Ele se stric. Fac greeli periculoase
uneori. Nu au nimic magic i cu siguran nu sunt spirite sau suflete din mediul nconjurtor.
Cu aceste rezerve ele rmn ns una din cele mai uimitoare i tulburtoare realizri ale
omului, pentru c ne amplific capacitatea intelectual,i nu tim unde ne vor duce pn la
urm propriile noastre mini. Toffler, A., Al treilea val, Ed.Politic, Bucureti, 1983, p.236.

Sursa: http://www.motherboards.org/imageview.html?i=/images/reviews/hardware/1831_p3_1.jpg

10

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

Sursa: http://www.buzzle.com/articles/i3-i5-i7-comparison.html

http://www.igalaxys3.com/wp-content/uploads/2012/06/s3-teardown.jpg
11

Noiuni fundamentale
________________________________________________________________

http://androidadvices.com/apple-iphone-4s-samsung-galaxy-iii-features-specs-comparison-table/

2.BAZELE MATEMATICE ALE CALCULATOARELOR

2.1. Reprezentarea informaiei


Informaiile prelucrate prin sistemele de calcul sunt de diverse tipuri dar ele sunt
reprezentate la nivel elementar sub form binar. O informaie elementar
corespunde unei cifre binare (0 sau 1) numit bit. O informaie mai complex (un
caracter, un numr etc.) se exprim printro mulime de bii.
Codificarea unei informaii (la nivelul sistemului de calcul) const n a stabili o
coresponden ntre reprezentarea extern a informaiei (caracterul A sau numrul 33,
de exemplu) i reprezentarea sa intern, care este o secven de bii. Avantajele
12

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

reprezentrii binare se refer n special la facilitatea de realizare tehnic cu ajutorul


elementelor bistabile (sisteme cu 2 stri de echilibru) precum i la simplitatea
efecturii operaiilor fundamentale sub forma unor circuite logice, utiliznd logica
simbolic cu dou stri (0, 1).
Informaiile prelucrate n sistemele de calcul sunt de dou tipuri: instruciuni i
date.
Instruciunile, scrise n limbaj main, reprezint operaiile efectuate n sistemul de
calcul i ele sunt compuse din mai multe cmpuri:
codul operaiei de efectuat;
operanzii implicai n operaie.
Codul operaiei trebuie sa suporte o operaie de decodificare (transformare invers
codificrii) pentru a se putea efectiv executa.
Datele sunt operanzii asupra crora acioneaz operaiile (prelucrrile), sau sunt
produse de ctre acestea. O adunare, de exemplu, se aplic la doi operanzi, furniznd
un rezultat care este suma acestora.
Se pot distinge date nenumerice, de exemplu simbolurile care constituie un text, i
date numerice, rezultat al unei operaii aritmetice:
Datele nenumerice corespund caracterelor alfanumerice: A, B, ..., Z, a, b, ..., z, 0, 1,
2, ..., 9 i caracterelor speciale: ?, !, , $, ;, ...
Codificarea se realizeaz pe baza unei tabele de coresponden specific fiecrui cod
utilizat. Printre cele mai cunoscute coduri putem enumera:
BCD - Binary Coded Decimal,
ASCII - American Standard Code for Information Interchange (8 bii). Rezulta
256 de caractere codificate cu numere intre 0 si 255;
UNICODE 16 biti; 2 la a 16-a; 65536 caractere cuprinse intre 0 si 65535;
Tema: www.google.com> search: ascii table; unicode table; download le
retinem + trimitere prin e-mail la adresa constructii20132014@gmail.com
> fisier cu numele: ASCII_UNICODE_Nume+prenume_grupa; Termen:
21 oct 2013; La subject: ASCII_UNICODE_Nume+prenume_grupa
EBCDIC - Extended Binary Coded Decimal Internal Code (8 bii).

Figura urmtoare prezint corespondena dintre diferite coduri.

13

Noiuni fundamentale
________________________________________________________________
Figura 2.1 Tabela de coresponden ntre coduri
Hexadecimal

Decimal

BCD

Octal

Binary

Parity

ASCII

EBCDIC

00

00

000

00000000

even

NUL

NUL

01

01

001

00000001

odd

SOH

SOH

02

02

002

00000010

odd

STX

STX

03

03

003

00000011

even

ETX

ETX

04

04

004

00000100

odd

EOT

PF / SEL

05

05

005

00000101

even

ENQ

HT / PT

06

06

006

00000110

even

ACK

LC / RNL

07

07

007

00000111

odd

BEL

DEL

08

08

010

00001000

odd

BS

GE

09

09

011

00001001

even

HT

SPS

0A

10

illegal

012

00001010

even

LF

SMM / RPT

0B

11

illegal

013

00001011

odd

VT

VT

0C

12

illegal

014

00001100

even

FF

FF

0D

13

illegal

015

00001101

odd

CR

CR

0E

14

illegal

016

00001110

odd

SO

SO

0F

15

illegal

017

00001111

even

SI

SI

10

16

10

020

00010000

odd

DLE

DLE

11

17

11

021

00010001

even

DC1

DC1 / SBA

12

18

12

022

00010010

even

DC2

DC2 / EUA

2.2. Datele numerice


Datele numerice sunt de urmtoarele tipuri:
a) numere ntregi pozitive sau nule: 0; 1; 315...
b) numere intregi negative: -1; -155...
c) numere fracionare: 3.1415; -0.5...
d) numere n notaie tiinific: 4.9 E10=4.9*1010; 107E-4=107*10 - 4; 1023E2 ...(
start>accessories>calculator; excel ---click dr pe celula; type)
Codificarea se realizeaz cu ajutorul unui algoritm de conversie asociat tipului de
dat corespunztor. Operaiile aritmetice (adunare, scdere, nmulire, mprire) care
se pot aplica asupra acestor date se efectueaz de regul n aritmetica binar. Figura
de mai jos arat regulile operaiilor binare.

14

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

Numerele ntregi pozitive sau nule cuprind: 0, 1, 2, ...,N, N + 1...


2.2.1. Sisteme de numeraie
Un sistem de numeraie face s-i corespund unui numr N, un anumit simbolism
scris i oral. ntr-un sistem de numeraie cu baza p > 1, numerele 0, 1, 2, ..., p 1
sunt numite cifre.
Orice numr ntreg pozitiv poate fi reprezentat astfel:
N = a n-1 p n-1 + ... + a1p + a0 cu ai apartinand multimii {0, 1, 2, p-1}.
Se utilizeaz de asemenea notaia echivalent N = a n-1...a1a0.
Numerele scrise n sistenul de numeraie cu baza 2 (binar) sunt adesea compuse
dintr-un mare numr de bii, i de aceea se prefer exprimarea acestora n sistemele
octal (p = 8) i hexazecimal (p = 16), deoarece conversia cu sistemul binar este
foarte simpl.
Schimbri de baz (Conversii)
a) Zecimal - Binar
Conversia se efectueaz prin mpriri ntregi succesive cu 2, pn cnd ctul devine
nul. Numrul binar se obine scriind resturile n ordinea invers.
Exemplu: Conversia lui 238:
238 : 2 = 119 rest 0
119 : 2 = 59 rest 1
59 : 2 = 29 rest 1
29 : 2 = 14 rest 1
14 : 2 = 7 rest 0
7:2 = 3 rest 1
3:2 = 1 rest 1
1: 2 = 0 rest 1
Considernd resturile de jos n sus se obine 23810 = 111011102

b) Binar - Zecimal
Conversia se realizeaz prin nsumarea puterilor lui 2 corespunztoare biilor egali cu
1 (puterile se considera de la 0, de la dreapta spre stanga secventei binare).
Exemplu: 111011102= 1*27 + 1*26 + 1*25 + 1* 23+ 1*22+1*21 = 23810
c) Zecimal - Octal
Conversia se efectueaz prin mpriri ntregi succesive cu 8, pn cnd ctul devine
nul. Numrul octal se obine scriind resturile n ordinea invers.
Exemplu: Conversia lui 238:
238 : 8 = 29 rest 6
15

Noiuni fundamentale
________________________________________________________________
29 : 8 = 3 rest 5
3 : 8 = 0 rest 3
Considernd resturile de jos n sus se obine 23810 = 3568
d) Octal - Zecimal
Conversia se reduce la nsumarea puterilor lui 8: 3*82+5*81+6*80= 238
e) Zecimal - Hexazecimal
Conversia se efectueaz prin mpriri ntregi succesive prin 16. Testul de oprire
corespunde situaiei ctului nul. Numrul hexazecimal obinut considernd resturile
obinute de la ultimul ctre primul. OBS: 0,1,2,3,4,5,6,7,8,9, A(10), B(11).....F(15).
e) Hexazecimal - Zecimal
Conversia se reduce la nsumarea puterilor lui 16.
f) Binar - Octal
Conversia se realizeaz nlocuind de la dreapta la stnga, grupele de 3 bii prin cifra
octal corespunztoare. Dac numrul de bii nu este multiplu de 3 se completeaz
configuraia binar la stnga cu zerouri.
Exemplu: 101011111= 537 in octal
g) Octal - Binar
Conversia corespunde dezvoltrii fiecrei cifre octale n echivalentul ei binar pe 3
bii.
Exemplu:
278 = 0101112 deoarece 28 = 0102 si 78 = 1112.
h) Binar - Hexazecimal
Conversia se realizeaz nlocuind de la dreapta la stnga, grupele de 4 bii prin cifra
hexazecimal corespunztoare. Dac numrul de bii nu este multiplu de 4 se
completeaz configuraia binar la stnga cu zerouri.
Exemplu: 1010112= 2B16 .
i) Hexazecimal - Binar
Conversia corespunde dezvoltrii fiecrei cifre hexazecimale n echivalentul ei binar
pe 4 bii.
Exemplu:
3A16 = 001110102 deoarece 316= 00112 si A16=10102.
Binar
0
1
10

Octal
0
1
2

Zecimal
0
1
2
16

Hexa
0
1
2

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

11
3
3
3
100
4
4
4
101
5
5
5
110
6
6
6
111
7
7
7
1000
8
8
10
1001
11
9
9
1010
12
A
10
1011
13
11
B
1100
14
12
C
1101
15
13
D
1110
16
14
E
1111
17
15
F
10000
20
16
10
10001
21
17
11
Pentru a le deosebi, la o valoare hexazecimala se adauga fie un prefix 0x
(rezulta notatia 0x44), fie un sufix h (rezulta notatia 44h). Pentru reprezentarea
constantelor in octal se foloseste prefixul 0: 0721
Valorile numerice pentru care nu se specifica baza de numeratie se considera de
regula ca sunt zecimale.
Aceste precizari sunt necesare deoarece, in prezentarea diverselor componente
ale calculatorului, vom intalni diversi parametri numerici reprezentati in forma
binara.
Tema: Numerele 9456; 787; 578; 8476 se vor reprezenta (manual!!!!) in binar,
octal si hexazecimal iar rezultatele obtinute vor fi trecute inapoi in zecimal,
conform exemplelor de mai sus din curs. Verificarea se va face cu start;
programs,accessories; calculator pe scientific.
Se redacteaza modul de lucru intr-un fisier .doc si se trimite fisierul arhiva
conversii_numeprenume_grupa.rar (se foloseste winrar etc) prin e-mail la
adresa constructii20132014@gmail.com. Termen: 21 oct. 2013 (si pt
ascii+unicode).
2.2.2. Numere ntregi negative
Numerele ntregi negative pot fi codificate prin trei metode:
semn i valoare absolut (SVA);
complement logic sau restrns sau fa de 1 (C1);
complement aritmetic sau adevrat sau fa de 2 (C2);
17

Noiuni fundamentale
________________________________________________________________
SVA: Prin metoda semn i valoare absolut, numerele se codific sub forma:
valoare absolut.
Prin aceast reprezentare se sacrific un bit pentru semn. In mod normal, 0 este
codul semnului +, iar 1 este codul semnului -. n aceste conditii.
Aceast metod de reprezentare prezint unele inconveniente:
- numrul zero are dou reprezentri distincte: 000...0 i 100...0, adic +0 si - 0;
- tabelele de adunare i nmulire sunt complicate din cauza bitului de semn care
trebuie tratat separat.
Complement logic i aritmetic
C1: Complementul logic (complement fa de 1) se calculeaz nlocuind, pentru
valorile negative, fiecare bit 0 cu 1 i 1 cu 0.
C2: Complementul aritmetic (complement fa de 2) este obinut adunnd o unitate
la valoarea complementului logic.
Exemplu: Reprezentarea numrului (-6) pe 4 bii: +6 = 0110 (primul 0 din stg
este al semnului +!!!!)
Semn i valoare absolut: - 6 = 1110
Complement fa de 1: - 6 = 1001 (am negat bitii de 0 si 1 de la 0110 !!!!)
Complement fa de 2: - 6 = 1010 (la reprezentarea din C1 se aduna 1)
Se poate uor constata c intervalul numerelor ntregi N care se pot reprezenta n
complement fa de 1 este acelai ca i pentru reprezentarea semn i valoare
absolut.
Complement aritmetic sau adevrat sau fa de 2 (C2);
Se poate remarca faptul c bitul cel mai din stnga (bitul de semn) este ntotdeauna 0
pentru numere pozitive i 1 pentru cele negative i aceasta pentru fiecare din cele trei
reprezentri, conform tabelului urmtor.

18

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

Reprezentarea n complement fa de 1 recunoate dou zerouri (+0 si 0), dar este


simetric, deoarece aceleai numere pozitive i negative sunt reprezentabile, iar
aceast situaie se poate uor realiza electronic.
In complement fa de 1 sau fa de 2, operaiile aritmetice sunt avantajoase,
deoarece operaia de scdere se realizeaz prin adunarea complementului.
Intr-o adunare n complement fa de 1, o cifr de transport ctre ordinal superior
generat de bitul de semn trebuie adugat la rezultatul obinut,
Spre deosebire de complementul fa de 2, cnd aceast cifr de transport se ignor.
In complement fa de 1 sau 2 nu se produce depire de capacitate dect n cazul n
care cifrele de transport generate de bitul de semn i de bitul anterior acestuia sunt
diferite.
Bitul de semn
0
0
0
0
1
1
1
1

1
0
0
0
1
1
0
0

1
0
0
0
1
1
0
0

1
0
0
0
1
1
0
0

1
0
0
0
1
1
0
0

1
0
0
0
1
1
0
0

1
1
0
0
1
1
0
0

1
0
1
0
1
0
1
0

=
=
=
=
=
=
=
=

Numere ntregi reprezentati in complement fata de 2, pe 8 biti


Complement fata de 2

Zecimal

0001

0000

1111

1110

1101

1100

4
19

127
2
1
0
1
2
127
128

Noiuni fundamentale
________________________________________________________________
Numere ntregi reprezentati in complement fata de 2, pe 4 biti
1111 1111
255
0101 1111
95
===========
=====
1010 0000 (complement fata de 1)
160
+
1
+
1
===========
=====
1 (complement afta de 2)
161

3.Programe. Sisteme de operare


Sistemul de calcul prelucreaz datele numai dac este programat. Programul const dintr-o
succesiune de instruciuni care converg, pe baza unui algoritm, ctre soluia problemei ce
urmeaz s se rezolve. Calculatorul este privit ca un instrument folosit pentru rezolvarea
problemei respective, efectund anumite aciuni asupra unor date. Fiecare sarcin pe care o
indeplinete se caracterizeaz printr-un set de date specific sarcinii respective i printr-un
algoritm care indic aciunile ce trebuie efectuate asupra datelor pentru ndeplinirea acestei
sarcini. Ca urmare, programul trebuie s conin dou categorii de informaii:
a. Descrierea datelor de intrare, de ieire i auxiliare care vor fi prelucrate;
b. Descrierea algoritmului aplicat pentru prelucrarea acestor date.

n anul 1973, John Wirth a enunat c programul poate fi caracterizat prin relaia:
Program = Date + Algoritm.
Relaia pune n eviden legtura strns dintre date i algoritm i subliniaz importana care
trebuie s li se acorde ambelor componente la elaborarea unui program.

ALGORITM = LOGICA + CONTROL ( R. Kowalski 1979 )


SISTEM EXPERT = CUNOASTERE + METAINTERPRETARE (Sterling 1984 )
MODELARE = CUNOASTERE + REPREZENTARE
LIMBAJE = PROCESARE + INTERPRETARE

Ansamblul programelor este numit software.


Software-ul poate fi:
a. De sistem coordoneaz modul n care lucreaz componentele sistemului i ofer
asisten la dezvoltarea programelor de aplicaii (alctuiesc software-ul de baz);
b. De aplicaie sunt destinate s rezolve problemele specifice unei aplicaii (alctuiesc
software-ul de aplicaie).
Observaie:
Programele de sistem sunt specifice unor anumite tipuri de sisteme de calcul (exist o
coresponden hardsoft).

20

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

Clasificarea software-ului

3.1. Limbaje de programare


Limbajul de programare este definit ca fiind ansamblul format de un vocabular i un set de reguli
gramaticale, necesar instruirii unui calculator pentru a realiza anumite activiti.

Observatie:

n actul de procesare un limbaj folosete termenul de entitate prin intermediul cruia


se realizeaz procesarea i cunoatere.
Definiie. Un limbaj de cunoatere este sistemul virtual/logic
L = ( V, Sin, Sem, O, C, T, Tc) , unde
V = vocabular/alfabet, Sin = sintaxa (reguli), Sem = semantica (reguli), O = obiecte, C
21

Noiuni fundamentale
________________________________________________________________
= concepte / termeni, T = teorii / metode / tehnici de rezolvare, Tc = tezaurul
cunoaterii (baza de cunotine).
Limbajele cunoaterii sunt:
Limbajele naturale (utilizate de popoare; limbile popoarelor) entitate=cuvnt ;
construciile lexicale descriu stri, imagini, aciuni etc. ;
Limbajele tiinifice/tehnice/economice ... (utilizate n domeniile tiinelor)entitate=cunotin; studiul obiectelor i a relaiilor dintre obiecte n domeniile
matematic, fizic, chimie, informatic, biologie, economie, etc. ;
Limbajele artificiale (utilizate n domeniul calculatoarelor) formate din:
Limbaje de programare procedural entitate=locaie de memorie
Limbaje de programare fucional entitate=element de list
Limbaje de programare logic entitate=obiect / clauza
Limbaje de programare obiectuala entitate=obiect
Limbaje de programare Web entitate=elemente multimedia
Limbaje pentru baze de date entitate=nregistrare
Limbaje pentru grafica pe calculator entitate=obiect grafic
Limbaje pentru modelare-simulare entitate=eveniment
Limbaje pentru sisteme de operare entitate=proces
Limbaje pentru Inteligena Artificial entitate=cunotin, M. Vlada, Bucuresti, 2012
....................
Aspectele caracteristice ale limbajelor de programare sunt:

Sintaxa - reprezint ansamblul regulilor prin care pornind de la simboluri de baz se construiesc
structuri compuse. Se definete gramatica ca fiind mulimea regulilor sintactice;
Semantica indic sensul construciilor sintactice i corespunde unui set de reguli care determin
semnificaia instruciunilor limbajului;
Pragmatica este capacitatea de a utiliza construciile sintactice i semantice.

Exist limbaje generale ( Pascal, C), de prelucrare a bazelor de date ( COBOL, dBASE, SQL), orientate spre
obiect ( SmallTalk, C++, Java), editoare de texte i hiper-texte ( HTML, TeX, PostScript ), de nivel sczut (
Assembler ), folosite n inginerie, matematic, fizic
( Fortran, Matlab, Mathematica) i lista poate
continua.
Fiecare limbaj are avantaje i dezavantaje, ns se remarc tendina de apropiere de limbajul natural
formalizat, de simplificare a construciilor foarte des folosite, de a structura n mod logic diverse seciuni ale
programelor scrise n limbajul respectiv, de modularizare i de a pune la dispoziia programatorului
biblioteci vaste ( de exemplu Borland VCL - Visual Component Library, ierarhia de clase de la IBM VisualAge sau MFC - Microsoft Foundation Classes , Java API Java Aplication Programming Interface).
O clasificare a limbajelor de programare cuprinde pe cele:

a. Procedurale sau neprocedurale - utilizatorul descrie pas cu pas algoritmul de rezolvare; unitatea
de baz este procedura sau funcia; se aplic principiul programrii structurate prin care, orice
procedur poate fi reprezentat prin cele trei structuri fundamentale din algoritmic: secvenial
(liniar), alternativ (de selecie), ciclic (repetitiv). Exemple: Algol60, Fortran,Pascal, C, PL/1,
Ada etc.
b. Modulare - Programul se descompune n module. Acestea sunt independente (atomice). Principiul
de baz este ncapsularea. Modulul are dou componente: interfaa i implementarea. Exemple:
Modula, Ada etc.
c. Orientate spre obiect - Obiectul este o entitate care conine stare (informaie) i comportament i
poate reprezenta orice entitate din lumea real sau virtual. Programul este un ansamblu de obiecte
22

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

d.
e.

f.
g.
h.
i.

constructiicdsd@gmail.com

n interaciune. Exemple: Ada 95, boo, C++ , C#, ColdFusion, Common Lisp, CorbaScript, COOL
(Object Oriented COBOL), D, Delphi, ECMAScript (JavaScript), Eiffel, F-Script programming
language, Fortran 2003, Gambas, IDLscript, incr Tcl, J, Java, JavaScript, Lexico, Objective-C, Perl
5, PHP, Simula, Smalltalk, Visual Basic / VB.NET etc.
Specifice programrii funcionale: Programul este un ansamblu de funcii i apeluri recursive;
funciile sunt folosite la descrierea datelor i codului; nu exist instruciuni de atribuire.
Fundamentul matematic este dat de expresiile lambda. Exemple: Lisp, ML etc
Specifice programrii logice - n programarea logic programul const din fapte i reguli.
Limbajele sunt declarative - se indic modul cum trebuie s arate soluia problemei. Fundamentul
matematic este asigurat de sistemele logice formale: logica predicatelor de ordinul 1 precum i logici
modale, temporale sau monotonice. Exemplu: Prolog, Mercury, Visual Prolog, Oz, Metaphor etc.
Specifice programrii concurente i distribuite Ada, Alef, ChucK, Cilk, Comega, Concurrent
Pascal, E, Erlang, Java, Joule, Limbo, Mozart/Oz, Occam, Pict, Promise, SR etc.
Specifice bazelor de date: SQL, dBase, FoxPro, MS SQL, MySQL, MS Access etc.
Specifice programrii Web: ASP, ASP.NET, PHP, JSP; Limbaje de scripting pe server/client:
VBScript, JavaScript, JavaBeans, EJB, Cold Fusion, PERL, PHP etc.
Specifice programarii bazate pe ageni: Telescript, Agents, AgentTcl etc.

Dup modul cum au evoluat n timp, limbajele de programare se mpart n:


limbaje de prim generaie: limbajul main (machine language);
limbaje de generaia a doua: limbajul de asamblare (assembly language);
limbaje de generaia a treia: limbajele de nivel nalt (high-level programming languages);
limbaje de generaia a patra: limbaje mai apropiate de limbajul uman (very high-level
programming languages) dect limbajele de nivel nalt.
Limbajul main:
este limbajul pe care calculatorul l nelege n mod direct;
programele se scriu n cod binar: succesiuni de 0 i 1;
fiecare instruciune corespunde unei combinaii de bii;
programatorul trebuie s cunoasc detaliat structura hardware a calculatorului;
programatorul trebuie s gestioneze fr greeal alocarea adreselor de memorie pentru un program;
pot s apar erori datorit concepiei programului, sintaxei, suprapunerii adreselor de memorie etc.

Limbajul de asamblare:

a aprut ncepnd cu anul 1950 i reprezint o form mai prietenoas a limbajului main;
programele se scriu n mod text (mnemonice) pentru ca apoi s fie traduse ntr-o form binar,
corespunztoare limbajului main;
limbajul de asamblare este tradus n limbaj main de ctre assembler;
limbajele de asamblare nc solicit programatorului cunoaterea de multe detalii hardware;
este specific anumitor tipuri de calculatoare;

Observaie:
Limbajul de asamblare mpreun cu limbajul main formeaz categoria limbajelor de nivel sczut (lowlevel languages).
Limbajele evoluate (High Level Languages):
permit formularea soluiilor problemei de rezolvat n termeni mai apropiai de cei folosii de oameni;
sunt mult mai apropiate de limbajul uman;
au fost concepute pentru a permite programrii s fie mult mai uoar i cu mai puine erori ;
programatorul nu trebuie s cunoasc detalii cu privire la structura intern a unui anumit tip de
calculator;
23

Noiuni fundamentale
________________________________________________________________

dup modul cum se face transpunerea programelor evaluate, exist dou tipuri de astfel de
componente software specializate:
1. interpretor: traduce succesiv instruciunile de nivel nalt ntr-o form intermediar care este
apoi executat; poate execut un program imediat.
2. compilator: traduce instruciunile de nivel nalt direct n limbaj main. Compilatorul
necesit mai mult timp. Programele produse de compilator ruleaz mul mai rapid dect cele
produse de interpretor.
majoritatea programelor evolute au la dispoziie att compilator ct i interpretor: interpretorul se
folosete n timpul realizrii unui program pentru testarea unor mici seciuni ale programului. Unele
limbaje evoluate sunt concepute s lucreze numai cu interpretor (BASIC, LISP).
dac limbajele sunt standardizate, atunci fiecare productor de calculatoare (procesoare) va putea s
realizeze compilatorul care s respecte standardele i s traduc programele n limbajul main
specific productorului: devine posibil ca un program, respectndu-se aceste standarde, s poat fi
compilat pe diverse calculatoare i apoi executat.

Prin scrierea unui program ntr-un limbaj evoluat se face o economie imens de timp. Programatorul pierde
mai puin timp pentru scrierea ntr-un limbaj mult mai apropiat de cel uman dect dac acelai program ar fi
scris n limbaj main. Timpul de compilare al programului este de ordinul secundelor.
n figura 1.1. sunt prezentate primele trei generaii de limbaje de programare i modul cum interacioneaz
acestea cu calculatorul.

Figura 1.1. Primele trei generaii de limbaje de programare


n ultimii ani, limbajul Java dezvoltat de compania american Sun Microsystems (SUN - Standford
University Network www.sun.com)/ acum Oracle (www.oracle.com), a devenit unul dintre cele mai
populare limbaje de programare. Principalele sale caliti sunt uurina de nvare, existena unor
instrumente de dezvoltare puternice care permit programatorilor s realizeze rapid i eficient aplicaii
complexe i posibilitatea de a rezolva un numr vast de probleme att din sfera comercial ct i din cea
tiinific.

24

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

Informatica aplicata, Constructii 2014-2015: OctaveFREE !!!!/ (Matlab) +Java


25

Noiuni fundamentale
________________________________________________________________
Studiu de caz: Limbajul Java sem2 !!!
3.2. Limbajul Java - Istoric
Primii pai n realizarea limbajului Java au fost fcui n aprilie 1991 de ctre o echip de cercetare de la Sun
Microsystems condus de James Gosling (autor al editorului emacs i al sistemului de ferestre grafice
NeWS). Iniial, scopul echipei era s creeze software destinat produselor electronice comerciale. Aceste
echipamente se definesc ca mici, portabile, distribuite i lucrnd n timp real. De la aceste aparate se cer n
general fiabilitate i uurin n exploatare. Foarte curnd, echipa a constatat c un produs software destinat
unei astfel de piee poate avea succes doar dac este dezvoltat ntr-un mediu independent de platforma
hardware. Grupul de cercetare a ncercat s extind instrumente de dezvoltare bazate pe limbajul C++ dar
aceste ncercri s-au soldat cu un eec datorit complexitii acestui limbaj. Confruntai cu aceast problem,
membrii echipei au decis s realizeze un limbaj care s posede caracteristicile de care aveau nevoie: mai
flexibil, mai simplu i mai portabil. Aa s-a nscut Java, limbaj de programare capabil s ruleze pe orice
dispozitiv conectat la o reea: staii de lucru Sun, PC-uri, calculatoare MacIntosh, PDA-uri (Personal Digital
Assistant), telefonie mobil i chiar frigidere, aparate de prjit pine etc.
n dezvoltarea limbajului, Gosling i echipa sa au mprumutat din caracteristicile limbajelor de programare
consecrate, cum ar fi C++ si SmallTalk, dar, n acelai timp, au creat un limbaj extrem de robust prin
ndeprtarea facilitilor catalogate ca periculoase din C++ cum ar fi pointerii, suprancrcarea
operatorilor i alocarea dinamic a memoriei.
Numele iniial al limbajului a fost Oak (stejar), copac care cretea n faa biroului lui James Gostling.
Ulterior, s-a descoperit c numele fusese deja folosit n trecut pentru un alt limbaj de programare aa c a
fost abandonat i nlocuit cu Java.
Pe data de 23 mai 1995, dup patru ani de cercetare i dezvoltare, firma Sun Microsystems a lansat oficial
prima versiune a limbajului Java, cnd a fcut public i specificaia noului limbaj, la SunWorld, n San
Francisco.
n aceeai perioad, Marc Andreessen, student care lucra la National Center for Supercomputing
Applications (NCSA), a creat primul browser pentru World Wide Web, Mosaic 1.0. Pe la mijlocul anului
1994, creatorii lui Java au gsit World Wide Web-ul ca fiind foarte promitor din punctul de vedere al
limbajului pe care l dezvoltau. Tehnologia dezvoltat de Java era perfect pregtit pentru acest mediu, n
special datorit capacitilor sale de a rula pe mai multe platforme i facilitilor de comunicare prin reele.
Cel mai important lucru este c a introdus ceva ce nu mai fusese posibil pn atunci: posibilitatea de a rula n
siguran aplicaii de pe serverele Web pe calculatoarele utilizatorilor.
n Noiembrie 1995 a fost fcut disponibil, pe site-urile firmei Sun Microsystems, prima versiune de Java
(beta), fiind cutat de zeci de mii de persoane i sute de firme. Prima versiune popular de Java a fost Java
1.02, care a aprut n 1996, distribuit de Sun sub forma JDK1.02 (Java Development Kit). Aceasta
coninea compilator i interpretor Java precum i alte unelte utile programatorilor (depanator, generator de
documentaie, dezasamblor). Iniial au existat versiuni pentru sistemele de operare Sun, Windows 3.x/95 i
MacOS. Ulterior au aprut versiuni i pentru alte sisteme de operare (alte UNIX-uri, Linux etc).
n 1997 a aprut JDK1.1, beneficiind de multe mbuntiri i extensii. Unele programe compilate cu
versiuni 1.02 ale compilatorului nu sunt compatibile cu Java1.1 dect dac sunt recompilate. Un program sau
applet Java 1.1 nu va rula ntr-un mediu Java1.02. Java 1.1.5. a adus mbuntiri n interfaa utilizator,
tratarea evenimentelor i o mai mare consisten a limbajului.
n decembrie 1998 a fost lansat noua versiune Java 2, care introduce cteva faciliti avansate: Swing noi
funcii care permit crearea unei interfee utilizator grafice, fie n stilul unui anumit sistem de operare, fie n
noua prezentare grafic Java, numit Metal; drag and drop posibilitatea de a transfera interactiv
informaii ntre diferite aplicaii sau dintr-o parte a interfeei programului n alta; revizuirea complet a
funciilor din Java, n sensul alinierii acestora la posibilitile audio ale altor limbaje etc.
26

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

Partea de control nu a fost neglijat: cu toate c versiunea principal nu este conceput pentru uz industrial
sau n dispozitive cu capaciti restrnse, Sun a lansat dou linii paralele de Java, PersonalJava, pentru
dispozitive limitate ca i capaciti dar cu posibiliti de afiare i EmbeddedJava, pentru dispozitive limitate
ca i capaciti sau resurse i fr nici un mijloc de afiare:
1. PersonalJava (http://java.sun.com/products/personaljava/pj-emulation.html) - este un nou mediu de
dezvoltare a aplicaiilor Java pentru dispozitive conectabile n reea, cu capaciti mai reduse dect
calculatoarele personale (de exemplu dispozitive de uz casnic sau industrial). Deoarece PersonalJava
include numai o anumit parte din funciile Java standard, aplicaiile scrise pentru PersonalJava sunt
perfect compatibile n sus. Prezint urmtoarele particulariti: mecanisme de incrcare i execuie
dinamic a codului, ceea ce permite s se fac modificri foarte uor n codul aplicaiilor;
dimensiune redus a codului generat (codul binar Java este mult mai compact n raport cu celelalte
coduri); este printre primele limbaje care aduce tehnologia orientat spre obiect n astfel de
dispozitive. Java si menine portabilitatea i n acest domeniu, tocmai datorit faptului ca el ruleaz
n interiorul unei maini virtuale. PersonalJava include o main Java virtual, un set de librrii de
baz i un set de librrii opionale, care pot fi folosite dup preferin. Pachetele sunt concepute
modular i scalabile, permind, de exemplu, folosirea unor dispozitive diferite de afiare sau
protocoale diferite de reea.
2. EmbeddedJava (http://java.sun.com/j2me/index.jsp) este, n mod asemntor cu PersonalJava, o
versiune de Java pentru dispozitive cu faciliti restrnse, cu deosebirea c este mult mai putin
pretenios. A fost proiectat s fie mult mai modular, scalabil i configurabil, rulnd cu un minim
posibil de memorie, asigurnd o serie de nivele de funcionalitate. Aceast versiune asigur suportul
unor instrumente absolut necesare: unelte de inserare a codului executabil n memoriile ROM, unelte
pentru compilarea, compresia i plasarea imaginilor precum i pentru estimarea resurselor de calcul
necesare.
Din 1995 i pn n prezent, lumea Java triete ntr-o continu agitaie, aprnd alte i alte inovaii i
modificri ale limbajului. Alturi de JDK - Java Development Kit (http://java.sun.com/j2se/1.5.0/index.jsp),
pus la dispoziie de compania Sun Microsystems, au aprut noi medii de dezvoltare a aplicaiilor Java: Sun
ONE Studio 5 (http://wwws.sun.com/software/sundev/jde/); JCreator (http://www. jcreator. com/); BlueJ
(http://www.bluej.org/);
Borland
JBuilder
(http://www.
borland.
com/products/downloads/
download_jbuilder. html); RealJ (http://www.realj. com/); DrJava (http://drjava. sourceforge. net/);
NetBeans IDE (http://www.netbeans.org/); JIPE (http://jipe.sourceforge.net/); Visual Age for Java
(http://www7b.software. ibm.com/ wsdd/zones/vajava /) etc.
3.3. Tehnologia Java
http://www.java.com/en/download/windows_ie.jsp?locale=en&host=www.java.com:80
Java este un limbaj de programare orientat spre obiect, destinat iniial pentru aparatura electronic inteligent
conectat n reea, proiectat pentru dezvoltarea de aplicaii pentru Internet i extins complet pentru ca, pe
lang domeniul World Wide Web, s poat fi folosit i pentru dezvoltarea de software de interes general.
n acelai timp Java este i o platform, n sensul c ofer o arhitectur multi-nivel i distribuit obiect.
Aplicaiile bazate pe aceast platform pot fi distribuite prin sisteme fizice multiple, ceea ce permite
scalabilitate, securitate, performan i o uoar interfaare cu sistemele existente.
3.3.1. Limbajul de programare Java
O caracteristic particular a programelor Java este c sunt n acelai timp interpretate i compilate.
Compilarea const n traducerea programelor scrise n limbajul Java ntr-un limbaj intermediar numit
bytecode (cod de octei). Acest limbaj intermediar este indepenent de platform i este interpretat de un
interpretor Java (Java Virtual Machine JVM). Interpretorul execut fiecare instructiune din bytecode pe
calculatorul int. Compilarea are loc o singur dat, pe cnd interpretarea este un proces care se repet de
fiecare dat cnd un program Java este lansat n execuie. Instructiunile bytecode sunt de fapt instruciunile
n cod main pentru Maina Virtual Java (Java Virtual Machine). Orice interpretor Java, fie el java.exe sau
un browser Web capabil s ruleze appleturi, este de fapt o implementare a mainii virtuale Java.
Java bytecode face posibil filozofia scrie odat, execut oriunde - write once, run anywhere care a fost i
este, scopul urmrit de ctre dezvoltatorii limbajului. Un program Java poate fi compilat pe orice calculator
pe care este instalat un compilator Java, dup care fiierele bytecode pot fi executate sub orice implementare
a mainii virtuale Java.
27

Noiuni fundamentale
________________________________________________________________
3.3.2. Platforma Java
O platform este definit drept contextul software sau hardware n care ruleaz un program. Exemple de
platforme sunt Windows 2003 Server, Windows XP, Linux, Sun Solaris etc. Majoritatea platformelor pot fi
descrise ca o combinaie de componente hardware i software. Platforma Java este o platform exclusiv
software care ruleaz pe diverse platforme hardware.
Platforma Java are dou componente :
Maina Virtual Java (Java Virtual Machine - JVM)
Interfaa de programare a aplicaiilor Java (Java Application Programming Interface Java API)
Aceste componente asigur legtura dintre un program scris utiliznd limbajul Java i o platform harware
oarecare. Rolul platformei Java este s asigure independena programului de platforma hardware pe care
acesta ruleaz, aa cum se poate vedea n figura 1.2.

Figura 1.2. Un program care ruleaz pe o platform Java


3.3.3. Maina virtual Java
Maina virtual Java (JVM) este un calculator abstract, care st la baza realizrii limbajului de programare
Java i reprezint componenta tehnologiei Java pe care se bazeaz posibilitatea rulrii unui program pe o
multitudine de platforme hardware. Prima variant a JVM a fost conceput de James Gosling n anul 1992,
dup care a fost dezvoltat de o echip de la firma Sun Microsystems, cu contribuii de la colaboratori din
ntreaga lume. In prezent JVM a fost implementat pe o mare varietate de platforme: Windows , Linux ,
MacOS , Solaris etc.
Ideea de baz a autorilor limbajului Java a fost ca acesta s fie independent de platform, adic independent
de tipul calculatorului pe care lucreaz i de sistemul de operare al acestuia.
Pentru a se realiza portabilitatea unui program (posibilitatea de transfer de pe o platform pe alta) exist
dou metode clasice:
1. Programul este scris ntr-un limbaj de nivel superior (de exemplu n C, C++, Pascal etc.), care nu
depinde de tipul de calculator folosit i apoi este compilat, adic este tradus ntr-un program binar,
destinat pentru un anumit tip de calculator. Acest program poate fi executat direct de ctre
procesorul calculatorului respectiv, deoarece folosete setul de instruciuni specific acestuia.
Compilarea se face de ctre un program special, numit compilator. Trebuie s existe cte un
compilator separat pentru fiecare limbaj i pentru fiecare tip de calculator destinaie, iar programele
binare rezultate din compilare nu pot fi transmise ntre calculatoare de tipuri diferite. n cazul
programelor compilate, n timpul execuiei acestora, n memoria calculatorului nu se gsete
programul surs, scris n limbaj de nivel superior, ci doar programul binar rezultat dup compilare.
28

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

2. n loc ca programele s fie compilate, ele pot fi interpretate: n timpul execuiei programului, n
memoria calculatorului se gsete chiar programul surs n limbaj de nivel superior, mpreun cu un
program binar numit interpretor. Acesta parcurge instruciunile programului surs i le
interpreteaz, adic le traduce n instruciuni binare, aparinnd setului de instruciuni al
procesorului i le transmite pe rnd procesorului pentru a fi executate. Exemple de limbaje
interpretate sunt: limbajul Basic, limbajele de comand ale sistemelor de operare, limbajele de
comand ale unor sisteme de gestiune a bazelor de date etc. Limbajele interpretate prezint unele
avantaje (programele sunt mai uor de exploatat i depanat), dar prezint i dezavantajul c
executarea programelor se face mai lent dect n cazul celor compilate. Din aceast cauz, atunci
cnd viteza de execuie este esenial, se prefer programele compilate.
n cazul limbajului Java, portabilitatea este asigurat la nivelul codului de octei (byte-code-ului) rezultat
n urma compilrii. Aceasta s-a obinut prin adoptarea unei soluii de compromis ntre cea a programelor
compilate i a programelor interpretate.
Maina virtual Java, este un calculator abstract pentru care s-au specificat setul de instruciuni al
procesorului, setul de regitri i organizarea memoriei. Limbajul Java n sine este un limbaj de nivel
superior, asemntor lui C++.
Procesul de execuie a unui program Java este descries in Figura 1.3: Programul scris n Java este compilat.
Compilatorul Java genereaz un program binar numit cod de octei (bytecode) care este destinat mainii
virtuale Java, adic folosete setul de instruciuni i organizarea memoriei specifice acestei maini. n cazul
general, maina fizic pe care se execut programul are alt set de instruciuni i alt structur dect maina
virtual Java. Deoarece codul de octei destinat mainii virtuale Java trebuie interpretat, n timpul execuiei,
n memoria calculatorului se vor gsi codul de octei al programului care trebuie executat i interpretorul
Java, adic un program care interpreteaz acest cod de octeti. Avantajul este c interpretarea codului de
octei este mult mai rapid decat cea a programului surs, dei totui ceva mai lent dect executarea unui
program binar compilat special pe maina pe care se execut.
Observaii:
1. Deoarece maina virtual Java este un calculator abstract universal, nu este deloc obligatoriu ca
programele pentru aceast main s fie scrise n limbajul Java. Pentru orice limbaj de nivel superior
se pot realiza compilatoare care s genereze cod de octei pentru maina virtual Java, acest cod
putnd fi apoi executat pe orice calculator pe care exist un interpretor Java. Astfel de compilatoare
exist deja pentru diferite limbaje, ceea ce creaz perspectiva ca maina virtual Java s devin un
mijloc general de asigurare a portabilitii programelor la nivel de cod de octei, indiferent de
limbajul n care ele au fost scrise.

2. Unii fabricani de microprocesoare (n frunte cu firma Sun Microsystems) au trecut deja la realizarea
hardware a mainii virtuale Java, precum calculatoare a cror structur i cod de instruciuni respect
specificaiile mainii virtuale Java. Ele pot executa direct codul de octei, fr a mai avea nevoie de
un interpretor, ceea ce mrete viteza de execuie a programului.

29

Noiuni fundamentale
________________________________________________________________

Figura 1.3. Procesul de execuie a unui program Java

30

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

3.3.4. Terminologie
JDK Java Development Kit conine instrumentele folosite pentru dezoltarea de software, n el fiind inclus
i un mediu de execuie JRE (Java Runtime Environment). Pe lng maina virtual Java, JDK mai conine
compilatorul de Java, un instrument de vizualizare a applet-urilor, un generator de documentaii, utilitare
specifice mediului de dezvoltare Java i exemple de programe Java.
SDK este o alt denumire pentru JDK, deoarece, ncepnd cu lansarea lui Java 2, compania Sun s-a referit
la acesta cu numele de Java Software Development Kit.
JRE - Java Runtime Environment este un mediu de execuie Java care conine toate bibliotecile de rulare
necesare la executarea oricrui program Java precum i o main JVM.
Exist trei ediii de JDK, fiecare din ele fiind livrat cu cte o main JVM i cu toate instrumentele standard
necesare dezvoltrii de aplicaii:

J2SE Java 2 Standard Edition este livrat cu setul standard de biblioteci de rulare dezvoltate
pentru scrierea i distribuirea de aplicaii Java de uz general. Aceast ediie conine o main Java
optimizat pentru partea de client; (www.sun.com....downloads....j2se with netbeans)
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US//USD/ViewFilteredProducts-SingleVariationTypeFilter

J2ME - Java 2 Micro Edition este o versiune livrat cu un set restrns de biblioteci de rulare i cu
o main Java optimizat pentru dispozitive integrate sau portabile. Are dou linii paralele de
dezvoltare, PersonalJava i EmbeddedJava.

J2EE - Java 2 Enterprise Edition este o versiune care conine tot ceea ce se afl n J2SE, la care
se adaug un set de interfee API (Application Program Interface) i biblioteci de dezvoltare i
distribuire a aplicaiilor la nivel de ntreprindere (sisteme de prelucrare de tranzacii, servere Web,
servicii de mesagerie etc. Maina JVM este aceeai cu cea de la J2SE dar exist i o versiune de
JVM optimizat pentru server, care poate fi descrcat separat (HotSpot Server VM http://www.softpile.com /Development /Java/Review_03157_index.html ). J2EE simplific
aplicaiile tip ntreprindere prin construirea lor pe baza unor componente modulare standardizate,
prin oferirea unui set complet de servicii acelor componente i prin preluarea multor detalii a
comportamentului automat al aplicaiei, fr o programare complex. Prin automatizarea multor
sarcini ale procesului de dezvoltare a aplicaiilor care sunt dificile i care ar necesita timp,
tehnologia J2EE permite dezvoltatorilor de sisteme de tip ntreprindere s se concentreze asupra
mbuntirii strategiei de afaceri, dect s creeze infrastructura acesteia.

JVM - Java Virtual Machine este software-ul care execut toate aplicaiile Java. Const din cteva fiiere
care sunt plasate n directoarele din JDK sau JRE, unul din fiiere fiind o interfa care instaniaz JVM-ul i
face posibil ca aceasta s lucreze pe sistemul de operare nativ din calculator. Pentru utilizator, numele
mainii JVM este java, nume standard al comenzii necesare pentru a rula JVM, nume ce trebuie urmat de
numele programului. Exist dou semnificaii pentru termenul JVM:
1. Fiierul binar care exist n sistemul de fiiere, instalat pe calculator cnd s-a instalat JDK sau JRE;
2. Instan particular care se ncarc n memoria calculatorului cnd se execut un program, fiind
executat ca un proces din sistemul de operare. Fiierul binar nu este ncrcat i nici nu se schimb,
ceea ce permite ca s fie rulate n acelai timp mai multe instane ale mainii JVM.
.jar este extensia ce corespunde unui fiier arhiv Java, creat cu utilitarul jar din Java. Folosind opiunea
jar, comanda java permite lansarea n execuie a unui program Java care este stocat ntr-un fiier jar.

31

Noiuni fundamentale
________________________________________________________________
.class este extensia fiierului obinut (numit de clase), dup compilarea de ctre compilatorul de Java a
unui fiier cu cod surs Java (care are extensia .java). Fiierele de clase reprezint forma executabil a
programelor Java. Codurile de octei sunt coduri de dimensiunea unui octet pentru JVM.
JavaBeans numele componentelor de cod Java reutilizabile. Orice program Java sau orice bloc de program
Java poate fi scris ca o clas JavaBean.

3.3.5. Java API


Java API este o colecie de componente software care pot fi utilizate n realizarea de programe. Elementele
acestei colecii sunt grupate n biblioteci de clase i interfee numite pachete (packages). Gruparea
elementelor se face n funcie de funcionalitatea pe care acestea o ofer. O implementare complet a
platformei Java ofer printre altele urmtoarele:
Elemente de baza : Obiecte, iruri de caractere, numere, structuri de date, date calendaristice,
timp , intrare/ieire etc;
Appleturi: Un set de standarde utilizate n realizarea programelor care ruleaz n interiorul unui
navigator Web;
AWT/Swing : Set de instrumente pentru realizarea de interfee grafice (GUI);
Servleturi : Un set de standarde utilizate n realizarea servleturilor;
Programarea retelelor : URL , TCP , UDP , sockets, adrese IP;
Procesarea documentelor XML : Simple XML Parsing (SAX) , Document Type Definition
(DTD) , Document Object Model (DOM);
Securitate : Semnturi digitale, controlul accesului, managementul cheilor publice i al celor
private;
Componente Software : Cunoscute sub numele de JavaBeans, acestea pot fi utilizate n cadrul
altor arhitecturi de componente;
Serializarea obiectelor : Asigur persistena i comunicarea prin intermendiul tehnologiei RMI
(Remote Method Invocation).
Java Database Connectivity : Standardizeaz accesul la sistemele de baze de date relaionale;
Internaionalizarea aplicaiilor : Setarea localizrii, formatri texte.
n plus, exist un API pentru grafica 2D i 3D, mesagerie electronic, animaie, telefonie, sunet i multe alte
domenii. Figura 1.4. prezint componentele care sunt incluse n Java 2 SDK.

Figura 1.4. Componentele Java 2 SDK


32

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

Java 2 SDK. Standard Edition v 1.4. Java 2 Runtime Environment (JRE) este compus din maina virtual
Java, clasele care formeaz nucleul platformei i fiiere de suport. Java 2 SDK include pe lng JRE i unelte
de dezvoltare, cum ar fi compilatoare i depanatoare. Pentru Java 2 SDK 1.6/ 1.7 http://java.sun.com/javase/6/docs/
3.3.6. Tipuri de aplicaii Java
Cu ajutorul API, Java suport o varietate mare de aplicaii. Principalele tipuri de programe Java sunt:
1. Applet-uri Java - sunt cele mai rspndite programe Java. Toate appleturile urmeaz o serie de
convenii care le permit s ruleze n interiorul unui navigator (browser) Web care ncorporeaz o
main virtual Java. Appleturile sunt incluse n pagile Web la fel ca i imaginile i adaug
dinamism acestora.
2. Aplicatii Java - limbajul Java poate fi folosit i pentru dezvoltarea de aplicaii, fiind o puternic
platform software. Aplicaiile pot rula independent de un navigator web i au caracteristicile
oricror alte programe, cu deosebirea c, pentru a le rula, n sistem trebuie s existe instalat un
intepretor Java (JVM - Java Virtual Machine sau JRE -Java Runtime Environment).
3. Servlet-uri Java - sunt programe Java care pot interaciona cu diferii clieni i care se execut
numai pe partea de server, ca efect al unei cereri primite. Acestea afieaz numai rezultatul
procesrii, sub forma unui fiier HTML (HyperText Markup Language). Implementarea de tip
cerere/rspuns se face pe baza protocolului HTTP (HyperText Transfer Protocol).

3.4. Caracteristici ale limbajului Java


Dac am dori s rezumm limbajul Java n cteva cuvinte cheie, acestea ar fi :

Simplu
Orientat spre obiecte
Portabil
Dinamic
Robust
Distribuit
Concurent
Sigur
Independent de platform
Performant

Aceti termeni nu sunt doar pentru reclam - ei i gsesc justificarea n implementarea limbajului.
1. Simplitate: Dei mprumut multe aspecte din limbajele C i C++, limbajul Java renun la unele
trsturi, considerate neeseniale, ale acestora. Aparent, limbajul are mai puine grade de libertate
dect C si C++, dar n realitate poate realiza aceleai lucruri, cu un plus de claritate. Au fost
eliminate acele faciliti care, n opinia experilor, produceau mai mult confuzie dect s aduc
beneficii:
supradefinirea operatorilor (Java ofer un puternic suport pentru supradefinirea metodelor);
moteniri multiple;
conversii automate a tipurilor de date;
pointeri la date.
33

Noiuni fundamentale
________________________________________________________________
Pointerii reprezint un mecanism deosebit de periculos din punctul de vedere al posibilelor
probleme pe care le pot genera (erori foarte dificil de gsit i corectat) i o potenial problem de
securitate, dat de nerestricionarea accesului lor: este deosebit de uor s se fac scrierea/citirea
dintr-o zon de date interzis, ceea ce va conduce la coruperea datelor, n mod intenionat sau nu.
Mecanismul folosit la Java este cel al handler-elor i al tablourilor reale de date, nefiind permis
modificarea unui tip ntreg de date ntr-un handler i, prin aceasta, accesarea necontrolat a unei
zone de memorie. S-au adugat faciliti de ultim or, dintre care cea mai important este
managmentul automat al memoriei. Aceasta simpific imens munca programatorului, n schimbul
complexitii mai ridicate a sistemului. O surs comun, generatoare de complexitate i probleme,
este gestionarea memoriei, alocarea i eliberarea ei, la momente bine specificate de timp. Prin
facilitatea oferit, de creare a unui mecanism automat de gestionare a memoriei a carui funcie
primar se poate descrie prin dealocarea resurselor nefolosite n mod automat, s-a reuit nu numai
nlesnirea muncii programatorului, dar i reducerea imens a timpului necesar finalizrii unui
proiect, deoarece, eliminnd problema gestionrii memoriei, se elimin automat cea mai mare surs
generatoare de scame (bug-uri). Dealocarea memoriei se face n mod uniform, fr intervenia
programatorului. Exist un colector de gunoaie (garbage collector) a crui implementare n Java
este fcut inteligent i eficient, folosind un fir separat de execuie. Astfel, colectarea gunoaielor
se face de obicei n timp ce un alt fir de execuie ateapt o operaie de intrare-ieire sau pe un
semafor. Se marcheaz obiectele care nu mai sunt folosite i se elibereaz spaiul ocupat de ele.
Eliberarea nu se face neaprat imediat, ci atunci cnd spaiul disponibil curent nu mai poate satisface
o nou cerere.
Un alt aspect al faptului de a fi simplu este dimensiunea mic a limbajului, conceput special penru
dispozitive cu capaciti reduse (microcontrolere etc), deci capabil de a rula n astfel de dispozitive.
Interpretorul limbajului i librriile acestuia au dimensiuni foarte reduse.
2. Orientare spre obiect (object-oriented): Ca i C++, Java folosete clase pentru organizarea logic a
codului. La executare, programul creeaz obiecte de tipul claselor. Este admis i larg utilizat
motenirea claselor, dar nu este permis motenirea multipl. Aceasta este suplinit de o alt
facilitate, numita interfa. Modelul orientat spre obiect ofer mecanismul pentru a defini cum
modulele se interconecteaz ntre ele. Folosind modelul programrii orientate spre obiect se pot
elabora programe mult mai clare, mai curate i mai apropiate de modul de gndire uman i se
permite reutilizarea codului. Facilitile, din puncul de vedere al orientrii spe obiect, sunt cele
oferite de limbajul C++, extinse cu facilitile oferite de Objective C, pentru a oferi o dinamic mult
mai mare metodelor sale.
3. Portabilitate: Limbajul Java este independent de platform. Programele Java sunt mai nti
compilate ntru-un cod intermediar, numit bytecode, i apoi sunt interpretate de ctre mediul de
execuie Java (Maina Virtual Java, creat la instalarea limbajului Java) n instruciuni main
asociate platformei sistem. Fiierele bytecode (care au extensia .class) pot fi copiate i executate pe
orice platform indiferent c ea este Windows, Unix, Solaris etc. Applet-urile pot rula direct ntr-un
navigator Web (Internet Explorer, Netscape etc). Anumite aplicaii ncorporeaz tehnologie Java
tocmai pentru a face mai uoar portarea lor ntre diverse sisteme de operare. Cteva exemple ar fi
Corel Word Perfect sau Netscape Communicator.
4. Claritate: Eliminarea unor faciliti neeseniale din C i C++ conduce la programe mai uor de
nteles. n plus, se consider c limbajul Java este uor de nteles, cu condiia ca cel care l prezint
s fi neles el nsui foarte bine mecanismele puse la dispoziie.
5. Robustee: Robusteea limbajului este asigurat de o serie de mecanisme de nalt performan, cum
ar fi verificarea timpurie a programelor pentru posibile probleme, verificarea dinamic trzie
(runtime) i forarea programatorului s elimine situaiile care sunt presupuse c ar putea genera
probleme la rulare. Unul dintre avantajele limbajelor puternic tipizate (cum ar fi C++) este c asigur
un puternic suport pentru verificarea programelor n timpul compilrii, n ideea de a elemina un
numr ct mai mare de erori. Din pcate, limbajul C++ motenete din C o serie de probleme la
verificarea n timpul compilrii i acesta doar pentru a pstra compatibilitatea n jos. Deoarece Java
34

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

nu are ce compatibilitate n jos s menin, nu este nevoit s suporte consecinele unor implementri
sau specificaii vechi, greite sau incomplet fcute.
6. Dinamicitate: Dinamicitatea limbajului Java o depete pe cea a limbajelor convenionale. De
exemplu, considerm c o companie oarecare A produce o librrie sau o component activ i o
companie B o cumpr i o folosete; dac compania A produce o nou versiune a aceleiai
componente, atunci, pentru a o integra, compania B trebuie s-i recompileze ntreaga aplicaie i s
o redistribuie din nou clienilor si. Deoarece Java face conexiunile dintre module abia la rulare, sunt
eliminate cu succes aceste probleme. Indiferent cte modificri ar interveni n librria productorului
A (cu pstrarea compatibilitii), Java se va executa fr recompilri i probleme. Acest mecanism
este sprijinit de modul cum sunt concepute aplicaiile Java. O interfa specific un set de metode i
de obiecte pe care le poate executa, dar nu specific i cum trebuie executate O clas implementeaz
o interfa, implementnd toate obiectele i metodele interfeei. De asemenea motenirea paseaz
att metodele ct i implementarea lor de la superclas la subclas. O clas este capabil s
moteneasc numai o singur clas, dar poate implementa cte interfee dorete. Se poate observa c
interfeele promoveaz reutilizarea codului i conecteaz elementele ntre ele specificnd ce se
conecteaz i nu cum se face. Un alt avantaj este identificarea n timpul rulrii al tipului de dat,
printr-un mecanism foarte ingenios: fiecare instan de obiect are o metod numit getClass prin
care se poate determina din ce clas s-a instaniat metoda respectiv; n acest mod se poate
determina foarte elegant tipul obiectului respectiv. Acest facilitate este inexistent n C sau C++.
Tot prin aceast metod se execut i verificrile de rigoare din timpul rulrii, i aceasta deoarece n
Java programele sunt verificate att n timpul compilrii ct i n timpul rulrii. Astfel se poate avea
deplin ncredere n conversiile de date executate n Java, deoarece sunt verificate de dou ori. n C
sau C++, limbajul se bazeaz pe faptul c programatorul a executat o conversie de date (cast)
corect, cea ce nu ntotdeauna este adevrat. Ca o facilitate n plus, se poate cuta o clas (n timpul
rulrii), specificndu-se numai numele acesteia ntr-un ir de caractere: odat gsit, clasa se poate
ncarca i instania, oferind un dinamism complet aplicaiilor fr s se mai pun problema eliberrii
memoriei sau coruperii datelor. Programatorii Java pot fi relativ fr griji din pricina lucrului cu
memoria, tocmai din cauz c nu trebuie s lucreze direct cu ea. Din cauz c nu exist pointeri, nu
se pot depi limitele vectorului cu care se lucreaz i s se suprascrie accidental alte date, sau s se
capate acces neutorizat la zone de memorie care nu-i aparin, situaii care se pot ntlni n C sau
C++. Un motiv pentru care limbajele dinamice sunt bune pentru elaborarea prototipurilor este c ele
nu impun luarea unor decizii explicite de implementare prea devreme. Java are la baz o legare
dinamic forat de compilator. Aceste implementri sunt nsoite de o asisten: de exemplu, dac la
invocarea unei metode se obine ceva greit, programatorul este ntiinat n timpul compilrii i nu
n timpul execuiei, cnd invocarea respectiv are loc efectiv.
7. Depanare uoar: Datorit fluxului de cod binar al crui proprietar este sistemul Java, mai mult
informaie este stocat n format binar, ceea ce face operaia de depanare (debugging) mult mai
facil. Un dezansamblor, este n msur s restabileasc codul n procent de aproape 100% la forma
sa iniial, lucru care la alte limbaje este practic imposibil. La conceperea formatului byte-code-ului
s-a inut cont de faptul c acesta uremaz s fie intrepretat i transformat direct n cod main
specific platformei pe care se lucrez. S-a obinut cod puternic optimizat, optimizrile necesare
realizndu-se n timpul conversiei.
8. Tipizare static: Obiectele folosite ntr-un program Java trebuie obligatoriu declarate nainte de a fi
folosite. n acest mod se uureaz sarcina compilatorului de a detecta conflicte de tip.
9. Limbaj concurent: Java are capacitatea de a executa mai multe secvene de cod simultan. Aceste
secvene de cod se numesc fire de execuie (thread-uri).
10. Limbaj distribuit: Java ofer posibilitatea dezvoltrii de aplicaii pentru Internet capabile s ruleze
pe platforme distribuite i eterogene. Java este un limbaj distribuit care are implementate biblioteci
pentru lucrul n reea i are inclus suportul nativ pentru aplicaii care lucreaz cu mai multe fire de
execuie. Exist primitive de sincronizare independente de sistemul de operare i mecanisme bazate
35

Noiuni fundamentale
________________________________________________________________
pe metode de monitorizare i condiionare. Integrnd toate aceste mecanisme n nucleul limbajului,
acesta a devenit mult mai simplu, robust i mai uor de folosit. Limbajul ofer un rspuns mult mai
interactiv i un comportament n timp real. Acesta este limitat de platforma care asigur tot suportul
pentru aplicaie. Mediul Java are un bun rspuns n timp real, rulnd deasupra unor sisteme de
operare. Rspunsul sistemului i modul de tratare al task-urilor este cel care determin rspunsul n
timp real al aplicaiei scrise n Java.
11. Suport pentru reele de calculatoare: Modul n care acest suport este integrat n limbaj i uurina
cu care se implementeaz mecanisme deosebit de complexe, fac ca Java s fie unic n domeniul
reelelor de calculatoare. Librriile i rutinele implementate asigur suport pentru protocoale TCP/IP
(Transmission Control Protocol/Internet Protocol) precum i pentru HTTP (HyperText Transfer
Protocol) i FTP (File Transfer Protocol). Se poate afirma c este mult mai simplu i uor s se
realizeze o conexiune n reea utliliznd limbajul Java dect limbajele C sau C++, programatorul
reuind s aceseze obiecte din reea aproape la fel de simplu i uor de parc s-ar lucra cu sistemul
local de fiiere.
12. Securitate ridicat. Java asigur un grad de securitate ridicat, uneori cu un plus de efort din partea
programatorului. Accesul la memorie este posibil numai prin verificarea prealabil a drepturilor de
acces. Lipsa pointerilor face ca accesarea unor zone de memorie pentru care accesul nu este autorizat
s nu fie posibil. De asemenea, este asigurat neptrunderea viruilor pe timpul executrii unei
aplicaii. Securitatea a fost deasemenea un punct vizat pe parcusul elaborrii limbajului, cu att mai
mult cu ct a fost vizat s ating mediile orientate pe reele i programare disribuit, permitndu-se
construirea de medii eliberate de virui sau programe cu intenii obscure, implementnd de asemenea
i librrii de funcii avansate de criptografie, majoritateta bazate pe tehnologii de ultim or (chei
publice). Exist o puternic interdependen ntre robustee i securitate: eliminndu-se pointerii se
elimin practic orice metod de a fora accesul la structurile de date al altor aplicaii sau la accesarea
membrilor protejai sau privai la care, n mod normal, nu au acces din cadrul programului, aceasta
eliminnd majoritatea cilor de acces a viruilor.
13. Extensibilitate. Limbajul Java permite includerea de metode native, adic de funcii scrise n alt
limbaj (de obicei C++). Metodele native sunt legate dinamic la programul Java la momentul
executrii, rolul lor fiind n principal de a mri viteza de execuie pentru anumite secvene din
program.

Observatie:
Utilitarele javac.exe si java.exe se afla in subdirectorul bin al directorului de instalare al kit-ului
Java. Asrfel, programele Java ale caror surse se afla in subdirectorul bin, vor putea fi compilate si
interpretate. In aceste conditii, insa, se ajunge la supraincarcarea directorului bin, iar gestiunea
programelor se va face foarte greu. Pentru a compila si interpreta programe cu surse aflate oriunde
pe disc, trebuie setata variabila de mediu PATH cu calea catre cele doua utilitare.
Setarea variabilei PATH se face astfel:
Settings->Control Panel->System->Advanced->Evironment Variables->System Variables>PATH->Edit->se adauga calea catre subdirectorul bin. De ex, C:\j2sdk1.4.2_10\bin;

36

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

Pentru a testa daca totul este configurat corespunzator, se va deschide o fereastra MS-DOS si se va
tasta java-version sau javac help. Rezultatul comenzilor un trebuie sa fie un mesaj de eroare legat
de comanda necunoscuta (ex mesaj eroare: javac is not recognized as an internal or external
command, operable program or batch file)

Android

Figura : Arhitectura sistemului Android OS3 [W41].


37

Noiuni fundamentale
________________________________________________________________
23 Septembrie 2008 - are loc lansarea lui Android 1.0.
9 Februarie 2009 - apare Android 1.1 cu API schimbat, prezentnd: timp de stingere al
ecranului crescut la utilizarea hands-free-ului din telefon, arta i ascunde dialpad meniul de
apel, suport pentru salvarea ataamentelor din MMS (Multiple Messages).

......................

9 Iulie 2012 - apare versiunea Android 4.1.1 (Jelly Bean), bazat pe Linux kernel 3.0.31.
Prezint ca particulariti: notificri intuitive care permit o interaciune mai ampl: opiunea de
auto redimensionare i auto-aranjarea icoanelor pe ecran, cu o posibil poziionare a unui
widget astfel nct acesta s poat fi accesat cat mai uor; un nou meniu de share, un meniu
mbuntit pentru opiunea open with (momentul n care mai mult de o aplicatie poate rula ceea
ce se dorete s se deschid); grafic uor schimbat i ceva mai luminoas a sub-meniurilor;
mici modificri n categoria Developer Options; modificri la nivel de tranziii (dupa fiecare
poz apare o tranziie care permite ntoarcerea n modul camer), cea mai evident modificare
fiind posibilitatea de accesare a galeriei printr-un swipe spre stanga. prezena informaiilor
despre ceas, baterie i semnal; lista melodiilor poate fi accesat cu ajutorul pictogramei de sub
search; mbuntirea considerabil a vitezei sistemului de operare prin intermediul
modificrilor denumite generic Project Butter, ceea ce permite ca partea grafic s ruleze tot
timpul la 60 de cadre pe secund, cu un suport de buffer triplu (acesta ajut sistemul de operare
s prezic ce urmeaz s faca utilizatorul n funcie de poziia degetelor pe ecran); un nou sistem
de rspuns sub forma unor carduri de rspuns, care nu doar c afieaz informaia cerut, dar o
i expune vocal cu ajutorul asistentului n limba englez; Google Now nva cat mai multe
despre utilizator i caut s ofere informaii personalizate, n funcie de nevoile fiecruia: trafic,
vreme, agend, cltorii, bilete de avion, programri etc.

Figura Compilarea aplicaiilor Java pentru Dalvik VM


38

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

constructiicdsd@gmail.com

39

Noiuni fundamentale
________________________________________________________________

TEMA: Urgent, de instalat OCTAVE& QTOCTAVE !

Instalare program OCTAVE

& QTOCTAVE

Pasi de urmat pentru OCTAVE:


1. Accesati pagina: http://octave.sourceforge.net/
2. Localizati si accesati Windows Installer:

3. Din pagina urmatoare descarcati fisierul numit Octave3.6.0_gcc4.6.2_20120129.7z, acesta


contine programul OCTAVE si pachetul Octave-Forge.

4.

Pasii anteriori pot fi rezumati prin simpla accesare a acestui link:


http://sourceforge.net/projects/octave/files/Octave_Windows%20%20MinGW/Octave%203.6.0%20for%20Windows%20MinGW%20installer/Octave3.6.0_
gcc4.6.2_20120129.7z/download, descarcarea incepand automat in cateva secunde.

Pasi de urmat pentru QTOCTAVE:


1.
2.

Accesati pagina: http://qtoctave.wordpress.com/download/


Localizati si accesati link-ul pentru Windows:

40

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

3.

4.

constructiicdsd@gmail.com

De pe pagina urmatoare, accesati build for windows.

Pasii anteriori pot fi rezumati prin simpla accesare a urmatorului link,


descarcarea incepand automat: http://www.outsch.org/wpcontent/uploads/2011/01/qtoctave-0.10.1-win32.zip

Rezolvare ultima parte:


Dupa descarcarea celor doua programe, vom avea doua arhive, una continand programul OCTAVE si una
continand programul QTOCTAVE.

1.
2.
3.

Dezarhivam programul OCTAVE si vom obtine un folder al acestuia;


Dezarhivam programul QTOCTAVE si vom obtine alt folder;
Putem crea un folder nou, numindu-l simplu OCTAVE, in care sa punem cele doua
foldere anterioare;

4.
5.

Mutam, de preferat, folderul in Program Files;


Identificam, in folderul QTOCTAVE - bin, executabila qtoctave.exe, dam click dreapta
pe ea si alegem Send to Desktop;

41

Noiuni fundamentale
________________________________________________________________

6.

La accesarea programului QTOCTAVE de pe ecran, la deschidere va aparea o eroare.


Alegeti OK si lasati programul sa se lanseze;

7.

Dupa lansarea programului, din bara de unelte, de sus, alegeti Configuration (Config,
Configuracion) dupa caz, si alegeti Configurari Generale;
42

Informatica aplicata-note de curs


http://www.cdsd.ro/cursuri.html

8.

constructiicdsd@gmail.com

Apoi, alegeti OCTAVE Select octave.exe din folderul bin al programului QTOctave
Open OK si reporniti programul.

Anexa:
Distinct English terms are used
http://www.techno-science.net/?onglet=glossaire&definition=162 :

Informatics (information science): what emerges from the study of systems, biological or
artificial, that store, process and communicate information. This includes the study of neural
systems, as well as computer systems.

Computer Science (Theoretical Computer): this follows from the procedural epistemology
, or the study of such algorithms, and thus indirectly of software and computers.

Computer Engineering (Computer Engineering): what emerges from the manufacture and
use of computer hardware.

Software Engineering (Software Engineering): what emerges from the modeling and
development of software, this includes two aspects: data and processing, and the two are
related in the implementation of the data processing ( Data Processing ). In France, in practice,
the term software engineering rather corresponds to software engineering or engineering
software .

Information Technology Engineering (Engineering Information Technology): what


emerges from the integration of techniques and technologies relating to information and
computer-related as well as the internet (eg e- business)

Information Technology (Information Technology): Represents the evolution of


techniques and technologies related to information technology.
Professions as diverse as designer, analyst, developer , operations manager, engineer, system
maintenance technician hardware or software researcher in computer science or director of a

computing center, are in the field of computing. However, the term computer means more often
those who design, deploy and implement solutions.
43

Noiuni fundamentale
________________________________________________________________

Probleme organizatorice:
Disciplina: Informatica aplicata
Colectiv de cadre didactice
Conf.Univ.Dr.Ing.Eugen Petac curs
Asist.Univ.Dr. Cristina Serban grupe laborator

Observatii

Materiale in format electronic: http://www.cdsd.ro, sectiunea cursuri, informtica


aplicata
Caiet(dosar) laborator/curs

Colocviu:
Nota finala (NF) se calculeaza pe baza unui punctaj obtinut ca 0.5 *Punctaj test grila (PTG)
+0.3 *Punctaj activitate laborator (PAL) (prezenta activa, rezolvare teme etc)+0.2 *Punctaj
evaluare la laborator(PVL)
Organizare test grila: Saptamana a 13-a, Luni,

05 ianuarie 2015, ora 16.00, sala A0

Conform programarii de mai sus, la Testul grila participa numai studentii din seria
respectiva, care au sustinut activitatea la laborator conform programarii, pe parcursul
semestrului I.
Reamintim ca prezenta la activitatile didactice este obligatorie!!! Recuperarea
activitatilor de laborator se face conform regulamentelor facultatii si universitatii, dupa
sesiune.

44

S-ar putea să vă placă și