狗那么招人喜爱,为啥带“狗”的词...


Un calculator, numit ?i sistem de calcul, computer sau ordinator, este o ma?in? de prelucrat date ?i informa?ii conform unei liste de instruc?iuni numit? program. ?n zilele noastre calculatoarele se construiesc ?n mare majoritate din componente electronice ?i de aceea cuvantul ?calculator” ?nseamn? de obicei un calculator electronic. Calculatoarele care sunt programabile liber ?i pot, cel pu?in ?n principiu, prelucra orice fel de date sau informa?ii se numesc universale (englez? general purpose, pentru scopuri generale). Calculatoarele actuale nu sunt doar ma?ini de prelucrat informa?ii, ci ?i dispozitive care faciliteaz? comunica?ia ?ntre doi sau mai mul?i utilizatori, de exemplu sub form? de numere, text, imagini, sunet sau video sau chiar toate deodat? (multimedia).
?tiin?a prelucr?rii informa?iilor cu ajutorul calculatoarelor se nume?te informatic? (englez? Computer Science). Tehnologia necesar? pentru folosirea lor poart? numele Tehnologia Informa?iei, prescurtat TI sau IT (de la termenul englezesc Information Technology).
?n principiu, orice calculator care de?ine un anumit set minimum de func?ii (altfel spus, care poate emula o ma?in? Turing) poate ?ndeplini func?iile oric?rui alt asemenea calculator, indiferent c? este vorba de un PDA sau de un supercalculator. Aceast? compatibilitate a condus la folosirea calculatoarelor cu arhitecturi asem?n?toare pentru cele mai diverse activit??i, de la calculul salariz?rii personalului unei companii pan? la controlul robo?ilor industriali sau medicali (calculatoare universale).
Func?ionare
[modificare | modificare surs?]Calculatoarele clasice pe care le folosim ?n prezent efectueaz? opera?ii logice folosind bi?i - un flux de impulsuri electrice sau optice reprezentand formule binare formate din 1 sau 0. Un calculator obi?nuit stocheaz? ?i proceseaz? informa?ia cu ajutorul tranzistorilor: cand tranzistorul permite trecerea curentului electric, apare un semnal de tip 0, iar, dac? tranzistorul nu permite trecerea curentului electric, un semnal de tip 1. ?n orice sarcin? a computerului, procesul este acela?i: un algoritm manipuleaz? o serie de bi?i, unde fiecare bit este fie 0, fie 1 (input), din care rezultatul este un nou ?ir de bi?i ai calculatorului (output).
Istoric
[modificare | modificare surs?]- Articol principal: Istoria ma?inilor de calcul
Cel mai vechi mecanism cunoscut care se pare c? putea func?iona ca o ma?in? de calculat se consider? a fi mecanismul de la Antikythera, datand din anul 87 ?.Hr. ?i folosit aparent pentru calcularea mi?c?rilor planetelor. Tehnologia care a stat la baza acestui mecanism nu este cunoscut?.
Odat? cu revigorarea matematicii ?i a ?tiin?elor ?n timpul Rena?terii europene au ap?rut o succesiune de dispozitive mecanice de calculat, bazate pe principiul ceasornicului, de exemplu ma?ina inventat? de Blaise Pascal. Tehnica de stocare ?i citire a datelor pe cartele perforate a ap?rut ?n secolul al XIX-lea. ?n acela?i secol, Charles Babbage este cel dintai care proiecteaz? o ma?in? de calcul complet programabil? (1837), ?ns? din p?cate proiectul s?u nu va prinde roade, ?n parte din cauza limit?rilor tehnologice ale vremii.
?n prima jum?tate a secolului al XX-lea, nevoile de calcul ale comunit??ii ?tiin?ifice erau satisf?cute de calculatoare analoage, foarte specializate ?i din ce ?n ce mai sofisticate. Perfec?ionarea electronicii digitale (datorat? lui Claude Shannon ?n anii 1930) a condus la abandonarea calculatoarelor analogice ?n favoarea celor digitale (numerice), care modeleaz? problemele ?n numere (bi?i) ?n loc de semnale electrice sau mecanice. Este greu de precizat care a fost primul calculator digital; realiz?ri notabile au fost: calculatorul Atanasoff-Berry, ma?inile Z ale germanului Konrad Zuse - de exemplu calculatorul electromecanic Z3, care, de?i foarte nepractic, a fost probabil cel dintai calculator universal, apoi calculatorul ENIAC cu o arhitectur? relativ inflexibil? care cerea modific?ri ale cablajelor la fiecare reprogramare, precum ?i calculatorul secret britanic Colossus, construit pe baz? de l?mpi ?i programabil electronic.
Echipa de proiectare a ENIAC-ului, recunoscand neajunsurile acestuia, a elaborat o alt? arhitectur?, mult mai flexibil?, care a ajuns cunoscut? sub numele de arhitectura von Neumann sau ?arhitectur? cu program memorat“. Aceasta st? la baza aproape tuturor ma?inilor de calcul actuale. Primul sistem construit pe arhitectura von Neumann a fost EDSAC.
?n anii 1960, l?mpile (tuburile electronice) au fost ?nlocuite de tranzistori, mult mai eficien?i, mai mici, mai ieftini ?i mai fiabili, ceea ce a dus la miniaturizarea ?i ieftinirea calculatoarelor. Din anii 1970, adoptarea circuitelor integrate a coborat ?i mai mult pre?ul ?i dimensiunea calculatoarelor, permi?and printre altele ?i apari?ia calculatoarelor personale de acum.
Arhitectura von Neumann
[modificare | modificare surs?]De?i design-ul ?i performan?ele calculatoarelor actuale s-au ?mbun?t??it considerabil ?n compara?ie cu cele din anii 1940, principiile arhitecturii von Neumann sunt ?n continuare la baza aproape a tuturor ma?inilor de calcul[1][2][3] contemporane. Ea este denumit? a?a dup? renumitul matematician austro-ungar John von Neumann.
Aceast? arhitectur? descrie un calculator cu patru module importante: unitatea aritmetic?-logic? (UAL), unitatea de control (UC), memoria central? ?i dispozitivele de intrare/ie?ire (prescurtat I/E). Acestea sunt interconectate cu un m?nunchi de fire numit magistral? pe care circul? datele de calcul ?i datele de program (instruc?iuni) ?i sunt conduse ?n tactul unui ceas (?ir de impulsuri continuu).
Conceptual, memoria unui calculator poate fi v?zut? ca o mul?ime de ?celule“ numerotate. Fiecare celul? prime?te drept adres? un num?r unic propriu; ele pot ?nmagazina o cantitate mic?, prestabilit? de informa?ie. Informa?ia poate fi ori o instruc?iune, ori date propriu-zise. Instruc?iunile spun calculatorului ce s? fac?, iar datele sunt acele informa?ii care trebuie prelucrate conform cu instruc?iunile. ?n principiu orice celul? poate stoca (memora) atat instruc?iuni cat ?i date. Interesant este ?i cazul cand una sau mai multe instruc?iuni, deja stocate ?n memorie, sunt privite de c?tre alte instruc?iuni drept date de prelucrat/modificat ?i sunt deci ele ?nsele modificate dinamic (??n mers“), dup? necesitate.
Alte arhitecturi ?ntrebuin?ate la calculatoarele de uz general sunt de exemplu arhitectura Harvard ?i arhitectura Dataflow.
Circuite digitale (hardware)
[modificare | modificare surs?]Principiile de mai sus pot fi implementate cu o varietate de tehnologii - de ex. ma?ina lui Babbage era alc?tuit? din componente mecanice. ?ns? singura asemenea tehnologie care s-a dovedit suficient de practic? este cea a circuitelor digitale (numerice), circuite electronice care pot efectua opera?ii din algebra boolean? ?i aritmetica binar?. Dar primele ?circuite” digitale foloseau relee electromecanice pentru a reprezenta st?rile "0" (blocat) ?i "1" (conduc?ie), aranjate ?n por?i logice. Releele au fost repede ?nlocuite cu l?mpi electronice - tuburi electronice cu vid, dispozitive 100% electronice, folosite pan? atunci ?n electronica analog? pentru propriet??ile lor de amplificare, dar care au putut fi utilizate ?i drept comutatoare (elemente de baz? ?n construc?ia calculatoarelor) de stare, 1→0 sau 0→1.
Aranjand corect por?i logice binare , se pot construi circuite care execut? ?i func?ii mai complexe, de exemplu sumatoare. Sumatorul electronic adun? dou? numere folosind acela?i procedeu (?n termeni informatici, algoritm) ?nv??at de copii la ?coal?: se adun? fiecare cifr? corespondent?, iar ?transportul” este transmis c?tre cifrele din stanga. ?n consecin??, reunind mai multe asemenea circuite, se pot ob?ine o UAL ?i o unitate de control complete. CSIRAC, unul din primele calculatoare bazate pe arhitectura von Neumann ?i probabil cel mai mic asemenea calculator posibil, avea circa 2000 de l?mpi (tuburi) - deci chiar ?i pentru sisteme minimale e nevoie de un num?r considerabil de componente.
L?mpile electronice erau caracterizate de cateva limit?ri severe ?n folosirea lor pentru construc?ia por?ilor logice: erau scumpe, pu?in fiabile, ocupau mult spa?iu ?i consumau cantit??i mari de curent. De?i erau incredibil de rapide fa?? de releele electromecanice, aveau ?i ele totu?i o vitez? de operare relativ limitat?. Astfel c? ?ncepand din anii 1960 l?mpile (tuburile electronice) au fost ?nlocuite cu tranzistori, dispozitive ce func?ionau asem?n?tor, ?ns? erau mult mai mici, mai rapide, mai fiabile, mai pu?in consumatoare de curent ?i mult mai ieftine.
Din anii 1960-'70, tranzistorul a fost ?i el ?nlocuit cu circuitul integrat, care con?inea mai mul?i tranzistori, ?i firele de interconectare corespunz?toare, pe o singur? pl?cu?? de siliciu (numit? cip). Din anii '70, UAL-urile combinate cu unit??i de control (UC) au fost produse unitar ca circuite integrate, numite microprocesoare, sau CPU (Central Processing Unit/unitate de procesare central?). ?n timp, densitatea tranzistorilor din circuitele integrate a crescut incredibil, de la cateva zeci, ?n anii 70, pan? la peste 100 de milioane de tranzistoare pe circuit integrat, la procesoarele Intel ?i AMD din anul 2005.
Memorare de date
[modificare | modificare surs?]L?mpile electronice ?i tranzistorii pot fi folosite ?i pentru construirea de memorii - a?a-numitele circuite flip-flop sau ?basculante bistabile” (CBB), ?i chiar sunt folosite pentru mici circuite de memorie de mare vitez?, numite ?cu acces direct”. ?n pu?ine cazuri, designul de calculatoare a folosit bistabile pentru grosul nevoilor de memorie, memorii de amploare. Primele calculatoare foloseau tuburi Williams - ?n esen?? proiectand puncte pe un ecran TV ?i citindu-le din nou mai tarziu, sau linii de mercur, ?n care datele erau depozitate sub form? de unde sonore care parcurgeau tuburi cu mercur la vitez? mic? (comparativ cu viteza de operare a ma?inii). Aceste metode destul de neproductive au fost ?nlocuite cu dispozitive de stocare (memorare) ?n mediu purt?tor magnetic, de exemplu memoria cu miezuri magnetice de form? inelar?, ?n care un curent electric era folosit pentru a induce un camp magnetic remanent (dar slab) ?ntr-un material feros, care putea fi citit ulterior, dup? necesitate pentru a folosi datele. ?n cele din urm? a ap?rut memoria dynamic random access memory , DRAM. DRAM-ul este format din b?nci (mul?imi grupate) de condensatori, componente electrice care pot re?ine o sarcin? electric? pentru o anumit? durat? de timp. Scrierea informa?iei ?ntr-o astfel de memorie se face prin ?nc?rcarea condensatorilor cu o anumit? sarcin? electric?, iar citirea prin determinarea (?m?surarea”) sarcinii acestora (dac? este ?nc?rcat sau desc?rcat).
Periferice de intrare/ie?ire
[modificare | modificare surs?]?I/E” (?intrare-ie?ire”), sau ?n englez? I/O (de la input/output), este termenul general pentru acele dispozitive prin care un calculator prime?te informa?ii din lumea exterioar?, inclusiv instruc?iuni despre ce s? fac?, sau trimite ?napoi (?n afar?) rezultatele calculelor sau opera?iilor logice pe care le-a efectuat. Rezultatele pot fi destinate ca informa?ii oamenilor, sau pot fi folosite ?n mod direct (nemijlocit) drept decizii ?n dirijarea altor ma?ini; de exemplu ?n cazul unui robot industrial, cel mai important dispozitiv de ie?ire (dispozitiv E) al calculatorului (de robot) ?nglobat ?n el creeaz? comenzile detailate necesare pentru toate opera?iile (mi?c?rile) mecanice ale robotului propriu-zis.
Prima genera?ie de calculatoare era echipat? cu o gam? de dispozitive I/E destul de limitat? ?i cu vitez? de execu?ie redus?; de exemplu, pentru introducerea datelor de calcul ?i a instruc?iunilor de program se folosea ?n principal un cititor de cartele perforate sau un dispozitiv asem?n?tor, iar pentru afi?area rezultatelor se folosea o imprimant?, de obicei un teleimprimator modificat de tip ?telex”. De-a lungul timpului ?ns? au ap?rut o imens? diversitate de dispozitive I/E. Pentru calculatorul personal de azi, cele mai comune modalit??i de introducere direct? a datelor sunt tastaturile ?i mausurile, iar principalul mijloc prin care calculatorul prezint? informa?ii c?tre utilizator sunt monitoarele, de?i imprimantele sau dispozitivele de generat sunet sunt folosite ?i ele ?n mod obi?nuit. Alte dispozitive sunt specializate pentru numai anumite tipuri de intr?ri sau ie?iri, de exemplu aparatul foto digital ?i scanerul.
Dou? categorii principale de dispozitive sunt:
- dispozitivele secundare de stocare: dischetele, unit??ile CD, DVD, discurile dure ?i altele; capacit??ile de stocare a datelor pot diferi foarte mult ?ntre ele.
- precum ?i dispozitivele pentru conectarea la re?ele de calculatoare. Posibilitatea de a interconecta calculatoarele pentru a transfera date ?i informa?ii ?ntre ele a deschis calea unei mul?imi de noi aplica?ii. Internetul, ?i aici ?n special World Wide Web, permit miliardelor de calculatoare de pe glob s? se lege unele cu altele pentru a transfera ?ntre ele informa?ii de toate tipurile.
Instruc?iuni (software)
[modificare | modificare surs?]- Vezi articolul principal Software
Instruc?iunile interpretate de c?tre unitatea de control ?i executate de UAL nu seam?n? deloc cu limbajul uman. Calculatorul cunoa?te prin construc?ie un set relativ mic de instruc?iuni elementare, care sunt simple, bine definite ?i neambigue. Exemple de instruc?iuni sunt: ?copiaz? con?inutul celulei de memorie 5 ?i plaseaz? rezultatul ?n celula 10”, ?adun? con?inutul celulei 7 cu con?inutul celulei 13 ?i plaseaz? rezultatul ?n celula 6”, ?dac? con?inutul celulei 999 este 0 (zero), urm?toarea instruc?iune de executat se g?se?te memorat? ?n celula 30”, dac? nu, ?se urmeaz? secven?a (?irul de instruc?iuni) mai departe”.
Instruc?iunile calculatorului se ?mpart ?n patru mari categorii:
- mutare de date dintr-o loca?ie ?n alta (instruc?iuni de transfer),
- executare de opera?ii aritmetice ?i logice asupra datelor (instruc?iuni aritmetice, instruc?iuni logice),
- testare a unor condi?ii, de exemplu ?con?ine celula de memorie nr. 999 un 0?” (instruc?iuni de testare sau de condi?ie),
- modificare a secven?ei (?irului) de opera?ii (instruc?iuni de comand? propriu-zise).
?n calculator instruc?iunile ?externe” sunt memorate ?i deci reprezentate ?n cod binar, la fel ca ?i toate celelalte date de calcul (numere, litere, simboluri). De exemplu, codul ?n limbaj-ma?in? pentru una din opera?iile de copiere ?ntr-un microprocesor fabricat de firma Intel este 10110000, ?1” ?i ?0” fiind cele dou? valori logice binare ??n?elese” de microprocesor (computer, ma?in?). ?n completarea exemplului de mai sus, se poate intui c? o instruc?iune de adunare ?n respectivul Intel-microprocesor trebuie s? fie reprezentat? altfel decat cea de copiere, de exemplu 01001110. Mul?imea de instruc?iuni implementate ?ntr-un calculator (computer) formeaz? ?i este numit limbajul ma?in? al acelui calculator.
Simplificat vorbind, dac? dou? calculatoare au CPU-uri (unit??i centrale de procesare) care r?spund la fel la acela?i set de instruc?iuni, programele (executabile) scrise pentru unul pot rula ?i pe cel?lalt aproape f?r? modific?ri, dar de exemplu cu viteze diferite. U?urin?a portabilit??ii este o motiva?ie pentru proiectan?ii de calculatoare ca ei s? nu modifice radical designul existent, decat pentru motive serioase.
Programe
[modificare | modificare surs?]Programele de calculator sunt listele de instruc?iuni de executat de c?tre un calculator. Acestea pot num?ra de la cateva instruc?iuni, care ?ndeplinesc o sarcin? simpl?, pan? la milioane de instruc?iuni pe program (unele din ele executate repetat), plus tabele de date. Un calculator personal curent din anul 2008 din categoria sub 1.000 euro este capabil s? execute peste 4 miliarde de instruc?iuni pe secund?. Compunerea sau scrierea acestor programe este efectuat? de c?tre programatori, care pot fi profesioni?ti, semiprofesioni?ti sau amatori, ?n func?ie de temele de rezolvat ?i mediul de dezvoltare.
?n practic?, programele nu se mai scriu demult ?n limbajul ma?in? al calculatorului. Scrierea ?n limbaj-ma?in? era extrem de laborioas? ?i erorile se puteau strecura u?or, ceea ce putea provoca sc?derea productivit??ii la programare. Actualmente programele dorite sunt de obicei descrise/scrise ?ntr-un limbaj de programare de nivel mai ridicat (superior), care, ?nainte de a putea fi executat, este tradus automat ?n limbaj-ma?in? de c?tre programe specializate (interpretoare ?i compilatoare), adic? ?ntr-o ?limb?” inteligibil? ma?inii de calcul (computerului).
Unele limbaje de programare sunt foarte strans legate de limbajul ma?in? de la baza calculatorului, ca de ex. limbajul de asamblare, de aceea sunt numite limbaje de ?nivel jos”. La cealalt? extrem? se situeaz? limbajele de ?nivel ?nalt”, de ex. C++, Java, Lisp, Visual Basic ?.a. Acestea ofer? programatorilor posibilitatea oper?rii cu concepte foarte abstracte, complexe, a c?ror implementare concret? la nivelul de jos nu mai intereseaz? (dac? interpretorul sau compilatorul func?ioneaz? corect). Limbajul ales pentru o anume problem? depinde ?n primul rand chiar de natura problemei, de competen?a profesional? a programatorilor, de disponibilitatea uneltelor de proiectare precum ?i de bugetul disponibil.
Programele mai sunt numite ?i software, ele putand fi memorate permanent sau/?i doar memorabile temporar; ?ns? software-ul poate include, pe lang? programele propriu-zise, ?i material auxiliar, cum ar fi date grafice, ?n cazul unui joc pe calculator.
Instrumentele moderne de proiectare software precum ?i tehnicile de programare ce pun accentul pe reutilizarea codului (de ex. programarea orientat? pe obiecte) fac posibil? realizarea unor programe complexe, constituite din zeci de milioane de instruc?iuni; de exemplu browserul Firefox al organiza?iei Mozilla se compune din peste 2 milioane de linii de cod ?n limbajul C++. Gestiunea acestor programe complexe face obiectul unei ?tiin?e numite ingineria program?rii.
Cod ma?in?
[modificare | modificare surs?]
?n cele mai multe calculatoare, instruc?iunile individuale sunt stocate sub form? de cod ma?in?, fiec?rei instruc?iuni atribuindu-i-se un num?r unic (cod de opera?ie sau opcod pe scurt).[4] Comanda pentru a ad?uga dou? numere ?mpreun? ar avea un opcode; comanda de a le multiplica ar avea un opcod diferit, ?i a?a mai departe. Cele mai simple calculatoare sunt capabile s? efectueze oricare din cateva diferite instruc?iuni; calculatoarele mai complexe au cateva sute de instruc?iuni din care s? aleag?, fiecare cu un cod numeric unic. ?ntrucat memoria calculatorului este capabil? s? stocheze numere, se pot stoca, de asemenea, codurile de instruire. Aceasta conduce la faptul important c? programe ?ntregi (care sunt chiar listele cu aceste instruc?iuni) pot fi reprezentate ca liste de numere ?i pot fi manipulate ?n interiorul calculatorului ?n acela?i mod ca datele numerice. Conceptul fundamental de a stoca programe ?n memoria calculatorului al?turi de datele pe care le opereaz? e punctul cheie von Neumann, sau al arhitecturii programului de memorat. ?n unele cazuri, un calculator poate stoca unele sau toate programele sale ?n memorie care este ?inut? separat de datele cu care opereaz?. Aceasta se nume?te arhitectura Harvard, dup? computerul Harvard Mark I. Calculatoare moderne von Neumann includ unele tr?s?turi ale arhitecturii Harvard ?n proiectele lor, cum ar fi cache-ul CPU.
De?i este posibil s? se scrie Program (informatic?)|programe de calculator]] ca liste lungi de numere (limbaj ma?in?), aceast? tehnic? fiind folosit? pe multe alte calculatoare timpurii,[Note 1] este extrem de obositor ?i poten?ial predispus? la erori ?n acest sens, ?n practic?, ?n special pentru programele mai complicate. ?n schimb, fiec?rei instruc?iuni de baz? i se poate da un nume scurt care indic? func?ia sa ?i este u?or de ?inut minte - un mnemonic, cum ar fi ADD, SUB, MULT sau JUMP. Aceste mnemonice sunt colectiv cunoscut sub numele de limbaj de asamblare al unui computer. Conversia programelor scrise ?n limbaj de asamblare ?n ceva ce computerul poate ?n?elege de fapt (limbaj ma?in?) se face de obicei de c?tre un program de calculator numit de asamblare.[5]
Majoritatea covar?itoare a programelor practice de ast?zi sunt scrise ?n limbaje de nivel superior sau limbaj de asamblare. Codul surs? este apoi tradus ?n cod ma?in? executabil de utilitare precum compilatoare, asambl?ri ?i linkere, cu excep?ia important? a programelor interpretate,[Note 2] care nu sunt traduse ?n cod ma?in?. Cu toate acestea, interpretul ?nsu?i, care poate fi v?zut ca un executor sau procesor care execut? instruc?iunile codului surs?, const? de obicei din cod ma?in? executabil direct (generat din ansamblu sau cod surs? de limbaj la nivel ?nalt).
Codul ma?inii este, prin defini?ie, cel mai sc?zut nivel de programare vizibil programatorului, dar la nivel intern multe procesoare utilizeaz? microcod sau optimizeaz? ?i transform? instruc?iunile codului ma?inii ?n secven?e de micro-op-uri. Acesta nu este ?n general considerat a fi un cod ma?in?.
Pamela Samuelson a scris despre codul ma?in? c[ este atat de ilizibil ?ncat Oficiul pentru Drepturile de Autor din Statele Unite nu poate identifica dac? un anumit program codificat este o oper? original? de autor; codul ma?in? al unui program poate fi uneori decompilat pentru a face func?ionarea sa mai u?or de ?n?eles de c?tre oameni.[6]
Profesorul de ?tiin?e cognitive Douglas Hofstadter a comparat codul ma?in? cu codul genetic, spunand c? ?Citirea unui program scris ?n limbajul ma?inii este vag comparabil? cu examinarea unei molecule de ADN atom cu atom”.[7]
Limbaje de programare
[modificare | modificare surs?]Limbajele de programare ofer? diferite moduri de a specifica programe pentru calculatoare pentru a le rula. Spre deosebire de limbajele naturale, limbajele de programare sunt concepute pentru a nu permite nicio ambiguitate, ?i s? fie concise. Ele sunt limbaje doar scrise ?i sunt adesea dificil de citit cu voce tare. Ele sunt, ?n general, fie traduse ?n cod ma?in? de un compilator sau un asamblor ?nainte de a fi rulate, fie traduse direct ?n timpul rul?rii de c?tre un interpretor. Uneori programele sunt executate printr-o metod? hibrid? de cele dou? tehnici.[4]
Limbaje de nivel inferior
[modificare | modificare surs?]Limbajele ma?in? ?i limbajele de asamblare care le reprezint? (denumite colectiv limbaje de programare de nivel inferior) tind s? fie unice pentru un anumit tip de calculator. De exemplu, un calculator cu arhitectura ARM (cum pot fi ?ntr-un PDA sau un joc video portabil) nu poate ?n?elege limba ma?in? a unui calculator cu Pentium Intel sau AMD Athlon 64, care s-ar putea g?si ?ntr-un PC.
Limbaje de nivel superior
[modificare | modificare surs?]De?i mult mai u?or decat ?n limbajul ma?in?, scrierea programelor lungi ?n limbaj de asamblare este adesea dificil? ?i este, de asemenea, predispus? la erori. Prin urmare, cele mai multe programe practice sunt scrise ?n limbaje de programare de nivel superior, mai abstracte, care sunt capabile s? exprime nevoile programatorului mai convenabil (?i prin aceasta contribuie la reducerea erorilor programatorului). Limbajele de nivel superior sunt, de obicei, "compilate" ?n limbaj ma?in? (sau, uneori, ?n limbaj de asamblare ?i apoi ?n limbaj ma?in?), folosind un alt program de calculator numit compilator. Limbajele de nivel superior sunt mai pu?in legate de modul de func?ionare al computerului ?int? decat limbajele de asamblare, ?i mai mult legate de limbajul ?i structura problemei care trebuie solu?ionat? de c?tre programul final. Prin urmare, este adesea posibil s? se utilizeze diferite compilatoare pentru a traduce acela?i program de limbaj de nivel superior ?n limbajele ma?in? ale multor tipuri diferite de calculator. Aceasta este o parte din mijloacele prin care software-ul, ca jocurile video, pot fi puse la dispozi?ie pentru diferite arhitecturi de calculatoare, cum ar fi calculatoarele personale ?i diverse console de jocuri video.
Biblioteci ?i sisteme de operare
[modificare | modificare surs?]Nu cu mult timp dup? dezvoltarea calculatorului s-a constatat c? acelea?i rutine (p?r?i de program (subprograme) cu scop bine definit) se pot uneori folosi ?n mai multe programe diferite; un exemplu fiind calcularea unor func?ii matematice. Din motive de eficien??, versiunile standard ale acestor rutine au ?nceput s? fie adunate ?n biblioteci de programe (?n englez?: library, libraries) ?i puse la dispozi?ia tuturor celor interesa?i. Un alt set foarte necesar de rutine s-a dovedit a fi comunicarea cu diversele dispozitive de I/E (disp. periferice de intrare/ie?ire).
?n anii 1960 calculatoarele au ?nceput s? fie folosite pe larg ?n industrie ?i economie, iar un calculator a putut fi folosit la executarea simultan? a multor sarcini, prin intercalarea ?n timp a programelor. Curand a ap?rut ?i software (sistem de program cu instruc?iuni) specializat ?n automatizarea planific?rii acestor sarcini. Combina?ia ?ntre un software gestionar al hardware-ului ?i un software planificator de sarcini a devenit cunoscut? sub numele de ?sistem de operare” (englez?: operating system). Un prim exemplu de sistem de operare a fost sistemul OS/360 al companiei americane IBM.
Urm?torul pas major a fost partajarea timpului (time sharing), prin care mai mul?i utilizatori (clien?i) pot folosi o ma?in? simultan. Pentru aceasta programele fiec?ruia se p?streaz? ?n memorie, executandu-se pe rand por?iuni din aceste programe pentru o perioad? scurt? de timp (?felie de timp”, time slice), astfel oferind fiec?rui utilizator (client) iluzia c? computerul lucreaz? doar pentru el. Modul de stocare (memorare) a datelor a evoluat ?i el, ap?rand conceptul de ?sistem de fi?iere” (file system), ?n care fi?ierele sunt dispuse pe purt?torul de date ?ntr-o structur? ierarhic? de ?directoare” sau ?dosare”.
O ad?ugire major? ?n domeniul sistemelor de operare a fost acum ca?iva ani o interfa?? grafic? cu utilizatorul (englez?: graphic user interface, GUI).
?n afara acestor func?ii de baz?, sistemele de operare con?in deseori ?i o trus? de unelte suplimentare, care par?ial sunt extrem de func?ionale ?i complexe/sofisticate.
Calculatoarele integrate vin cu sisteme de operare mult mai mici ?i mai limitate ?n func?iuni, unele chiar f?r? sistem de operare. ?n acest caz programul foarte specializat care le conduce efectueaz? chiar el toate opera?iile necesare.
Variante constructive de calculatoare
[modificare | modificare surs?]Calculatoarele de ast?zi se produc ?n numeroase forme ?i prezent?ri:
- Probabil cel mai familiar este calculatorul personal (de tip PC sau ?i altele) cu subvariantele sale constructive:
- Calculatoarele tablet? (de tip PC ?i altele).
- Urm?toarele dispozitive de dat? mai recent? sunt ?n sine tot calculatoare programabile (fie numai ?n fabric?, fie ?i de c?tre utilizator): toate telefoanele portabile celulare de tip smartphone, toate calculatoarele de tip tablet?, unele playere multimedia ca de ex. cele de tip iPod de la compania Apple; unii produc?tori ofer? ?i tipuri combinate, de ex. un notebook cu tastatura deta?abil? poate fi utilizat ?i drept calculator tablet?.
- Calculatoare simple, de exemplu cele de buzunar.
- Calculatoare rapide, folosite la a?a-numitele ?ferme” de servere; de obicei acestea nu sunt deservite de utilizatori umani ?i deci nu este necesar s? fie ergonomice. Pentru ele se folose?te deseori forma de paralelipiped, care permite o stivuire compact?.
- Calculatoare profesioniste de mare vitez? ?i mari dimensiuni, cum sunt cele de tip mainframe.
- Aparate ?i dispozitive speciale: console de jocuri electronice; case electronice de ?ncasat; afi?oare de c?r?i ?i medii electronice de tip E-book; scanerele, imprimantele, chiar ?i televizoarele ?i aparatele de redare DVD ?i Blu-ray actuale con?in elemente digitale de control care sunt, ?ntr-un fel, componente de calcul; robo?i de toate genurile; elementele de comand? pentru ma?ini-unelte de tip CNC ?i multe altele.
- Cea mai r?spandit? form? este ?ns? cea a calculatorului integrat (embedded), adic? ?nglobat complet ?n dispozitivul pe care ?l comand?. Acesta este ?n general preprogramat din fabric?, iar utilizatorul nu prime?te posibilitatea s?-i schimbe programul. Multe ma?ini ?i aparate, de la avioanele de lupt? pan? la aparatele foto digitale ?i la aparatele de naviga?ie bazate pe sistemul GPS, sunt controlate de calculatoare integrate. Un alt exemplu de calculator integrat este calculatorul de bord al automobilelor.
Utilizare
[modificare | modificare surs?]Primele calculatoare electronice digitale, fiind foarte mari ?i scumpe, erau folosite la calcule ?tiin?ifice complicate, de multe ori pentru scopuri militare. ENIAC-ul a fost proiectat pentru calculul tirurilor de artilerie, dar a fost folosit ?i la calculul densit??ilor transversale de neutroni, ?n proiectarea bombei cu hidrogen. Multe din supercalculatoarele contemporane sunt folosite pentru simul?ri de arme nucleare. Alte calculatoare au fost utilizate ?n criptanaliz?, de exemplu primul calculator electronic programabil, Colossus.
?n ciuda concentr?rii de la ?nceput pe aplica?ii ?tiin?ifice ?i militare, calculatoarele au ?nceput repede s? fie adoptate ?i ?n alte domenii, precum cel al afacerilor. LEO, unul din primele calculatoare bazate pe arhitectura von Neumann, era folosit la gestiunea stocurilor ?nc? din anii 1950. O dat? cu apari?ia microprocesoarelor ?i ieftinirea semnificativ? a calculatoarelor, acestea ?i-au g?sit aplicare ?n contabilitate, birotic?, alc?tuirea de previziuni meteo ?i de alt? natur?, ?n calculele matematice repetitive precum ?i ?n calcul tabelar.
?n domeniul artelor, calculatoarele sunt ?ntrebuin?ate pentru generarea ?i editarea de sunet, imagini ?i video. Ast?zi aceste activit??i sunt efectuate aproape exclusiv pe calculator (computer). De asemenea, industria jocurilor pe calculator este una foarte lucrativ?.
Calculatoarele au putut fi folosite pentru comanda mecanismelor (dispozitivelor electromecanice) din momentul ?n care au devenit suficient de mici ?i de ieftine pentru acest scop. Primele aplica?ii majore pentru calculatoarele integrate au fost ghidarea misiunilor Apollo ?i a rachetelor Minuteman. Ast?zi se ?ntalnesc din ce ?n ce mai rar echipamente mecanice care s? nu fie comandate ?ntr-o form? sau alta de un calculator. Unele din cele mai complexe asemenea echipamente sunt robo?ii industriali, ma?ini mai mult sau mai pu?in asem?n?toare omului ?i aptitudinilor sale. Calculatoarele sunt din ce ?n ce mai mult utilizate ?n domotic?, pentru aplica?ii casnice de genul ?dac? cineva e acas?, computerul deschide televizorul la 7 seara“ sau ?reduce c?ldura noaptea”.
Robo?ii industriali sunt o prezen?? obi?nuit? ?n produc?ia de mas?, ?ns? robo?ii umanoizi ?nc? nu au ajuns la nivelul la care sunt portretiza?i ?n literatura de anticipa?ie SF ?i sunt ast?zi doar juc?rii sau subiecte de cercetare. De asemenea, progresul inteligen?ei artificiale ?n crearea unui calculator cu ?inteligen??” electronic? la nivelul celei omene?ti a fost pan? acum extrem de lent, de?i de-a lungul timpului s-au dezvoltat metode care permit calculatoarelor s? ?ndeplineasc? destul de bine sarcini despre care ini?ial se b?nuia c? ar fi prin excelen?? umane, cum ar fi jocurile ?ah ?i go, sau citirea scrisului de man? (analogic).
Re?ele de calculatoare ?i Internetul
[modificare | modificare surs?]?n anii 1970 inginerii de la institutele de cercetare militare din SUA au ?nceput s? ??i interconecteze calculatoarele folosind tehnologia telecomunica?iilor. Re?elele de calculatoare au avut caracter coordonator-subordonat, adic? structura respectiv? con?inea calculatoare ?egale ?n drepturi”, dar care erau supuse comenzilor unui calculator principal, ?dirijor”. Proiectul a fost sprijinit de c?tre agen?ia DARPA a ministerului ap?r?rii, iar re?eaua de calculatoare care a luat astfel na?tere s-a numit Arpanet.
?n timp, re?eaua Arpanet s-a extins enorm, dincolo de scopul ei ini?ial academic ?i militar, ?i a devenit cunoscut? sub numele de Internet. Evolu?ia re?elelor a adus cu sine o redefinire a naturii ?i limitelor unui calculator. ?n cuvintele lui John Gage ?i Bill Joy (de la firma Sun Microsystems), ?the network is the computer“ — ?re?eaua este calculatorul“. Sistemele de operare ?i aplica?iile computerelor s-au modificat, incluzand acum capacitatea de a defini ?i accesa resurse de pe alte calculatoare din re?ea (fie programe ?i informa?ii, fie dispozitive conectate la ele), ca extensii ale resurselor locale. Ini?ial aceste facilit??i erau disponibile numai celor care lucrau ?n medii de ?nalt? tehnologie, ?ns? din anii 1990, odat? cu r?spandirea aplica?iilor ca de exemplu e-mail sau World Wide Web, ?i cu dezvoltarea tehnologiilor de conectare ?n re?ea ieftine ?i rapide precum Ethernet sau ADSL, re?elele de calculatoare au p?truns practic ?n toate domeniile vie?ii.
Concepte de viitor
[modificare | modificare surs?]Au fost explorate, cu diferite grade de succes, mai multe tehnologii noi de computer care pot ?nlocui sau suplimenta computerele actuale:
- calculator cuantic
- calculator cu ADN
- calculator fotonic
- calculator neural
- calculator ternar
- procesor autosincron
- procesor asincron
Vezi ?i
[modificare | modificare surs?]- Desktop
- Computer personal
- Calculator portabil
- Calculator de buzunar
- Calculator de bord - pentru vehicule auto
- Informatic?
- Ingineria calculatoarelor
- Ingineria program?rii
- Girder
- Overclocking
- Vitez? de procesare
- Putere de calcul
- Patologia de calculator
Note explicative
[modificare | modificare surs?]- ^ Chiar ?i unele calculatoare ulterioare au fost programate ?n mod obi?nuit direct ?n cod ma?in?. Unele minicalculatoare precum DEC PDP-8 ar putea fi programate direct dintr-un panou de comutatoare. Cu toate acestea, aceast? metod? a fost utilizat? de obicei doar ca parte a procesului de pornire. Majoritatea calculatoarelor moderne pornesc automat citind un program de pornire dintr-o memorie nevolatil?.
- ^ Precum multe versiuni de BASIC, ?n special cele mai vechi, precum ?i Smalltalk, MATLAB, Perl, Python, Ruby ?i alte limbaje speciale sau de script.
Referin?e
[modificare | modificare surs?]- ^ stanamirescu oncu radian. [4537132 ?citate web”] Verifica?i valoarea
|url=
(ajutor). radian. Accesat ?n . - ^ Hupp, Stephen L. (octombrie 1998), ?Landmark Documents in American History. Version 2.0.98111Landmark Documents in American History. Version 2.0.. 11 Penn Plaza, New York, NY 10001: Facts on File 1998. , ISBN: 08160‐3618‐7 Macintosh, ISBN: 08160‐3647‐0 Windows, ISBN: 08160‐3616‐0 DOS $149.95 single user, ISBN: 08160‐3618‐7 Macintosh, ISBN: 08160‐3647‐0 Windows, ISBN: 08160‐3616‐0 DOS $499.95 lab packs (5 CD‐ROMs), ISBN: 08160‐3618‐7 Macintosh, ISBN: 08160‐3647‐0 Windows, ISBN: 08160‐3616‐0 DOS $499.95 up to 5 simultaneous users, ISBN: 08160‐3618‐7 Macintosh, ISBN: 08160‐3647‐0 Windows, ISBN: 08160‐3616‐0 DOS $30 6‐49 simultaneous users, ISBN: 08160‐3618‐7 Macintosh, ISBN: 08160‐3647‐0 Windows, ISBN: 08160‐3616‐0 DOS $25 50‐99 simultaneous users, ISBN: 08160‐3618‐7 Macintosh, ISBN: 08160‐3647‐0 Windows, ISBN: 08160‐3616‐0 DOS $20 100‐499 simultaneous users, ISBN: 08160‐3618‐7 Macintosh, ISBN: 08160‐3647‐0 Windows, ISBN: 08160‐3616‐0 DOS $15 500‐999 simultaneous users, ISBN: 08160‐3618‐7 Macintosh, ISBN: 08160‐3647‐0 Windows, ISBN: 08160‐3616‐0 DOS $10 1000+ simultaneous users”, Electronic Resources Review, 2 (10), pp. 120–121, doi:10.1108/err.1998.2.10.120.111, ISSN 1364-5137, accesat ?n
- ^ MONITOR., WHOLE SKY, URL., OCLC 796720402, accesat ?n
- ^ a b ?Programe pe calculator”. SetThings.com. Accesat ?n .
- ^ Sfetcu, Nicolae (). ?ntre?inerea ?i repararea calculatoarelor. MultiMedia Publishing. ISBN 978-606-033-069-1.
- ^ Samuelson, Pamela (). ?CONTU Revisited: The Case against Copyright Protection for Computer Programs in Machine-Readable Form”. Duke Law Journal. 1984 (4): 663–769. doi:10.2307/1372418. ISSN 0012-7086. JSTOR 1372418. Arhivat din original la . Accesat ?n .
- ^ D. Hofstadter (). ?G?del, Escher, Bach: An Eternal Golden Braid”: 290.
Leg?turi externe
[modificare | modificare surs?]- Am intrat ?n era ?n care computerele preiau controlul, 5 septembrie 2011, Marius Comper, Descoper?
- Femeile-computer: armele secrete ale americanilor ?n cel de-al Doilea R?zboi Mondial, 10 aprilie 2013, Descoper?
- Calculatorul, un rau necesar, 8 noiembrie 2005, Robert Daly/stone/getty Images/guliver, Jurnalul Na?ional
- Sfetcu, Nicolae (). ?ntre?inerea ?i repararea calculatoarelor. MultiMedia Publishing. ISBN 978-606-033-069-1.