CATEGORII DOCUMENTE |
Cuvantul software desemneaza o intreaga tehnologie. Prin software nu intelegem doar CD-ul cumparat sau doar interfata de redactare a textelor din programul Microsoft Word ci si o multitudine de elemente invizibile ascunse "in spatele scenei". In realitate un computer ruleaza mult mai multe programe decat vedeti la un moment dat, fiecare operand la diferite niveluri si cu prioritati diferite, indeplinindu-si functiile si interconectandu-se prin procese invizibile intre ele.
In mod normal, programele pe care le puteti vedea, programe precum Microsoft Word, Microsoft Excel sau SPSS sunt denumite generic aplicatii. Alaturi de acestea intalnim utilitarele, programe speciale folosite pentru mentinerea in stare buna de functionare a intregului sistem, protectia impotriva eventualelor probleme sau automatizarea unor sarcini. Spre exemplificare, avem in vedere programele antivirus, programele de optimizare a sistemului, programatoarele se sarcini si asa mai departe. Mai jos, la interferenta dintre componentele fizice si componentele logice se afla sistemul de operare care conecteaza aplicatiile intre ele si cu componentele fizice. La acelasi nivel intalnim limbajele de programare prin intermediul carora putem instrui computerul ce sa faca, putem scrie noi aplicatii sau chiar alte sisteme de operare. Schematic, aceste elemente pot fi prezentate ca in figura alaturata:
Termenul de software se refera la ideile abstracte si include nu numai aplicatiile ci si informatiile si datele folosite de aceste aplicatii. Programele "spun" calculatorului ce sa faca, cum sa actioneze, cum sa foloseasca datele si comenzile. Un program, desi pare extrem de complex, in realitate se rezuma la o lista de comenzi care instruiesc partea fizica a calculatorului. Seamana, daca doriti, cu o reteta culinara scrisa intr-un anumit cod folosindu-se un limbaj de programare, o lista de instructiuni realizata de catre programatori. Lista de instructiuni actioneaza, de obicei, asupra unui set de date. Desi instructiunile sunt simple, combinarea acestora duce la programe complexe. La fel cum un roman bun este alcatuit din simple cuvinte ale vocabularului, si un program bun este constituit din instructiuni simple. Insa, la fel cum eu n-as fi capabil poate sa scriu niciodata un roman precum "Shogun", conditia scrierii de programe performante este talentul si arta programatorului, dublata de o experienta si de o buna documentare. In alta ordine de idei, daca dumneavoastra in loc de zahar puneti in tort sare si piper, un cod scris gresit poate provoca multe probleme mergand pana la pierderi de date si chiar blocarea sistemului.
Aplicatiile sunt, dupa cum am mai spus, programele pe care le cumparati sau cele pe care le veti realiza, poate, in urma acestui curs. Termenul provine de la software de aplicatii iar aceste componente se situeaza la nivelul cel mai inalt. Ele sunt de fapt consumatoarele resurselor sistemului dumneavoastra iar fiecare aplicatie necesita un anumit minim de resurse. Daca acest minim nu este satisfacut, aplicatiile nu vor rula sau vor rula defectuos. Spre exemplu, pentru a instala Visual Basic versiunea 6, aveti nevoie de un sistem de operare Windows 95, un procesor 486 DX la 66 MHz, o unitate CD-ROM, o placa video VGA, 16 MB memorie RAM, 50 MB spatiu pe Hard Disk si un mouse. Sa vedem ce se intampla daca nu avem aceste componente. Remarcam faptul ca cele mentionate mai sus reprezinta minimum necesar. Cu cat sistemul este mai performant, cu atat este mai bine.
Daca nu avem Windows 95, programul nu se va instala. Visual Basic 6 ruleaza pe masini Microsoft cu Windows instalat ca sistem de operare. Deci, daca aveti un computer cu Linux, spre exemplu, nu veti putea folosi acest produs. Daca aveti Windows 98 sau Windows 2000, veti putea beneficia de alte facilitati de lucru interne ale sistemului de operare (spre exemplu ferestre mai frumoase in cazul Windows XP).
Procesorul se caracterizeaza prin frecventa sa, sau mai bine zis prin numarul de operatii pe care le poate efectua intr-un interval de timp. Un procesor 486 DX la 66 MHz poate face 66 de milioane de operatii pe secunda. Desigur, acesta difera de un procesor Pentium 4 la 1GHz care poate face 1 miliard de operatii pe secunda. Intuiti deja faptul ca un procesor mai rapid va duce si la o viteza mai mare a aplicatiilor dumneavoastra, deci este mai bine. Pe de alta parte, un procesor lent duce fie la imposibilitatea rularii programului, fie la o rulare cu o viteza care va determina sa va lasati pagubas.
Rolul unitatii CD-ROM este inteles de la sine. Daca cumparati o aplicatie pe CD si nu aveti CD-ROM, pur si simplu nu o veti putea instala. Mouse-ul pe de alta parte este un dispozitiv de indicare prin intermediul caruia puteti efectua diverse actiuni. Desi veti putea lucra si fara mouse, dificultatea operatiilor va va determina sa renuntati.
Memoria RAM reprezinta un alt element deosebit de important. Ea este memoria de lucru, memoria electronica a calculatorului. Volumul acesteia determina performantele sistemului. Cu cat memoria RAM este mai mare, cu atat procesorul va avea imediat la dispozitie mai multa informatie si va putea lucra mai repede. Daca insa memoria RAM este insuficienta, calculatorul va rula extrem de lent sau se va bloca.
Spatiul pe discul intern (Hard Disk) determina cantitatea de informatie care poate fi stocata pe computer si se refera la informatia nevolatila, adica la informatia care nu dispare daca computerul este scos din priza. Un spatiu mare face posibila pastrarea unei cantitati mai mari de informatie in comparatie cu un spatiu redus. Lipsa spatiului minim necesar duce la imposibilitatea instalarii aplicatiei, deoarece aceasta nu mai are unde sa-si depuna fisierele. Desigur nu mai e cazul sa vorbim despre propriile dumneavoastra programe, care bineinteles vor lua forma tot a unor fisiere. Si aici, cu cat mai mult spatiu, cu atat mai bine.
Probabil ca intuiti deja ca un element esential in livrarea aplicatiilor dumneavoastra il reprezinta specificarea necesarului minim de resurse pentru computerul clientului. Daca veti ajunge sa creati aplicatii pe care sa le distribuiti, in mod cert va trebui sa faceti acest lucru.
La ora actuala, majoritatea aplicatiilor se livreaza pe CD si cuprind sute de megaocteti de informatie pe care programul de instalare le copie sub forma de fisiere pe discul dumneavoastra. (Hard Disk). In general, programul de instalare, numit si kit de instalare are forma unui fisier executabil care stocheaza comprimat pe CD toate fisierele necesare[1] bunei functionari a aplicatiei. Kitul de instalare, de cele mai multe ori, se prezinta ca o rutina pas cu pas ce ghideaza utilizatorul prin procesul instalarii si se finalizeaza cu punerea la dispozitie a unei aplicatii complet functionale.
Orice aplicatie lucreaza in baza unui asa numit algoritm, o formula matematica a operatiei convertita in codul programului. Algoritmul poate fi inteles ca o structura repetitiva de pasi care face ceva. In general sunt cateva operatii elementare care se repeta de multe ori. Schimbarea culorii unei fotografii, de exemplu, este un algoritm simplu care se repeta pentru fiecare punct al unei imagini.
Partea aplicatiei ce serveste ca element de legatura intre om si cerintele calculatorului se numeste interfata cu utilizatorul. Prin intermediul acestui concept definim orice, incepand de la o fereastra cu butoane si casete de text, la mesajele de avertizare pe care vi le da sistemul si chiar la un simplu buton OK. Proiectarea acestor interfete reprezinta o problema de arta si talent. O interfata cu utilizatorul incarcata si lipsita de aspect estetic poate duce la un insucces al programului dumneavoastra, chiar daca pe ansamblul sau aplicatia este excelenta. In domeniul psihologiei, proiectarea interfetelor cu utilizatorul ridica probleme deosebite in privinta eliminarii oricarei influente a interfetei asupra rezultatelor examenului psihologic. Despre aceste lucruri insa, voi reveni intr-un curs ulterior.
Am discutat deja suficient pentru a va da seama la ce se refera termenul de aplicatie. Ar fi momentul unei incercari de clasificare a acestora. In tabelul 1 v-am prezentat o clasificare traditionala a aplicatiilor bazata pe functia pe care acestea o indeplinesc.
Tabelul 1 - Clasificarea principalelor tipuri de software dupa functionalitatea acestora
Clasa de aplicatii |
Functia |
Browsere Web |
Permit accesarea site-urilor Internet in vederea cautarii de informatii sau chiar pentru a rula OnLine alte aplicatii. (Internet Explorer, Mozilla, Netscape etc.) |
Programe de posta electronica si comunicatii |
Permit trimiterea si receptionarea mesajelor electronice, schimburi de date, faxuri sau videoconferinte. (Outlook Expres, Delrina, Cheyenne Bitware etc.) |
Procesoare de texte |
Permit redactarea textelor si pregatirea acestora pentru imprimare. Au functii de asistenta in elaborarea textelor, formatare, generare automata de cuprins etc. (Microsoft Word, Word Perfect etc.) |
Programe de calcul tabelar |
Contrar opiniei multora, acestea nu sunt programe de baze de date ci permit automatizarea fiselor contabile si a foilor de calcul. Sunt deci aplicatii speciale destinate calculului automat a unor mari arii de date. (Microsoft Excel, Lotus, etc.) |
Baze de date |
Permit stocarea, actualizarea si regasirea informatiilor. Se bazeaza pe un sistem special de tabele cu posibilitati avansate de sortare si cautare foarte rapida. (Microsoft Access, FoxPro, DBase) |
Programe grafice |
Permit crearea si editarea de imagini, modificarea atributelor fotografiei, conversia si imprimarea fisierelor grafice. (Corel Photopaint, Adobe Photoshop, etc.) |
Programe multimedia |
Permit redarea sau crearea fisierelor audio, muzicale, a filmelor si materialelor publicitare, rularea jocurilor sau a animatiilor (Winamp, Media Player, Macromedia, Adobe Premiere) |
Nu trebuie sa considerati ca aceste aplicatii sunt exclusive. Exista elemente de intrepatrundere intre acestea. De exemplu, deseori se confunda foile de calcul tabelar cu bazele de date, deoarece producatorii au inclus in unele functii similare. Mai mult decat atat, unele firme pun in vanzare adevarate suite software care contin mai multe aplicatii grupate intr-un singur pachet. Astfel spre exemplu avem suita Microsoft Office care grupeaza aplicatiile Microsoft Word, Microsoft Excel, Microsoft PowerPoint, Microsoft Access si Microsoft Outlook, o multime de programe care pot lucra impreuna. Imbinarea acestor programe intr-unul singur duce la avantaje legate de compatibilitate. Adica, putem, spre exemplu, introduce o prezentare PowerPoint intr-un document Word sau putem insera o foaie de calcul Excel intr-un document Word ori, de ce nu, datele dintr-o foaie Excel pot fi cu usurinta transferate intr-o baza de date Access. Dar despre tehnologia care sta in spatele acestor posibilitati vom discuta cu alta ocazie.
Cu toate ca dumneavoastra in general veti folosi aplicatii pentru a utiliza computerul in rezolvarea diverselor sarcini curente, uneori e necesar sa faceti si curatenie pentru a pastra sistemul in conditii optime de functionare si pentru a-l determina sa lucreze eficient. Programele care au acest scop se numesc software utilitar sau pe scurt utilitare.
Utilitarele pastreaza discul organizat pentru a rula cu viteza maxima, previn caderile sistemului prin identificarea problemelor legate de programele instalate incorect sau elimina reziduurile ramase in urma dezinstalarii unui program, identifica si uneori elimina virusii, recupereaza fisierele sterse din greseala si fac multe asemenea operatii de intretinere.
In general anumite utilitare sunt incluse deja in sistemul de operare, cum ar fi Disk Defragmenter, programul care optimizeaza viteza discului, Disk Cleanup care elimina fisierele sau programele inutile, Scandisk, care verifica discul de posibilele erori logice sau fizice, Backup care face copii de siguranta dupa fisierele importante sau dupa intregul sistem etc. Multe companii producatoare de software s-au specializat in productia, aproape exclusiva a acestor utilitare si e suficient sa remarc produsele firmei Symantec, binecunoscuta suita Norton Utilities sau Norton SystemWorks care nu cred ca mai au nevoie de nici o prezentare.
Ati observat probabil ca aceste programe sunt foarte asemanatoare cu aplicatiile. Diferenta dintre ele consta in ceea ce fac. Daca aplicatiile furnizeaza anumite raspunsuri sau afiseaza informatii, utilitarele asigura intretinerea sistemelor.
Sistemul de operare este software-ul de baza care ruleaza pe un calculator. Dupa ce porniti computerul, inainte de a lansa in executie vreo aplicatie sau vreun utilitar, ceea ce vedeti este tocmai sistemul de operare. Rolul acestuia este de a comunica partii fizice cum sa lucreze, cum sa execute functii de baza. Operatiile de citire si scriere pe disc, transformarea apasarilor pe taste in caractere alfabetice, afisarea unei imagini pe ecranul monitorului in modul similar al unui televizor, toate acestea si multe altele sunt controlate de catre sistemul de operare. Un sistem de operare este deci un software de baza care defineste si creeaza, controleaza si gestioneaza servicii, intretine mediul de dezvoltare si ruleaza programele computerului. Ajunsi aici trebuie sa facem diferenta dintre un sistem de operare bazat pe text si un sistem de operare grafic.
Sistemul de operare bazat pe text pune la dispozitia utilizatorului o consola, de obicei o linie de text insotita de un cursor clipitor care indica locul unde se va afisa ceea ce tastam si ne invita sa introducem comenzi. In general aceste sisteme de operare nu necesita mouse, iar utilizarea lor presupune in primul rand cunoasterea limbajului, a comenzilor ce pot fi introduse. Spre exemplu, pentru a afisa continutul unui director, in sistemul de operare DOS (Disk Operating System) se foloseste comanda dir in timp ce pentru sistemele bazate pe UNIX, comanda ls. Pentru exemplificare, prezentam comparativ in figurile 2 si 3, rezultatul acestor comenzi in cazul celor doua sisteme.
Observati desigur ca folosirea unor astfel de sisteme de operare este destul de dificila pentru un utilizator neavizat. La intersectia dintre sistemele de operare text si cele grafice au aparut interfetele de tip shell. Acestea nu reprezentau sisteme de operare propriu-zise, se bazau pe sistemele de operare tip text insa aveau o modalitate grafica care permitea o interactiune mai usoara cu sistemul. Astfel de exemple intalnim in cazul utilitarului Norton Commander si in cazul versiunii Windows 3.1 si Windows 3.1.1 precum si sistemul X de ferestre pentru Linux. In general interfetele de tip shell au facut trecerea la sistemele de operare grafice.
Facem diferenta intre interfata cu utilizatorul discutata anterior si termenul general de interfata care reprezinta punctul de conectare a doua lucruri. De exemplu, interfata cu utilizatorul este punctul de conectare a fiintei umane cu computerul, un subset al interfetelor. Interfata hardware este punctul in care se conecteaza componentele fizice de cele logice si asa mai departe. Distinctia este importanta pentru ca mai tarziu vom discuta despre interfetele software ca punctul de legatura intre doua aplicatii si nu dorim sa credeti ca prin interfata se intelege doar sistemul de ferestre al Windows.
Doar interfata cu utilizatorul este vizibila pentru dumneavoastra si reprezinta modalitatea prin care dumneavoastra puteti interactiona cu sistemul. De aici puteti lansa in executie aplicatii si tot de aici le puteti inchide.
Sistemul de operare grafic este cel mai bine explicat de Microsoft Windows. De aceasta data nu mai este necesara insusirea unor numeroase comenzi, actiunile asupra functiilor sale de baza facandu-se prin simple click-uri cu mouse-ul sau prin derularea unor mesaje pe ecran. Popularitatea sistemului de operare Windows se datoreaza incontestabil acestui aspect, desi numerosi sustinatori ai altor sisteme de operare nu inceteaza sa critice Microsoft si produsele sale. Realitatea este insa aceea ca indiferent de partile sale slabe, Microsoft a facut posibila utilizarea si chiar programarea computerelor pe scara larga, a permis publicului larg accesul la tehnologia informatiei. Totusi Microsoft Windows nu este nici primul si nici singurul sistem de operare grafic. Numeroase alte companii au pus la dispozitie produse asemanatoare. Pentru a ca putea face o imagine generala, vom analiza pe scurt evolutia in timp a sistemelor de operare.
In 1961 apare sistemul de operare CTSS (Compatible Time-Sharing System), stramosul sistemului de operare UNIX, dezvoltat pe un computer IBM 7094. In 1965, devine disponibil OS/360, un sistem de operare extrem de puternic, dezvoltat de IBM pe noile sale computere System/360, sistem de operare anuntat inca din 1964. Variante derivate si imbunatatite ale acestui sistem de operare exista si in prezent. In acelasi an apare si TOS (Tape Operating System), un alt sistem de operare produs de IBM pentru acelasi calculator, care putea lucra cu benzi magnetice. Se considera ca TOS este stramosul direct al popularului sistem de operare DOS. In 1967, apare sistemul de operare WAITS folosit pana prin anii 1990 in laboratorul de inteligenta artificiala al Universitatii Standford. Sistemul de operare WAITS a stat la baza viitoarelor sisteme de operare Xerox, Apple Macintosh si Sun. Anul 1969 este anul aparitiei sistemului de operare UNIX, primul sistem de operare multitask (ce putea executa mai multe sarcini in acelasi timp) si multiuser (care accepta mai multi utilizatori in acelasi timp). Parintii acestui sistem de operare sunt trei nume de referinta in istoria computerelor, Ken Thompson, Dennis Ritchie si Doglas Mcllroy de sa AT&T Bell Labs. In 1976 apare sistemul de operare CP/M (Control Program/Monitor) destinat microprocesoarelor Intel 8080/85 si Z80 sistem de operare popular si in tara noastra la acea vreme. Computere care foloseau acest sistem de operare au fost produse si in Romania pana prin anii 1994-1995 sub denumiri precum HC85, CIP, HC2000. Pentru multi dintre noi, aceste computere care aveau implementate o versiune a limbajului de programare BASIC au reprezentat "ucenicia" in domeniul tehnicii de calcul. Primul sistem de operare Apple apare in anul 1978 si se numeste Apple DOS 3.1. Acest sistem de operare a fost deseori referit in literatura de specialitate ca sistemul de operare DOS 3.x Numele DOS semnifica sistemul de operare cu discuri (Disk Operating System) fiind primul care inlocuia benzile magnetice cu discuri flexibile si folosea structura arborescenta de directoare si fisiere din UNIX. Anul 1981 este anul de debut al popularului sistem de operare pentru IBM PC, produs de firma Microsoft si anume MS-DOS. Acesta punea la dispozitie o interfata utilizator la nivelul liniei de comanda si facilitati de creare a unor comenzi multiple stocate intr-un fisier (batch scripting) interpretat de un program special denumit interpretor. Totusi nu Microsoft a inventat sistemul de operare DOS care i-a adus renumele ci o alta firma numita Seattle Computer Systems care a realizat o clona dupa CP/M si a denumit-o QDOS. Microsoft a cumparat acest produs si l-a vandut apoi corporatiei IBM sub noul nume de PC-DOS si mai apoi MS-DOS, versiunea imbunatatita. Deoarece in acea perioada IBM pregatea lansarea pe piata a computerelor personale, MS-DOS a fost implementat ca sistem de operare nativ pe aceste computere si a dobandit un succes ametitor rezistand pana in anul 1995 cand Microsoft a lansat primul sistem de operare grafic numit Windows 95. In 1985 Microsoft lanseaza Windows 1.0, prima interfata grafica pentru PC. Bazandu-se pe DOS ca sistem de operare, Windows permitea o interactiune mai usoara a utilizatorului cu computerul folosind elemente grafice. Din acel moment evolutia sistemelor de operare este cunoscuta. Actualmente Microsoft pregateste lansarea ultimului sau sistem de operare grafic numit Windows Longhorn, mai optimizat si bazat pe o noua tehnologie
Microprocesoarele reactioneaza numai la modele de semnale electrice. Un program pentru calculator nu este altceva decat informatia care isi afla reprezentarea finala ca un set dinamic de semnale aplicate pinilor microprocesorului. Realizarea de catre om unui asemenea program, format din impulsuri electrice, este practic imposibila, astfel incat ideile dintr-un program pot fi reprezentate intr-o forma mai usor de inteles pentru fiintele umane prin intermediul unui limbaj de programare.
Un limbaj de programare se aseamana destul de mult cu limbajul uman, fiind format dintr-un set de simboluri impreuna cu sintaxa de combinare a acestora. Aceste simboluri corespund modelelor de biti care transmit microprocesorului semnale la fel cum literele alfabetului reprezinta sunetele pe care doriti sa le rostiti. De exemplu, daca analizam un mar la un nivel suficient de profund, constatam ca in definitiv marul nu reprezinta altceva decat un set de componente subatomice de baza, aflat in continua schimbare. Aceste componente nu reprezinta nimic prin ele insele. Doar in momentul in care se combina intr-un anumit fel, creeaza fructul pe care il cunoastem sub denumirea de mar. Un alt mod de combinare ar duce la o piersica sau la o pruna. In concluzie, important este modelul general si nu elementele componente. Acest lucru este valabil si la cuvinte si cu atat mai mult la programe. In acest caz, comenzile individuale sunt mai putin importante. Ceea ce conteaza este modelul format atunci cand se combina, model care capata sens prin intermediul programului rezultat.
La cel mai scazut nivel, un program este o lista de comenzi pe care poate sa le execute microprocesorul. Aceasta programare seamana daca doriti cu retetele culinare in care ordinea conteaza. E ca si cum ati scrie "mai intai pun faina, apoi drojdia si in final oul". O asemenea lista poate sa contina mii de instructiuni la care ordinea conteaza, astfel incat fiintele umane gasesc acest mod de programare extrem de obositor si solicitant. Pentru a rezolva aceasta problema, oamenii au inventat limbajele de programare de nivel inalt care folosesc un vocabular mai familiar in comparatie cu modelele de biti si chiar cuvinte care seamana cu limbajul obisnuit. Un program special transforma apoi textul scris intr-un asemenea limbaj in modele de biti pe care le poate executa microprocesorul.
La fel ca un animal bine dresat care intelege un repertoriu propriu de instructiuni, si microprocesorul poate sa adauge, sa scada, sa mute sau sa modifice modele de biti. Fiecare familie de microprocesoare are implementata in circuitele sale interne un anumit set de instructiuni pe care le poate executa. Aceste seturi de instructiuni nu sunt identice decat la nivelul familiei de microprocesoare si de aceea un program conceput pentru familia de microprocesoare Intel cu care sunt echipate majoritatea computerelor de la noi, nu poate rula pe computere Apple Macintosh bazate pe procesoare IBM/Motorola PowerPC.
Limbajul nativ pe care il intelege un microprocesor si la care poate interactiona se numeste limbaj masina si are aspectul unui model de biti al semnalelor electrice care poate fi exprimat printr-o serie binara de 0 si 1. De obicei, instructiunile in limbaj masina sunt reprezentate in baza 16 numita si reprezentare hexazecimala. Spre exemplu, instructiunea de scadere are forma 0010110 in binar sau 16 in hexazecimal. Constatati ca aproape fiecare numar binar are o semnificatie. In exemplul anterior, numarul 0010110 in binar reprezinta instructiunea de scadere. In momentul in care microprocesorul in intalneste el va sti ca trebuie sa scanda ceva.
Pentru masini, acest limbaj ar fi nemaipomenit. Oamenii insa nu gandesc in modele de biti, desi unii dupa saptamani, luni sau ani reusesc sa stie ce face fiecare numar si incearca sa "asculte" modul de comunicare al masinii. Ar fi, asadar, aproape imposibil pentru majoritatea oamenilor sa scrie programe folosind doar 0 si 1 sau eventual numere in baza 16. Se impune prin urmare trecerea la o alta modalitate, mai evoluata de scriere a programelor pentru computer.
O reprezentare mai buna a codurilor in limbaj masina implica folosirea mnemonicelor in locul codurilor numerice si a modelelor de biti. Astfel fiecarui cod in limbaj masina ii corespund fragmente de cuvinte astfel incat numarul 16 in hexazecimal din exemplul precedent devine mnemonicul SUB (de la englezescul subtraction = scadere). In acest fel apar limbajele de asamblare care permit scrierea de programe folosind simboluri mai usor de memorat. Un program scris in limbaj de asamblare nu poate fi totusi executat direct de catre microprocesor (amintiti-va ca acesta nu stie ce inseamna SUB, el stie numai de 0010110). Este necesara o conversie a acestuia intr-un model de biti, adica, de exemplu, o transformare a instructiunii SUB in numarul binar corespunzator. Aceasta conversie se realizeaza de un program special numit asamblor. Asambloarele nu fac insa doar o conversie ci pot, spre exemplu, grupa mai multe instructiuni intr-un bloc numit subrutina care poate primi un nume iar apoi poate fi doar apelat. Majoritatea instructiunilor din limbajul de asamblare lucreaza direct cu microprocesorul folosind mnemonicele in locul numerelor. Programatorii nu mai trebuie sa gandeasca in maniera pas cu pas a microprocesorului insa pot manipula, la cel mai scazut nivel, actiunile acestuia. De aceea, limbajul de asamblare este cunoscut ca fiind un limbaj de nivel scazut.
Desi limbajul de asamblare reprezinta un progres net in comparatie cu limbajul masina, totusi programarea intr-un asemenea mediu este extrem de dificila. E necesara cunoasterea setului de instructiuni specifice fiecarui microprocesor si mai mult decat atat, asamblorul nu are nici o modalitate de verificare a corectitudinii logice a codului scris. Prin urmare, orice erori de programare la acest nivel pot fi critice, depanarea programului fiind extrem de anevoioasa. Rezultatul unui program scris in limbaj de asamblare este un obiect direct executabil de catre microprocesor. Prin urmare, la acest nivel se pot scrie cele mai rapide rutine posibile deoarece microprocesorul intelege direct acel cod. Limbajul de asamblare este folosit si astazi pentru scrierea programelor de BIOS sau a rutinelor critice din punct de vedere al vitezei de executie si al accesului la resursele hardware.
Unii ingineri in domeniul tehnologiei computerelor au considerat ca daca se pot transforma modelele de biti in mnemonice, s-ar putea face inca un pas convertind instructiunile intr-un limbaj mai apropiat de cel uman. Beneficiind de o biblioteca de subrutine, s-a trecut la asocierea numelui acestor subrutine cu diferite instructiuni si comenzi scrise intr-un limbaj inteligibil. Astfel, eliminand corespondenta biunivoca dintre instructiunile limbajului si codurile in limbaj masina s-a introdus un nivel suplimentar de abstractizare intre program si microprocesor. In loc sa manipuleze deplasarea octetilor de informatie, limbajele de nivel inalt permit programatorilor sa lucreze cu numere zecimale, siruri de caractere, elemente grafice. La acest nivel, limbajele de programare se impart in doua mari categorii: limbaje interpretate si limbaje compilate.
La rularea unui program scris intr-un limbaj interpretat, fiecare instructiune a programului este convertita din limbajul inteles de oameni in limbajul inteles de microprocesor de un program special numit interpretor. Deci, in momentul in care ruleaza un program interpretat, in memorie se incarca nu numai programul propriu-zis ci si interpretorul. Programele interpretate ofera rezultatele imediat deoarece pot fi rulate fara etape intermediare. Daca apare vreo eroare, aceasta poate fi corectata si programul poate fi din nou testat. Dezavantajul ar fi acela ca masina trebuie sa faca interpretarea programului la fiecare rulare a acestuia, executand aceleasi operatii de fiecare data s ducand la irosirea timpilor microprocesorului. Ca o consecinta directa, acest lucru duce la programe executate mai lent.
In prezent, cel mai important limbaj interpretat este Java, produs de Sun Microsystem pentru programarea orientata pe Internet. Inainte de Java, limbajul BASIC (Beginner's All-purpose Symbolic Instruction Code) a avut si inca are o mare raspandire si a contribuit semnificativ la dezvoltarea aplicatiilor software. Extensia acestui limbaj numita Visual BASIC este inca extrem de populara datorita usurintei in programare. Desi Visual Basic pare un limbaj compilat deoarece este generat un cod executabil, lucrurile nu stau asa. In realitate, Visual Basic asigura suportul de interpretare printr-un modul de executie (run-time module) accesibil sistemului de operare si invizibil utilizatorului care reprezinta interpretorul propriu-zis.
Exista o analogie intre limbajele compilate si limbajele scrise in asamblare deoarece sunt executate la fel, insa programul este scris intr-o forma mai usor de inteles pentru oameni. Programul scris intr-un limbaj compilat si care se numeste cod sursa este transformat doar o singura data in limbaj masina rezultand un cod direct executabil numit cod obiect. Codul obiect este stocat si apelat direct la fiecare executie a programului, fara a mai fi necesar un interpretor, deoarece acesta poate fi inteles de microprocesor. Acest proces de transformare se numeste compilare si este executat de un program special numit compilator. Avantajul programelor compilate este acela ca pot fi executate direct si foarte repede, aproximativ la fel ca un program scris in limbaj de asamblare. Erorile sunt mai usor de detectat si corectat, insa este necesara o noua compilare pentru a actualiza codul obiect. Pentru programele complexe, la nivel de intreprindere, procesul de compilare poate dura destul de mult, de la cateva minute la cateva ore.
Cele mai vechi limbaje compilate sunt COBOL, FORTRAN si Pascal insa poate cel mai cunoscut este limbajul C si extensia acestuia, C++. Extensia C++ este un limbaj de programare orientat pe obiecte ceea ce inseamna ca programatorii pot scrie programe complexe folosind module separate numite obiecte si care pot fi mai apoi incluse fara nici o modificare in alte programe mai complexe. Daca doriti, un obiect poate fi asociat cu palca de sunet din calculator. Nu ne intereseaza cum functioneaza, tot ceea ce trebuie sa stim este cum sa o montam. Mai mult, daca dorim sa ne dotam computerul cu o placa de sunet, nu ne vom apuca noi sa construim una ci o vom cumpara. Placa de sunet este deci un modul, un obiect pe care il putem folosi pentru a construi ceva mai complex cum ar fi computerul. Este acelasi lucru cu a reinventa roata. De ce sa ne apucam sa reinventam ceva cand acel ceva exista deja. Acesta este principiul programarii orientate obiect care a dus la un salt fara precedent in domeniul software. In prezent consideram ca toate aplicatiile sunt construite pe aceste principii.
Compilatoarele nu fac doar o simpla conversie a codului din cod sursa in cod executabil sau cod obiect. Majoritatea compilatoarelor moderne sunt compilatoare cu optimizare care se asigura ca instructiunile programului sunt aranjate in cea mai eficienta ordine pentru a folosi la maxim capacitatile microprocesorului. Practic acestea fac o munca pentru care ar fi fost nevoie de un programator in limbaj de asamblare
Ce intelegeti prin termenul de software?
Descrieti cateva programe utilitare si prezentati rolul acestora.
Care sunt functiile principale ale unui sistem de operare.
Prin ce se caracterizeaza programarea in limbaj de asamblare. Avantaje si limite.
Diferentiati intre limbajele interpretate si limbajele compilate.
TEMA: Realizati un referat in care sa prezentati, din punctul dumneavoastra de vedere, structura modulelor programului Microsoft Word din perspectiva programarii orientate pe obiecte..
Plecam de la premisa ca cititorul are notiunile fundamentale de lucru cu calculatorul, stie ce sunt acelea directoare, fisiere, stie ce inseamna click, dublu click si stapaneste satisfacator notiunile de baza. Exista o literatura bogata in domeniul initierii in lucrul cu calculatorul, de aceea elementele la acest nivel nu vor fi tratate aici.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1973
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved