Informatică
De la Wikipedia, enciclopedia liberă
Termenul informatică desemnează ştiinţa procesării sistematice a informaţiei, în special a procesării cu ajutorul calculatoarelor. Termenul englez corespunzător este Computer Science (stiinţa calculatoarelor).
Istoric, informatica s-a dezvoltat ca ştiinţă din matematică, în timp ce dezvoltarea primelor calulatoare îşi are originea în electrotehnică şi telecomunicaţii. De aceea, calculatorul reprezintă doar dispozitivul pe care sunt implementate conceptelor teoretice. Informaticianul olandez Edsger Dijkstra afirma: "În informatică ai de-a face cu calculatorul, aşa cum ai în astronomie cu telescopul".
| Portal Informatică |
Cuprins |
[modifică] Etimologie şi istorie
Termenul informatică provine din alăturarea cuvintelor informaţie şi matematică. Alte surse susţin că provine din combinaţia informaţie şi automatică.
Istoria informaticii începe înainte de momentul apariţiei computerului digital. Înainte de anul 1920, termenul de "computer" se referea în l. engleză la un o persoană care efectua calcule (un funcţionar). Primii cercetători în ceea ce avea să se numească informatică, cum sunt Kurt Gödel, Alonzo Church şi Alan Turing, au fost interesaţi de problema computaţională: ce informaţii ar putea un funcţionar uman să calculeze având hârtie şi creion, prin urmărirea pur şi simplu a unei liste de instrucţiuni, atât timp cât este necesar, fără să fie nevoie ca el să fie inteligent sau să presupună capacităţi intuitive. Una din motivaţiile acestui proiect a fost dorinţa de a proiecta şi realiza "maşini computaţionale" care să automatizeze munca, deseori plictisitoare şi nu lipsită de erori, a unui computer uman.
În perioada anilor 1940, când maşinile computaţionale au cunoscut o evoluţie accelerată, termenul de "computer" şi-a modificat semnificaţia, referindu-se de acum mai degrabă la maşini, decât la predecesorii săi umani.
[modifică] Importanţa informaticii
În prezent, informatica îşi găseşte aplicaţii în toate domeniile vieţii. Prezenţa ei este puternic amplificată de impactul pe care îl are Internetul. Reţeaua la nivel mondial a revoluţionat comunicarea dintre companii, logistica, mass media, dar şi viaţa privată a fiecarui individ. Mai puţin vizibil, dar totuşi omniprezent, informatica şi-a câştigat un loc stabil până şi în aparatele casnice, ca de exemplu video recorder-ul sau maşina de spălat, în care sunt inglobate aşa-numitele embedded Systems (sisteme inglobate), care asigură acestor aparate un comportament mai mult sau mai puţin "inteligent".
Computerele pot administra, proteja, transmite şi prelucra o mare cantitate de date într-un timp scurt. Pentru efectuarea unor astfel de operaţii este necesară o interacţiune complexă între sistemele de hardware şi de software, care reprezintă domeniile fundamentale de cercetare în Informatică.
Marele avantaj al sistemelor computaţionale constă în capacitate lor de a prelucra în mod schematic cantităţi enorme de informaţii la o viteză foarte mare. S-a încercat şi implementarea capacităţilor perceptive ale omului în sistemele informatice, însă până în prezent cu un succes foarte limitat. Un exemplu în această direcţie îl constituie sistemele de recunoaştere a chipului uman, sau/şi de luare a deciziior atunci când nu se dispune de toate datele necesare. Astfel de procese sunt studiate de o ramură specializată a informaticii, inteligenţa artificială. Astfel, în anumite discipline restrânse pot fi obţinute deja rezultate remarcabile. Totuşi nu se poate încă vorbi despre o modelizare a inteligenţei umane.
Ca sistem ştiinţific fundamental, informatica are, la fel ca şi matematica, implicaţii profunde în multe alte domenii ale ştiinţei. Dacă prin matematică se înţelege un "sistem de gândire formal", atunci informatica se concentrează pe ceea ce este "formal realizabil", adică ceea ce este realizabil din punctul de vedere al maşinii. Studierea problemelor informaticii poate să se apropie foarte mult de filozofie.
[modifică] Disciplinele informaticii
Informatica se divide în următoarele domenii fundamentale:
Pe lângă aceste trei domenii principale, mai există:
- inteligenţă artificială, considerată drept interdisciplină, într-o anumită măsură de sine stătătoare.
Utilizarea informaticii în diferite domenii ale vieţii de zi cu zi, ca de exemplu în economie, geografie,domeniul medical, este cuprinsă în termenul de informatică aplicată.
Informatica teoretică poate fi considerată ca baza pentru alte domenii derivate. Aceasta asigură cunoştinţele fundamentale pentru decidabilitatea unei probleme, sistematizarea complexităţii şi pentru formalizarea automatelor şi a limbajelor formale.
Pe aceste fundamente se constitue informatica practică şi informatica tehnică. Acestea se ocupă cu problemele centrale ale prelucrării informaţiei şi oferă soluţii pragmatice şi adaptabile. În acest punct cele doua domenii de dezvoltare sunt strâns legate unul de altul, diferenţiindu-se prin apropierea sau depărtarea de microelectronică. Din punctul de vedere al informaticii, electronica nu reprezintă decât un instrument şi nu un domeniu central de cercetare. În informatica practică, gasirea soluţiilor se face în aşa fel încât să se obţină o cât mai mică dependenţă de electronică.
Rezultatele işi găsesc în final utilizarea în informatica aplicată. Acestui domeniu îi revine realizarea hardware şi software, prin urmare şi marea parte a pieţei IT. În domeniile interdisciplinare se fac cercetări pentru găsirea posibilelor soluţii pe care tehnologia informaţiei le-ar putea oferi. Astfel se poate menţiona aici dezvoltarea de sisteme geoinformaţionale, sau informatică economică ori bioinformatică.
[modifică] Informatica teoretică
Informatica teoretică se ocupă cu studiul teoriei limbajelor formale, respectiv automatica, teoria computaţională şi complexităţii, teoria grafurilor, criptologie, logică ş.a. punând bazele pentru construirea compilatoarelor pentru limbajele de programare şi pentru formalizarea problemelor din matematică. Ea este, prin urmare, coloana vertebrală a informaticii.
[modifică] Automate şi limbaje formale
Automatele sunt în informatică maşini teoretice, având un comportament bine definit printr-o serie de reguli (algoritm), care alcătuiesc un program. Algoritmul reprezintă o mulţime finită de instrucţiuni, care, efectuate într-o ordine anume, ne dau un rezultat.
Un automat are finalitate prin aceea că, plecând de la orice stare în care se poate afla el la un moment dat, se ajunge la o stare finală bine determinată prin program. Desigur însă că se pot construi şi programe cu elemente aleatorii sau pseudoaleatorii.
Automatul primeşte la intrare un aşa numit "cuvânt de intrare" şi, în funcţie de ceea ce este programat să facă, va urma un şir de paşi predefiniţi (algoritmul), pentru a ajunge la un rezultat final. Un automat are o singură stare de pornire şi un număr de stări finale bine determinate. În momentul în care automatul a ajuns într-o stare finală, după ce a parcurs toate stările intermediare corespunzătoare, se poate afirma că cuvântul de la intrarea automatului este acceptat. Mulţimea tuturor cuvintelor acceptate de un automat compun ceea ce se numeşte limbajul automatului.
Pentru a putea accepta limbaje complicate, este nevoie de alte modele de automate, care în primul rând trebuie sa dispună de capacitate de memorare. Mulţimea tuturor cuvintelor care se compun dintr-o secvenţă care conţine un număr egal de litere "a" şi de litere "b" constituie un aşa numit limbaj independente de context, pentru care este nevoie de un "automat cu memorie" (numit şi "automat push-down"). Un astfel de automat are la dispoziţie o stivă de memorii, cu posibilitatea de a sesiza de câte ori litera "a" a fost citită şi încă neasociată - şi deci de câte ori trebuie să mai apară litera "b".
Lingvistul Noam Chomsky a clasificat limbajele formale într-o ierarhie după cum urmează:
- Limbaje regulate (engl.: Regular Language)
- Limbaje independente de context (engl.: Context-free Language)
- Limbaje dependente de context (engl.: Context-sensitive Language)
- Limbaje recursiv enumerabile (engl.: Recursively enumerable Language)
[modifică] Teoria computaţională
În teoria computaţională, informatica teoretică studiază posibilităţile de rezolvare a unei probleme cu o anumită maşină. Teza Curch-Turing susţine că orice problemă intuitivă care poate avea o soluţie, deci computabilă, poate fi rezolvată de o maşină MAA - maşină cu acces aleator sau şi de maşina Turing, prin urmare neexistând o maşină care să fie limitată computaţional. Aceasta teză nu este demonstrabilă în mod formal, fiind totuşi universal acceptată. Se spune că un model de sistem computaţional, respectiv un limbaj de programare, este "Turing complet compatibil", dacă cu acesta se poate simula maşina universală Turing. Toate computerele actuale sunt "Turing complet compatibile", aceasta însemnând că se poate găsi o soluţie pentru orice problemă decidabilă. Termenul de decidabilitate poate fi descris ca o întrebare dacă o problemă anume este rezolvabilă algoritmic sau nu. Astfel, de exemplu, problema celui mai mic multiplu comun a două numere este o problemă decidabilă. O problemă nedecidabilă este de exemplu întrebarea dacă un computer, dându-i-se anumiţi parametri de intrare, va ajunge vreodată la rezultat, fapt cunoscut sub numele de problema Halt. In teoria computaţională se cercetează ce maşini se pot utiliza pentru efectuarea unei funcţii date. Astfel funcţia Ackermann de exemplu este rezolvată nu prin clasa programelor de tip loop, ci prin mai eficienta clasă a programelor de tip while.