Informatică

Termenul informatică desemnează știința procesării sistematice a informației, în special a procesării cu ajutorul calculatoarelor. Termenul englezesc corespunzător este Computer Science (știința calculatoarelor).

Istoric, informatica s-a dezvoltat ca știință din matematică, în timp ce dezvoltarea primelor calculatoare își are originea în electrotehnică și telecomunicații. De aceea, calculatorul reprezintă doar dispozitivul pe care sunt implementate conceptele teoretice. Informaticianul olandez Edsger Dijkstra afirma: "În informatică ai de-a face cu calculatorul, așa cum ai în astronomie cu telescopul".

A nu se confunda informatica nici cu Tehnologia informației și nici cu teoria informației.

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 limba engleză la 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 calculator sau computer uman.

În perioada anilor 1970, 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.

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 fiecărui 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 înregistratorul video sau mașina de spălat, în care sunt înglobate așa-numitele sisteme înglobate sau îmbarcate (în engleză embedded Systems), care fac parte integrantă din aparat și care asigură acestor aparate un comportament mai mult sau mai puțin "inteligent". Printre altele, telefoanele inteligente, care sunt adevărate calculatoare, au permis democratizarea utilizării informatice pe scară extrem de largă.

Calculatoarele sau computerele pot administra, memoriza, 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 partea fizică sau echipament (în engleză hardware) și partea logică sau programele (în engleză software), care reprezintă domeniile fundamentale de cercetare în Informatică.

Marele avantaj al sistemelor computaționale constă în capacitatea 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 deciziilor 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.

Disciplinele informaticii 
Informatica se divide în următoarele domenii fundamentale:
 informatică teoretică
 informatică  aplicată
 informatică tehnică

Pe lângă aceste trei domenii principale, mai există:
 inteligență artificială, considerată drept interdisciplinară, î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 bază 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 teoretice se constituie 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ă, găsirea soluțiilor se face în așa fel încât să se obțină o cât mai mică dependență de electronică.

Rezultatele își găsesc în final utilizarea în informatica aplicată. Acestui domeniu îi revine realizarea echipamentelor și a programelor (hardware și software), prin urmare și marea parte a pieței tehnologiei informației TI ( în engleză Information Technology - 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ă.

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.

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, dau un rezultat.

Un automat finit 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 independent 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)

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. În 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.

Vezi și 
 Istoria informaticii
 Inteligență artificială
 Limbaj de programare
 Programare
 Tehnologia informației
 Bioinformatică

Legături externe