Documente Academic
Documente Profesional
Documente Cultură
SISTEME DE OPERARE
In baza oricarui calculator stau doua componente fundamentale:
Hardware si Software
Harware sunt componente tari, solide care pot fi pipaite. Din componentele hard-ului fac
parte urmatoarele dispozitive: vizualizatorul, tastatura, mouse-ul, imprimanta, scanerul, boxe audio
si altele. Toate acestea sunt conectate la unitatea centrala (blocul de sistem). Blocul de sistem, la
randul sau, este compus din mai multe blocuri: blocul de alimentare, CD-ROM, DVD-RW,
dischiera, memoria hard. Toate componentele sunt conectate la placa de baza. Pe placa de baza, de
asemenea, sunt asamblate mai multe elemente, cum ar fi: procesorul, memoria operativa, placa de
sunet, placa video, placa de retea, modemul. Aceste componente pot fi divizate in urmatoarele
grupuri: unitati de intrare, unitati de iesire, unitatea de procesare. Unitatile de intrare si iesire pot fi
atribuite unei grupe deoarece componentele care fac parte din aceste grupe au posibilitatea atit de a
receptiona informatia, cit si de a o distribui. Unitatea de procesare este un sistem de componente, de
care depind celelalte componente asamblate, anume el determina caracteristicile principale ale
calculatorului, printre care enumeram:
Viteza de procesare, care depinde de clasa procesorului si determina numarul de operatii pe
secunda se masoara in Hertz, (Hz).
Memoria operativa (memorie de tip RAM). De capacitatea ei depinde volumul de informatie
memorizat de calculator in forma binara pentru prelucrarea datelor curente si datelor intermediare
din aceasta memorie informatia este disponibila atit timp cit calculatorul este conectat la reteaua de
alimentare. In memoria operativa este de asemenea inscris sistemul de operare care nu poate fi sters
intimplator. Pentru un sistem de operare mai performant avem nevoie de o memorie mai mare
Memoria permanenta (memorie de tip ROM). Capacitatea ei ne permite pastrarea informatiei
de un volum mai considerabil atit timp cit este necesar, fara restrictii, deconectarea calculatorului de
la retea nu duce la pierderea informatiei. Capacitatea memoriei se masoara in octeti (byte), Kilobyte,
Megabyte, Gigabyte.
Software este numita partea logica, programele care ne asigura lucrul cu calculatorul. La
rindul sau, software este format din Sistemul de operare si Programele de aplicatie.
Cauza principala de aparitie a sistemului de operare este necesitatea de executare a operatiilor
elementare pentru gestionarea resurselor calculatorului. Aceste operatii se numesc de nivel jos.
Pentru utilizator practic este imposibil de a indeplini sute de mii de operatii elementare pentru a
primi un rezultat scontat. Atfel, se poate afirma ca un sistem de operare poate fi asociat cu un
translator-asistent intre componenta hardware a unui sistem de calcul si utilizator.
Un sistem de operare constã dintr-un ansamblu de programe de sistem, care administreazã resursele
sistemului de calcul, asigurã utilizarea eficientã in comun a acestor resurse, asigura legatura intre
componentele logice si fizice ale sistemului. Aceste programe conduc intreaga activitate din
interiorul calculatorului, asista utilizatorul, pune in lucru si coordoneaza cu programele de aplicatie.
Sistemele mentionate mai sus sunt destinate pentru utilizatori simpli numiti USER si utilizatori
administratori numiti ADMIN, care sunt utilizatori mai experimentati, iar sistemul lor de operare are
un nivel de securitate mai ridicat. Cele mai raspindite tipuri de sisteme de operare pentru utilizatori
de tip USER sunt:
MS-DOS, Windows 95, Windows 98, Windows 2000, Windows ME, Windows XP, Windows 7,
Windows 8. Pentru utilizatori de tip ADMIN avem sisteme de operare mai performante: Windows
NT (New Technology), Windows 2003 Server, Zinux, Free BSD.
Functiile principale ale sistemului de operare sunt:
1.) Oferirea posibilitãtii de lansare in executie a programelor de aplicatie,
2.) Alocarea resurselor necesare executãrii programelor, care se realizeazã prin identificarea
programelor ce se executã, rezervarea memoriei pentru aceste programe, controlul dispozitivelor
periferice si a cerintelor privind protectia datelor;
3.) Facilitãti pentru compresia datelor, sortare, interclasare, catalogare si intretinere a bibliotecilor;
4.) Planificarea executiei lucrãrilor dupã anumite criterii, pentru utilizarea eficientã a resurselor
unitatii centrale de prelucrare.
MODEMUL
In literatura de specialitate se atentioneaza asupra a doua tipuri de modeme: Interne si
Externe. Modemul intern se caracterizeaza prin instalare in placa de baza a calculatorului, in
sloturi. Modemul extern reprezinta un bloc separat conectat la calculator prin intemediul cablului.
Modemurile sunt dispozitive destinate pentru instaurarea conectarii intre calculatoare, cu ajutorul
liniei telefonice in reteaua mondiala Internet. Liniile telefonice sunt folosite, in general, pentru
transmiterea sunetelor, a vocii umane. Modemurile au fost inventate pentru a converti informatia
digitala a calculatorului in semnal analog, impulsuri care pot fi transportate prin retelele telefonice
catre un alt calculator. Modemul de la celalalt capat al liniei primeste mesajul, il decodeaza in sistem
binar si il transmite calculatorului. Astfel, se realizeaza o comunicare intre doua terminale de
Internet. Se mai numeste conexiune dial-up.
Viteza unui modem se masoara in biti pe secunda (bps), aceasta variind de la 9,6 Kbps pina la
56 de Kbps. Denumirea de modem este prescurtarea de la Modulator - Demodulator, doua
componente ale modemului care fac posibila decodarea impulsurilor in informatie digitala si invers.
Un tip de modem mai performant este cel conectat prin reteaua de cablu TV. Modemul de
cablu este mai rapid decit cel prin dial-up deoarece abonatul la Internet are o conexiune permanenta,
iar viteza de transfer este mai mare decit in cazul conexiunii dial-up.
Modemurile sunt clasificate in functie de tipul de conexiune al acestora: modemuri telefonice,
de cablu TV si modemuri radio (legatura wireless). Din punct de vedere al componentelor aflate pe
placa de modem, modemurile pot fi hardware (executa toate operatiile de modulatie, demodulatie si
compresie) sau software, caz in care majoritatea operatiilor cad in sarcina microprocesorului
calculatorului. Aceasta ar insemna ca o parte din procesarea semnalului este descarcata de catre
procesor.
Exista modemuri ale caror caracteristici sunt "Voice, Data si Fax", iar altele care nu au decit
Data si Fax. Prima categorie iti ofera avantajul folosirii modemului si pentru convorbiri telefonice.
WINDOWS 95
Sistemul operational WINDOWS 95 a fost lansat oficial la 24 august 1995. WINDOWS 95 este
pachetul software care a exercitat cel mai mare impact in lumea calculatorului. WINDOWS5 este un
sistem perfectionat de la MS-DOS, WINDOWS 3.1 si WINDOWS 3.11. Sistemul de operare
WINDOWS si-a dobindit numele de la zonele de pe ecran, numite ferestre, care apar atunci, cind
Windows este utilizat. Tot ce se lucreaza in Windows este afisat in una din cele doua tipuri de
ferestre: fereastra de program si fereastra cu document. Acest sistem operational se bazeaza pe
dialogul dintre utilizator si calculator prin intemediul ferestrelor. Sistemul de operare WINDOWS a
fost creat pentru a usura munca utilizatorilor incepatori sau putini experimentati. Beneficiarii de
baza ai sistemului operational WINDOWS constituie utilizatorii simpli supranumiti, in limbajul
calculatorului, USER. Asadar, scopul principal al elaboratorilor Windows este scaderea brusca a
cerintelor de pregatire pentru utilizatori si elaborarea unei interfete comode si sigure. Cu ajutorul
acestui sistem de operare orice operatie poate fi indeplinita prin mai multe cai posibile, deci
destinata pentru diferiti posesori, fiecare cu caracterul si preferintele sale, a fost bine gindit sistemul
de sfaturi, mesaje si avertizari pentru sustinerea utilizatorului pe tot parcurul sedintei de lucru.
Sistemul operational Windows este construit in modul real-obiectual, cee ce inseamna ca
interfata reprezinta o copie a lumii reale, iar lucrul cu calculatorul se reduce la manipularea cu
obiecte uzuale. Astfel, mapele pot fi deschise, puse in geanta, documentele – pot fi studiate,
corectate, mutate dintr-un loc in altul, aruncate in cosul de gunoi, faxul sau scrisoarea – trimise
destinatarului etc.
Microsoft, compania care a elaborat acest sistem operational, afirma ca in timpul apropiat
utilizatorii se vor gindi mai putin la programe in care sunt scrise documentele, si mai mult la
documentele cu care lucreaza.
CAPITOLUL I
NOŢIUNI DE BAZA PRIVIND INSTRUMENTELE SOFTWARE
Informatica a cunoscut şi cunoaşte o dinamică de dezvoltare accentuată, care s-a făcut simţită prin
produse informatice cu performanţe sporite. De la produsul informatic de o complexitate arhitecturală şi
structurală redusă, destinat în special automatizării calculelor numerice s-a ajuns la produse informatice
sofisticate, capabile să manipuleze şi să prelucreze imagini, să încorporeze, prin elemente de inteligenţă
artificială cunoaşterea şi experienţa umană. În SUA şi alte ţări avansate circa 90% din costurile de prelucrare
automată a datelor reprezintă cheltuielile cu elaborarea produselor program. În consecinţă, sunt motivate
preocupările pentru o abordare globală a programării şi, prin urmare, folosirea unor modele, tehnici şi
instrumente care să permită construirea modulară şi progresivă a produselor program. Necesitatea ridicării
eficienţei acestei activităţi a ridicat în faţa specialiştilor probleme noi, cum ar fi: crearea cadrului
organizatoric şi metodologic care să pună bazele desfăşurării şi conducerii după norme, standarde şi metode
unitare; formalizarea verificării corectitudinii produselor program; proiectarea asistată de calculator;
abordarea sistemică a elaborării produselor program, etc. probleme rezolvate în mare parte, existând
actualmente, la nivelul cercurilor de specialişti preocupări de perfecţionare ale acestora.
1.1 Instrumente software - definire şi clasificare
În cadrul problematicii pe care o ridică prelucrarea electronică a informaţiilor economice, o importanţă
majoră revine folosirii instrumentelor software în vederea efectuării lucrărilor solicitate. Această activitate
face apel la resursele logice (componenta software) care permit utilizatorilor să folosească resursele fizice
(componenta hardware) şi să transforme resursele de date în produse informatice.
Resursele logice sunt necesare pentru a realiza operaţiile de intrare, ieşire, prelucrare, memorare
(stocare) şi control. Pentru efectuarea acestora se folosesc programele. Programele sunt entităţi software cu
un conţinut şi o delimitare bine precizate, numite generic instrumente software (ele fac parte din categoria
mijloacelor de muncă).
Programul reprezintă totalitatea instrucţiunilor şi /sau comenzilor pregătite şi ordonate în prealabil
conform unei logici prestabilite, stocate în memoria calculatorului şi utilizate pentru rezolvarea unei anumite
probleme, iar ansamblul activităţilor de concepere, dezvoltare şi întreţinere a programelor poartă denumirea
de programare. Instrucţiunile şi /sau comenzile constituie informaţii codificate ce transmit calculatorului
acţiunea ce urmează a fi executată. La rândul lor acestea pot fi structurate în două mari grupe:
• de prelucrare prin care se realizează introducerea /extragerea datelor în /din sistem, efectuarea
operaţiunilor de calcul, efectuarea transferului de date între diferite zone de memorie etc.;
• de organizare (de structurare internă a programului) ce asigură codificarea structurilor de control
şi de apelare sau de salt la alte programe.
Conceptul de program sau produs-program desemnează atât programul propriu-zis cât şi
operaţiile manuale şi documentaţia necesare pentru dezvoltarea, utilizarea şi întreţinerea lui. Revenind asupra
programelor acestea pot fi grupate în 2 mari categorii:
• software-ul de bază (programe de bază);
• software-ul de aplicaţii (programe de aplicaţii).
Schematic aceste două mari categorii de programe informatice pot fi prezentate ca în figura nr. 1.1.
P ro g ram e
i n f o r m a ti c e
P ro g ram e d e P ro g ram e
bazå a p l i c a ti v e
♦ N u c l e u l S .O ♦ U ti l i ta r e ♦ T r a d u c to a r e ♦ P r e l u c r a r e te x t ♦ C o n ta b i l i ta te : C a r te a
♦ C o n te x te d e ♦ P r o g r a m e d e ♦ M ed ii d e ♦ S p rea d sh eet m are
e x p l o a ta r e c o n tr o l a p ro gram are ♦ S .G .B .D . ♦ M a r k e ti n g : a n a l i z a
♦ G e s ti o n a r e d e p e r o r m a n ¡e l o r ♦ P ro g ram e d e ♦ T e l e c o m u n i c a ¡i i v â n z å r i l o r
b a z e d e d a te ♦ M o n i to a r e d e a r b i tr a r e î n ♦ I n fo g rafia ♦ F i n a n ¡e : s ta b i l i r e a
♦ M o n i to a r e d e s e c u r i ta te in g in eria ♦ P ro gram e b u g e te l o r
te l e c o m u n i c a ¡i i p ro gram årii i n te g r a te ♦ P r o d u c ¡i e : c o n tr o l u l
p r o d u c ¡i e i
Dezvoltarea calculatoarelor electronice a dus la apariţia unor “probleme lingvistice” noi, care derivă
din necesitatea realizării dialogului om-calculator (prin adresarea de instrucţiuni). Limbajele actuale de
dialogare cu calculatorul sunt inadecvate în raport cu mijlocul de comunicare al omului, limbajul natural.
Omul este singura fiinţă capabilă să creeze, să manipuleze şi să înţeleagă limbaje infinite, adică limbaje care
funcţionează pe baza unor reguli recursive, repetabile indefinit. Limbajul uman, în înţeles larg este atât un
limbaj articulat, cât şi un limbaj artificial de tipul calculului propoziţional, cu n variabile. Limbajul
propoziţional este un limbaj formal în înţelesul logicii matematice. Rezultă că limbajele formale sunt limbaje
umane artificiale definite cu ajutorul unui alfabet finit şi al unei mulţimi (posibil infinite) de secvenţe finite de
elemente ale alfabetului (unele elemente putându-se repeta în aceiaşi secvenţă). Nu orice limbaj uman
artificial este un limbaj formal. Încadrăm aici şi limbajele de programare. Acestea pot fi considerate limbaje
de graniţă între limbajele naturale şi cele formale, având trăsături preluate din ambele clase. Limbajele de
programare au fost privite la început ca limbaje artificiale formale. Artificiale, deoarece sunt o creaţie
deliberată şi formale, deoarece sunt un mijloc de comunicare om - maşină, maşina înţelegând doar limbaje
algoritmice, deci formale. Tot mai multe argumente pledează în sprijinul ideii că limbajele de programare se
depărtează în multe privinţe de limbajele formale. Dintre aceste argumente amintim doar faptul că semantica
expresiilor unui limbaj de programare se realizează integrativ, nu aditiv (semnificaţia unei secvenţe nu se
obţine întotdeauna prin compunerea semnificaţiilor termenilor acestei secvenţe).
Limbajul natural a devenit preocuparea centrală a cercetărilor de inteligenţă artificială şi, implicit, o
problemă fundamentală a informaticii, cu obiectivul de a fi înţeles şi de a fi integrat cât mai mult într-un
automat, în scopul simplificării la maximum al dialogului om - calculator.
Limbajele de programare sunt sisteme convenţionale (limbaje artificiale) create de om şi care
servesc la exprimarea sub formă de acţiuni executabile mijlocit sau nemijlocit de către sistemul de calcul a
algoritmului sau logicii de rezolvare a unei probleme. Algoritmul indică modul de prelucrare a datelor iniţiale
şi modificarea lor pas cu pas până la obţinerea rezultatelor finale. Natura datelor, organizarea lor şi relaţiile
dintre ele trebuie precizate prin program, limbajele de programare oferind facilităţi corespunzătoare de
descriere.
Orice programator, în activitatea sa este confruntat cu trei universuri: universul problemei ce
urmează a fi rezolvată cu ajutorul calculatorului; universul limbajului de programare şi universul
calculatorului. Prin efortul programatorului, universul problemei se descrie în termenii limbajului de
programare şi apoi prin intermediul unui procesor de limbaj se reflectă în universul calculatorului. Putem
spune deci că limbajul de programare este intermediarul între problemă şi calculator.
Orice limbaj (natural sau artificial, deci şi un limbaj de programare) presupune definirea sintaxei,
semanticii şi pragmaticii lui. Sintaxa reprezintă un set de reguli ce guvernează alcătuirea propoziţiilor dintr-
un limbaj. În cazul limbajelor de programare echivalentul propoziţiei este programul. Definirea riguroasă a
sintaxei, presupune folosirea unor elemente de teorie a limbajelor formale (vocabular, frază, gramatică).
Semantica este dată de un set de reguli ce determină “înţelesul” sau semnificaţia propoziţiilor într-un limbaj.
Pragmatica indică utilitatea practică a limbajului (uşurinţa utilizării, independenţa de sistemul de calcul etc.)
Există numeroase limbaje de programare fiecare posedând:
• propriul vocabular;
• propria gramatica (numai sintaxa);
• propriile aplicaţii.
Vocabularul, construit pe baza unui set de caractere(simboluri), este format din mulţimea cuvintelor
care, în fapt, reprezintă: instrucţiuni, comenzi, funcţii, variabile, constante, expresii etc.
Gramatica reprezintă ansamblul regulilor de formare a construcţiilor din cadrul programelor,
respectându-se totodată o anumită punctuaţie care are rolul de a indica folosirea corectă a tuturor elementelor
unui limbaj. În legătură directă cu gramatica unui limbaj se află metalimbajul - instrument sintetic,
sistematizat şi simplificat de exprimare a regulilor gramaticale în scopul elaborării programelor. În practică
există şi încercări de standardizare a metalimbajelor. Prima contribuţie în această direcţie aparţine lui J.
Backus concretizată în metalimbajul BNF (Backus Naur Form) utilizat în prezentarea limbajului ALGOL 60
şi extensia acestuia EBNF (Extended BNF). Un alt metalimbaj cu o arie largă de extindere este CBL
(COBOL - Like ) folosit în definirea limbajului COBOL.
Elementele de metalimbaj curent folosite sunt:
- cuvintele rezervate - sunt scrise cu majuscule, sunt specifice unui limbaj si trebuie folosite exact în aceeaşi
forma. Ex.: comenzi, clauze si funcţii în FoxPro - LIST, CREATE, FOR, IIF() etc.;
- cuvintele utilizator - sunt scrise cu minuscule şi reprezintă construcţii utilizator. Ex.: codmat, matricol,
fismat etc.;
- < > - încadrează construcţiile utilizator. Ex.: <nume_tabelă>, <nume_câmp>;
- [ ] - încadrează construcţiile opţionale (programatorul decide dacă acestea vor fi sau nu folosite). Ex.:
LIST [FIELDS <listă_câmpuri>] etc.;
- { } sau | - sau exclusiv - din elementele prezente se va alege unul singur. Ex.: TO PRINT| TO FILE, ON|
OFF, {>=|<+} etc.;
- … - construcţia precedentă se poate repeta de un număr arbitrar de ori. Ex.: <nume_câmp1>….
Aplicaţiile proprii sunt componente ale limbajelor de programare constituite, cu precădere, din
utilitarele proprii, editorul de text încorporat precum şi aplicaţiile proiectate cu scop demonstrativ.
În literatura şi practica de specialitate, limbajele de programare sunt structurate în mai multe clase
avându-se în vedere diverse criterii precum: facilităţile oferite utilizatorilor, modul de elaborare şi exprimare
a procedurilor sau a problemelor de rezolvat, fluxul de execuţie a programelor şi modul de exprimare a
comunicării dintre ele, aria de aplicabilitate. Trebuie făcută de la început precizarea că definirea claselor nu
determină gruparea limbajelor în mulţimi disjuncte, un anume limbaj, în funcţie de caracteristicile sale putând
face parte din una sau mai multe clase. Plecând de la acest aspect, cea mai folosită clasificare este cea care
grupează limbajele de programare în cinci generaţii şi care, de altfel, urmăreşte periodizarea evoluţiei
arhitecturii calculatoarelor.
Generaţia a 1-a cuprinde limbajele “maşină” ce definesc instrucţiunile sub o formă convenţională
recunoscută de componentele de programare ale unui calculator. Programele scrise în astfel de limbaje
cuprind instrucţiuni sub forma unui “cod operaţie” şi adrese sau referinţe convenţionale privind componentele
calculatorului (maşinii).Principalele deficienţe ale acestor limbaje sunt legate de dificultăţile de corectare a
programelor.
Generaţia a 2-a cuprinde limbajele “orientate spre maşină”. Programele obţinute cu aceste limbaje se
constituie dintr-o succesiune de instructiuni într-o maniera similara programelor în limbaj maşină. Se
regăsesc în această generaţie:
• limbajele “autocod”;
• limbajele de asamblare.
Limbajele “autocod”. Aceste limbaje compun instrucţiunile astfel încât fiecare tip de instrucţiune să
corespundă unei instrucţiuni în limbaj maşină. O instrucţiune înseamnă un cod operaţie exprimat sub o formă
prescurtată (de ex. ADD pentru adunare) şi adrese exprimate sub formă de nume simbolice (care în momentul
“traducerii” vor fi convertite în adrese). Un set de instrucţiuni de definire (pseudo-instrucţiuni) oferă anumite
înţelesuri complementare care vor servi la transformarea programului în limbaj maşină (ex. lungimea fiecărei
date).
Limbajele de asamblare. Sunt limbaje la care cuvântul asamblare este utilizat într-un sens puţin mai
larg decât autocodul. Aceasta înseamnă că include în propriile convenţii de scriere pe lângă instrucţiuni
,pseudo-instrucţiuni şi macro-instrucţiuni care sunt echivalente nu numai cu o instrucţiune în limbaj maşină ci
şi cu o întreagă secvenţă de instrucţiuni Prin asamblare sunt reunite într-un program unic toate instrucţiunile
descrise de una sau mai multe secţiuni de program realizate cu un limbaj de asamblare.
Principalul avantaj al limbajelor de asamblare este legat de viteza de execuţie care este ridicată.
Aceste limbaje sunt preferate în elaborarea software-ului de sistem, chiar dacă limbajele evoluate solicită un
efort de programare mai mic.
Generaţia a 3-a cuprinde limbajele “orientate pe problemă”(limbajele evoluate). Aceste limbaje se
caracterizează pe de o parte printr-un mod de descriere mai uşor de înţeles, iar pe de altă parte prin faptul că,
prin modificări minore, se pot utiliza pe diferite calculatoare.
În această generaţie se include o mare varietate de limbaje, cele mai cunoscute şi folosite fiind:
• limbajele de utilizare ştiinţifică orientate spre descrierea algoritmilor matematici: FORTRAN
(FOrmula TRANslator), ALGOL (Algorithmic Oriented Language), APL (Applied Physics
Laboratory);
• limbajele de gestiune orientate spre prelucrarea datelor înscrise în fişiere: COBOL (Common
Business Oriented Language); generatoare de programe GAP (General Accounting Package),
RPG (Report Program Generator).
Multe dintre limbajele incluse în cea de a treia generaţie, din punctul de vedere al ariei de
aplicabilitate, sunt limbaje universale: PL/1 (Programming Language 1), PASCAL, C, ADA (Automatic Data
Acquisition).În anumite domenii au fost create limbaje proprii pentru aplicaţii foarte specializate precum
pregătirea programelor de comandă numerică (ex. limbajul APT - Automatic Programming Tool).În
domeniul microinformaticii se regăsesc limbaje specifice precum LDP (limbaj de descriere a paginii) destinat
controlului imprimantelor laser (cel mai utilizat este Postscript) sau gestionarele de date: dBASE, FoxPro etc.
Generaţia a 4-a cuprinde limbajele orientate către utilizatorii finali. Folosind aceste limbaje,
utilizatorii neinformaticieni, fără a avea o pregătire specială pot să-şi rezolve singuri propriile probleme,
dialogând cu calculatorul. În felul acesta se elimină etapa de programare şi se asigură o implicare şi un interes
mai mare din partea utilizatorului.
Pe piaţa de software, limbajele din această generaţie sunt diverse, acoperă domenii foarte complexe şi
sunt destinate fie utilizatorilor, fie programatorilor, fie ambelor categorii. Spre deosebire de limbajele din
generaţia precedentă care descriu ce trebuie să facă un calculator, cele din generaţia a 4-a descriu cum să
facă pentru a rezolva o problemă, fiind în general „conversaţionale”.
Majoritatea specialiştilor grupează limbajele din generaţia a patra în următoarele clase de produse:
• limbaje (instrumente) de interogare;
• generatoare de rapoarte;
• generatoare de aplicaţii şi /sau proiecte;
• generatoare de grafice;
• instrumente de sprijinire a deciziilor.
La ora actuală constructorii de software oferă produse care integrează toate aceste funcţiuni. De
exemplu, programul de calcul tabelar este un instrument de sprijinire a procesului decizional, dar care oferă şi
o vastă gamă de alte facilităţi: obţinerea, actualizarea şi interogarea bazelor de date, generarea rapoartelor,
generarea graficelor etc.
Limbajele de interogare la rândul lor pot fi de două tipuri:
• limbaje de interogare simplă care permit consultarea fişierelor şi a bazelor de date pe un singur
tip de înregistrare logică utilizând un criteriu de selecţie mai puţin complex;
• limbaje de interogare complexă care permit consultarea mai multor tipuri de înregistrări logice
din una sau mai multe baze de date
• În cea de a doua subgrupă intră SQL (Structure Query Language) QBE (Query By Example),
Hiper Talk, Inttelect, Quel etc. Cea mai mare răspândire o cunoaşte SQL,
un nucleu SQL fiind prezent în orice sistem de gestiune a bazelor de date (dBASE, CLIPER, FoxPro, Focus,
RAMIS, Oracle).
Generatoarele de rapoarte (situaţii) îndeplinesc, în principal, trei funcţii esenţiale: selecţia
informaţiilor solicitate, ordonarea datelor după criterii prestabilite şi editarea rapoartelor într-o structură
formalizată folosind un număr minim de instrucţiuni de programare. În general, toate sistemele de gestiune a
bazelor de date precum şi programele de calcul tabelar (spreadsheet-urile) au încorporate generatoare de
rapoarte. Cele mai populare instrumente din această categorie sunt: Easytrieve Plus, Datatrieve, Mark
V.Există şi generatoare de rapoarte care sunt proiectate pentru a fi utilizate de către specialişti ca de exemplu
RPG III (Report Program Generator).
Generatoarele de aplicaţii şi /sau proiecte se adresează în special utilizatorilor cunoscători ai
tehnicilor de programare. Ele permit ca pe baza unor descrieri externe a datelor şi a modului de organizare,
prelucrare şi afişare a acestora să se accelereze generarea (codarea) programelor, folosind un limbaj specific
sau chiar un limbaj de generaţia a 3-a (COBOL). Intră în această clasă de generatoare: CSP (Cross System
Product - IBM), FOCUS, Mantis, Natural, NOMAD2, RAMIS 1, IDEAL MAPPER
Generatoarele de grafice sunt instrumente ce permit reprezentarea sub formă grafică (histograme,
bare, linii, cercuri etc. tridimensionale, cu opţiuni de culoare, text, legendă), a rezultatelor prelucrării datelor.
Ele sunt independente (Tell-al Graph, SAS, ADRS/B6) sau încorporate în spreadsheet-uri (LOTUS,
QUATTRO, EXCEL) sau în SGBD-uri (FoxGraph).
Instrumentele de sprijinire a deciziilor se adresează experţilor din diferite domenii de activitate
(finanţe, management, contabilitate, marketing etc.) pentru elaborarea şi urmărirea bugetelor, analiza
investiţiilor, studiul pieţei etc. permiţând realizarea simulării şi modelării matematice a fenomenelor
economice. Intră în această clasă programele de calcul tabelar (EXCEL, QUATTRO, LOTUS.), pachetele-
program statistice (SPSS, SAS etc.).
Generaţia a 5-a cuprinde limbajele care sunt sau vor fi îndreptate spre exploatarea bazelor de
cunoştinţe, crearea sistemelor expert şi mai general spre rezolvarea problemelor legate de inteligenţa
artificială(LISP, PROLOG, PLANNER, Smalltalk). Un rol deosebit revene limbajelor pentru programarea
orientata pe obiecte (Smalltalk, C++). Un limbaj conceput recent, specific structurilor generaţiei a 5-a este
MANDALA care combină prelucrarea cunoştinţelor cu funcţiile unui sistem de gestiune a bazei de cunoştinţe
şi se bazează pe alegerea raţională în conexiune cu clauzele Horn.
După modalitatea de descriere a problemei de rezolvat , limbajele pot fi grupate în :
• limbaje procedurale;
• limbaje neprocedurale.
Limbajele procedurale descriu pas cu pas algoritmii (succesiunile de instrucţiuni) de rezolvare a unei
probleme. Se înscriu în această grupă majoritatea limbajelor de nivel înalt: BASIC, COBOL, PL/1,
FORTRAN, PASCAL, etc.
Limbajele neprocedurale sunt limbaje de nivel foarte înalt care definesc scopul urmărit fără a da detalii
asupra modului de rezolvare a acestuia . În această grupă pot fi incluse şi limbajele de programare
specializate care sunt destinate a rezolva probleme din domenii relativ restrânse. Din grupa limbajelor
neprocedurale fac parte Smalltalk, Prolog, etc.
1.2.2 Caracterizarea principalelor limbaje
Din multitudinea limbajelor de programare practica a consacrat atât limbaje de tip universal cât şi
limbaje specializate pe domenii de activitate. În continuare, fără pretenţia de a fi exhaustivi, prezentăm
limbajele care s-au impus în domeniul economic.
FORTRAN (FORmula TRANslation) este primul limbaj ştiinţific fiind apropiat de limbajul
matematicii clasice. A cunoscut o largă răspândire fiind implementat pe
aproape toate sistemele de calcul. Cele mai utilizate versiuni sunt: FORTRAN IV, FORTRAN IV PLUS,
FORTRAN 77 - pentru minicalculatoare, specializat pentru prelucrări în timp real, FORTRAN 90 - varianta
îmbunătăţită cu atributele programării orientate pe obiect.
COBOL (COmmon Business Oriented Language) este un limbaj de programare evoluat din
generaţia a-3-a destinat problemelor de gestiune şi definit de CODASYL (Conference On Data Systems
Language) ca reprezentant al constructorilor şi beneficiarilor de calculatoare. Se utilizează pentru exploatarea
unui volum mare de date cu structuri diverse (arbori, tablouri, fişiere etc.). Cu toate acestea limbajul COBOL
este mai dificil de însuşit decât alte limbaje, dispunând de multe instrucţiuni cu numeroase opţiuni fiecare.
Sintaxa acestora nu este însă foarte complexă.
ANSI (American National Standard Institute) a standardizat şi publicat mai multe versiuni susţinute
şi de către IBM.
La ora actuală, pentru microcalculatoare, firma MicroFocus din Marea Britanie oferă compilatoare
COBOL care permit: dezvoltarea de aplicaţii (inclusiv cu facilităţi grafice) pentru lucrul în reţea de
calculatoare; dezvoltarea de aplicaţii cross-platform destinate unei game largi de echipamente şi sisteme de
operare; asigurarea portabilităţii la nivel de program sursă.Ultima versiune de COBOL este orientată pe
obiecte într-un mediu de dezvoltare integrat, scopul principal fiind protejarea investiţiilor şi creşterea
productivităţii programării. Aceste facilităţi fac din COBOL un software complex cu un înalt grad de
generalizare şi care asigură independenţa programelor faţă de componentele hardware.
BASIC (Beginner’s All-purpose Symbolic Instruction Code) reprezintă unul dintre cele mai simple
limbaje de programare având trăsături comune cu limbajul FORTRAN. El dispune de un set restrâns de
instrucţiuni cu o sintaxă relativ simplă şi
uşor de însuşit. Universalitatea şi simplitatea limbajului a determinat includerea sa în sistemele de operare. Şi
acest limbaj a cunoscut diverse versiuni, cele mai răspândite fiind: BASICA, GWBASIC, QBASIC, Turbo
Basic.
PASCAL (nume atribuit în onoarea matematicianului francez Blaise Pascal) este un limbaj bazat pe
principiile programării structurate, caracterizat prin simplitate, eficienţă şi care acceptă o gamă largă de tipuri
de structuri de date. Limbajul a cunoscut mai multe versiuni adaptate diverselor metode de prelucrare (Pascal
secvenţial, Pascal concurent, Pascal obiectual). Limbajul Pascal a stat la baza elaborării de noi limbaje
precum MODULA-1, MODULA-2, ADA.
Pascal-ul secvenţial este un limbaj lansat în 1970 de către Niklaus Wirth (Institutul pentru
informatică al Institutului Politehnic din Zürrich) şi care se bazează pe principiile programării structurate.
Acceptă o gamă largă de tipuri de date (intrinseci, scalare, structurate, mai puţin cele abstracte). Cea de a
doua vrsiune, Pascal-ul concurent, a fost elaborată de către Per Brinch Hansen (Institutul de Tehnologie din
California) şi permite definirea datelor abstracte prin mecanisme destinate descrierii proceselor concurente.
Programele sunt constituite din definiţii de tip sistem cu structură de arbore. Pascal-ul concurent a moştenit
atât calităţile cât şi defectele din Pascal-ul secvenţial. Întrucât, la puţini ani după apariţia sa, s-au cristalizat
concepte mai evoluate, Pascal-ul concurent nu a avut timp să se impună, deşi el rămâne, după ADA şi
Modula-2 unul din cele mai bune limbaje în timp real.
ADA (Automatic Data Acquisition şi totodată numele contesei de Lovelance Augusta Ada Byron,
considerată a fi primul programator din lume) este un limbaj destinat aplicaţiilor tehnico-ştiinţifice, a celor în
timp real şi a programării concurente. Limbajul a fost elaborat de către o echipă de la Honeywell şi CII
Honeywell Bull, condusă de Jean D. Ichbiah cu scopul de a înlocui cele aproximativ 350 de limbaje folosite
la acea dată de către Departamentul apărării al SUA. Limbajul a fost standardizat în februarie 1983. ADA
este un limbaj complex şi dificil de învăţat, dar care asigură claritatea şi robusteţea programelor realizate într-
o concepţie modulară, compilare separată, tratarea excepţiilor. Limbajul ADA a fost influenţat, în mare
măsură, de limbajele din familia PASCAL (Euclid, Lis, Mesa, Modula, Sue) şi în mai mică măsură de Algol-
68, Simula, Alphard, Clu. Folosit iniţial în domeniul militar, la ora actuală, datorită facilităţilor oferite, este
larg utilizat şi în aplicaţiile economice. Pe ansamblu, limbajul ADA poate fi considerat nu doar un limbaj ci
“un mod de a gândi” constituind o piatră de hotar în evoluţia programării în timp real.
C (numit C deoarece dezvoltă limbajul B elaborat de Bell Laboratories) este un limbaj orientat spre
asigurarea controlului fluxurilor de instructiuni (teste, bucle, subprograme) conducând la elaborarea de
programe compacte, bine structurate fiind aplicat de constructorii de soft-uri de bază (C-ul a fost folosit iniţial
la scrierea sistemului de operare UNIX, foarte multe din procesoarele de texte, SGBD-urile şi spreadsheet-
urilor comercializate la ora actuală fiind realizate /scrise în versiuni ale acestui limbaj).C-ul preia de la
limbajele de tip PASCAL gradul ridicat de portabilitate, iar de la limbajele de asamblare rapiditatea în
execuţia şi gestionarea eficientă a memoriei. Astăzi, cele mai utilizate versiuni sunt: C++, Quick C, Visual C.
RPG (Report Program Generator) este un limbaj dezvoltat de către firma IBM la mijlocul anilor ‘60
odată cu lansarea unei noi linii de minicalculatoare proiectate pentru afacerile mici şi mijlocii. Limbajul
permite ca pe baza unor specificaţii ale utilizatorului, să se genereze codul unui program care lansat în
execuţie va conduce la obţinerea rapidă şi cu un cost relativ redus, a rapoartelor dorite.
PL/1 (Programming Language 1) este un limbaj lansat tot de către firma IBM la începutul anilor ‘60,
îmbinând facilităţile din FORTRAN pentru aplicaţii ştiinţifice, cu cele din COBOL pentru aplicaţiile
economice. La ora actuală acesta nu este foarte popular, utilizarea lui fiind limitată datorită faptului că este
complex şi greu de învăţat.
LISP (List Processing) a fost proiectat la sfârşitul anilor ‘50 pentru procesarea listelor de date, în
special a celor nenumerice. Acest tip de procesare este specific domeniului inteligenţei artificiale. Folosind
LISP-ul, se pot scrie programe care simulează gândirea umană în situaţii speciale. Descrierea prelucrărilor se
bazează pe compunerea unui set de funcţii, tratându-se uniform toate obiectele cu care lucrează. În ansamblul
său LISP-ul este un limbaj dificil de învăţat şi utilizat.
PROLOG (PROgramming LOGic) a fost dezvoltat la mijlocul anilor ’70 şi este un limbaj de tip
descriptiv folosit tot pentru programele de inteligenţăartificială.
Smalltalk a fost dezvoltat la mijlocul anilor ’70 de către firma Xerox Corporation pentru un tip de
programe - programarea orientată pe obiect care combină mesaje şi instrucţiuni
pentru procesarea datelor. Acest limbaj nu este greu de învăţat şi utilizat, dar reclamă schimbarea în întregime
a modului de gândire a unui program.Se prevede ca în viitor Smalltalk, alături de celelalte limbaje orientate
pe obiect (C++, C-obiectual), să cunoască o dezvoltare şi utilizare deosebită.
Java a fost dezvoltat de Sun Microsystems şi este un limbaj orientat pe obiecte, adaptat programării
şi distribuirii aplicaţiilor prin Internet. Acest limbaj asigură comunicarea între echipamente eterogene
distribuind formatul executabil al programului în reţea. Java operează cu tipuri obişnuite de date, dispune de
instrucţiuni speciale de protecţie şi oferă facilităţi de programare de tip animaţie, orientate obiect etc. Codul
Java este portabil, acelaşi program putând fi rulat pe orice platformă care deţine acest mediu de execuţie. Un
program Java poate fi prezentat fie sub formă de aplicaţie, fie sub formă de program apelat. Aplicaţia
reprezintă un program în sensul clasic, care se execută prin intermediul interpretorului Java. Cea de a doua
formă - applet-ul este un program Java apelat printr-un document HTML şi executat sub controlul unui
navigator sau al unui „appletviewer” echipat cu un interpretor Java.
O parte din limbajele de programare, prin diversele lor versiuni, nu pot fi încadrate strict într-o
anume generaţie. Fiind supuse continuu perfecţionării, ele tind spre generaţia superioară celei în care au fost
proiectate iniţial. În tabelul nr. 1.1 prezentăm comparativ principalele limbaje de programare.
Tabelul nr. 1.1 Limbaje de programare-generaţii şi domenii de utilizare
Limbajul Gene Neporta Portabilit Domenii de utilizare
-ratia bili tate ate
Progr. Programe aplicative Alte
Sistem domenii
Econ. Ştiinţif.
L. maşină 1 x X
L. asamblare 2 x X
FORTRAN 3 x X
COBOL 3 x X
BASIC 3 x X X
PASCAL 3-4 x X X X
RPG 3-4 x X
C 3-4 x X X X X
ADA 3-4 X X X X X
PL/1 3-4 X X X X
LISP/PROLOG 4-5 X X X X
SAMLTALK 4-5 X X X X
JAVA 4-5 X X X X X
După cum se observă, majoritatea limbajelor prezentate acoperă domeniul aplicaţiilor economice,
oferind facilităţi şi pentru cele ştiinţifice şi de altă natură.
A d m i n i s tr a to r u l
U ti l i z a to r i
B D
P ro g ram e d e
S tr u c tu r a B D a p l i c a ¡i i
L D D L M D
P G B D
U t. î n tr e ¡i n e r e C o m p . c o n tr o l
S G B D
B aza
de
d a te
Instrumentele de testare sunt folosite în programele cu grad mare de complexitate, acolo unde
modificările în sistem sunt frecvente şi impun testări repetate (numite testări regresive); în practică au fost
create instrumente soft care simplifică testarea regresivă precum:
-Automated Testing Facility - ATF (Softbridge);
-SQA Team Test (Software Quality Assurance - SQA );
-Microsoft Test (Microsoft).
Fiecare din aceste pachete integrate oferă posibilitatea creării de aplicaţii personalizate integrând funcţii cu
ajutorul lui OLE2 şi facilitând programarea componentelor individuale.
1.5 Criterii de alegere a limbajelor de programare şi a SGBD-urilor.
La alegerea unui limbaj de programare sau a unui SGBD trebuie avute în vedere o serie de aspecte care
să asigure eficienţă, siguranţă şi flexibilitate în rezolvarea aplicaţiilor utilizator. Criteriile care stau la baza
opţiunii de alegere a limbajului privesc următorii factori:
• tipul problemei ce urmează a fi rezolvată şi cunoştinţele utilizatorul (măsura în care limbajul de
programare sau SGBD-ul este convenabil atât la clasa de probleme cât şi pentru utilizator);
• tipul echipamentelor disponibile utilizatorului;
• gradul de dependenţă faţă de echipamentul folosit şi sistemul de operare;
• evaluarea rezultatelor obţinute prin folosirea anterioară de către alţi utilizatori;
• eficienţa scontată prin exploatare ;
• caracteristicile tehnice şi funcţionale generale;
• cerinţele de ordin economic.
Tipul problemei ce urmează a fi rezolvată şi cunoştinţele utilizatorul. Acest criteriu are în vedere
selectarea acelui limbaj care să răspundă cel mai bine tipului /tipurilor de aplicaţii utilizator, să asigure
concomitent uşurinţă în utilizare, un timp minim pentru prelucrarea datelor, confidenţialitatea şi securitatea
acestora.
Tipul echipamentelor hardware disponibile utilizatorului. Înaintea alegerii limbajului trebuie efectuată o
analiză a resurselor fizice existente şi a celor care urmează să fie achiziţionate. Această analiză trebuie să
stabilească dacă sunt asigurate resursele minime pentru dezvoltarea şi exploatarea aplicaţiilor. În felul acesta
se urmăreşte utilizarea eficientă a limbajului pe echipamentele din dotare.
Gradul de dependenţă faţă de echipamentul folosit şi sistemul de operare. Conform acestui criteriu
trebuie ales un limbaj de programare care să poată fi folosit fără probleme sub sistemul de operare sub care
lucrează echipamentele din dotare. În plus, trebuie asigurată portabilitatea programelor în cazul în care se vor
achiziţiona noi resurse informatice. Trebuie asigurată creşterea gradului de portabilitate cel puţin la nivel de
program sursă.
Evaluarea rezultatelor obţinute prin folosirea anterioară de către alţi utilizatori. Acest criteriu cere
realizarea unei documentări prealabile privind problemele cu care s-au confruntat alţi utilizatori ai limbajului
( existenţa /inexistenţa unei documentaţii de învăţare şi utilizare, posibilităţile /facilităţile de rezolvare a
problemelor practice etc.).
Eficienţa scontată prin exploatare. Această eficienţă implică stabilirea parametrilor de exploatare pe
fiecare etapă de realizare a programelor /produselor-program (scriere,
testare, implementare, utilizare). Se are în vedere atât eficienţa execuţiei programului, mai ales la programele
des utilizate cât şi eficienţa globală care ia în considerare toate fazele de elaborare şi utilizare (scriere, testare,
exploatare şi întreţinere). În acest context performanţa limbajului poate deveni o problemă mai puţin
importantă.
Caracteristicile tehnice şi funcţionale generale. Alegerea unui limbaj trebuie să ţină seama şi de
gradul de standardizare a acestuia, ştiut fiind că, în general, la standardizarea unui produs informatic se au în
vedere parametrii ce privesc simplitatea în exploatare, generalitatea în aplicare, naturaleţea, consistenţa şi
conciziunea în exprimare.
Cerinţele de ordin economic. Aceste cerinţe ţin seama de resursele financiare de care dispune
utilizatorul , resurse care trebuie să acopere atât achiziţionarea şi exploatarea propriu-zisă a limbajului, cât şi
organizarea şi pregătirea prealabilă a personalului.
Având în vedere cele de mai sus rezultă că alegerea unui limbaj este o decizie care trebuie susţinută
printr-o serie de analize de ordin tehnic, funcţional şi economic.