Termenul informatica desemneaza stiinta procesarii sistematice a informatiei, īn special a procesarii cu ajutorul calculatoarelor. Termenul englez corespunzator este Computer Science (stiinta calculatoarelor). Istoric, informatica s-a dezvoltat ca stiinta din matematica, īn timp ce dezvoltarea primelor calulatoare īsi are originea īn electrotehnica si telecomunicatii. De aceea, calculatorul reprezinta doar dispozitivul pe care sunt implementate conceptelor teoretice. Informaticianul olandez Edsger Dijkstra afirma: "Īn informatica ai de-a face cu calculatorul, asa cum ai īn astronomie cu telescopul". A nu se confunda informatica nici cu Tehnologia informatiei si nici cu teoria informatiei.
ETIMOLOGIE SI ISTORIE
Termenul informatica provine din alaturarea cuvintelor informatie si matematica. Alte surse sustin ca provine din combinatia informatie si automatica. Alan Turing (1912-1954) Istoria informaticii īncepe īnainte de momentul aparitiei computerului digital. Īnainte de anul 1920, termenul de "computer" se referea īn limba engleza la un o persoana care efectua calcule (un functionar). Primii cercetatori īn ceea ce avea sa se numeasca informatica, cum sunt Kurt Gödel, Alonzo Church si Alan Turing, au fost interesati de problema computationala: ce informatii ar putea un functionar uman sa calculeze avānd hārtie si creion, prin urmarirea pur si simplu a unei liste de instructiuni, atāt timp cāt este necesar, fara sa fie nevoie ca el sa fie inteligent sau sa presupuna capacitati intuitive. Una din motivatiile acestui proiect a fost dorinta de a proiecta si realiza "masini computationale" care sa automatizeze munca, deseori plictisitoare si nu lipsita de erori, a unui computer uman. Īn perioada anilor 1970, cānd masinile computationale au cunoscut o evolutie accelerata, termenul de "computer" si-a modificat semnificatia, referindu-se de acum mai degraba la masini, decāt la predecesorii sai umani.
IMPORTANTA INFORMATICII
Īn prezent, informatica īsi gaseste aplicatii īn toate domeniile vietii. Prezenta ei este puternic amplificata de impactul pe care īl are Internetul. Reteaua la nivel mondial a revolutionat comunicarea dintre companii, logistica, mass media, dar si viata privata a fiecarui individ. Mai putin vizibil, dar totusi omniprezent, informatica si-a cāstigat un loc stabil pāna si īn aparatele casnice, ca de exemplu video recorder-ul sau masina de spalat, īn care sunt inglobate asa-numitele embedded Systems (sisteme inglobate), care asigura acestor aparate un comportament mai mult sau mai putin "inteligent". Computerele pot administra, proteja, transmite si prelucra o mare cantitate de date īntr-un timp scurt. Pentru efectuarea unor astfel de operatii este necesara o interactiune complexa īntre sistemele de hardware si de software, care reprezinta domeniile fundamentale de cercetare īn Informatica. Marele avantaj al sistemelor computationale consta īn capacitate lor de a prelucra īn mod schematic cantitati enorme de informatii la o viteza foarte mare. S-a īncercat si implementarea capacitatilor perceptive ale omului īn sistemele informatice, īnsa pāna īn prezent cu un succes foarte limitat. Un exemplu īn aceasta directie īl constituie sistemele de recunoastere a chipului uman, sau/si de luare a deciziior atunci cānd nu se dispune de toate datele necesare. Astfel de procese sunt studiate de o ramura specializata a informaticii, inteligenta artificiala. Astfel, īn anumite discipline restrānse pot fi obtinute deja rezultate remarcabile. Totusi nu se poate īnca vorbi despre o modelizare a inteligentei umane. Ca sistem stiintific fundamental, informatica are, la fel ca si matematica, implicatii profunde īn multe alte domenii ale stiintei. Daca prin matematica se īntelege un "sistem de gāndire formal", atunci informatica se concentreaza pe ceea ce este "formal realizabil", adica ceea ce este realizabil din punctul de vedere al masinii. Studierea problemelor informaticii poate sa se apropie foarte mult de filozofie.
DISCIPLINELE INFORMATICII
Informatica se divide īn urmatoarele domenii fundamentale: informatica teoretica informatica practica informatica tehnica Pe lānga aceste trei domenii principale, mai exista: inteligenta artificiala, considerata drept interdisciplina, īntr-o anumita masura de sine statatoare. Utilizarea informaticii īn diferite domenii ale vietii de zi cu zi, ca de exemplu īn economie, geografie,domeniul medical, este cuprinsa īn termenul de informatica aplicata. Informatica teoretica poate fi considerata ca baza pentru alte domenii derivate. Aceasta asigura cunostintele fundamentale pentru decidabilitatea unei probleme, sistematizarea complexitatii si pentru formalizarea automatelor si a limbajelor formale. Pe aceste fundamente se constitue informatica practica si informatica tehnica. Acestea se ocupa cu problemele centrale ale prelucrarii informatiei si ofera solutii pragmatice si adaptabile. Īn acest punct cele doua domenii de dezvoltare sunt strāns legate unul de altul, diferentiindu-se prin apropierea sau departarea de microelectronica. Din punctul de vedere al informaticii, electronica nu reprezinta decāt un instrument si nu un domeniu central de cercetare. Īn informatica practica, gasirea solutiilor se face īn asa fel īncāt sa se obtina o cāt mai mica dependenta de electronica. Rezultatele isi gasesc īn final utilizarea īn informatica aplicata. Acestui domeniu īi revine realizarea hardware si software, prin urmare si marea parte a pietei IT. Īn domeniile interdisciplinare se fac cercetari pentru gasirea posibilelor solutii pe care tehnologia informatiei le-ar putea oferi. Astfel se poate mentiona aici dezvoltarea de sisteme geoinformationale, sau informatica economica ori bioinformatica.
INFORMATICA TEORETICA
Informatica teoretica se ocupa cu studiul teoriei limbajelor formale, respectiv automatica, teoria computationala si complexitatii, teoria grafurilor, criptologie, logica s.a. punānd bazele pentru construirea compilatoarelor pentru limbajele de programare si pentru formalizarea problemelor din matematica. Ea este, prin urmare, coloana vertebrala a informaticii.
AUTOMATE SI LIMBAJE FORMALE
Un automat finit determinist, dat prin diagrama de stari Automatele sunt īn informatica masini teoretice, avānd un comportament bine definit printr-o serie de reguli (algoritm), care alcatuiesc un program. Algoritmul reprezinta o multime finita de instructiuni, care, efectuate īntr-o ordine anume, ne dau un rezultat. Un automat are finalitate prin aceea ca, plecānd de la orice stare īn care se poate afla el la un moment dat, se ajunge la o stare finala bine determinata prin program. Desigur īnsa ca se pot construi si programe cu elemente aleatorii sau pseudoaleatorii. Automatul primeste la intrare un asa numit "cuvānt de intrare" si, īn functie de ceea ce este programat sa faca, va urma un sir de pati predefiniti (algoritmul), pentru a ajunge la un rezultat final. Un automat are o singura stare de pornire si un numar de stari finale bine determinate. Īn momentul īn care automatul a ajuns īntr-o stare finala, dupa ce a parcurs toate starile intermediare corespunzatoare, se poate afirma ca cuvāntul de la intrarea automatului este acceptat. Multimea tuturor cuvintelor acceptate de un automat compun ceea ce se numeste limbajul automatului. Automat cu memorie. Eingabeband=Banda de intrare Lesekopf=Capul de citire Keller=stiva Pentru a putea accepta limbaje complicate, este nevoie de alte modele de automate, care īn primul rānd trebuie sa dispuna de capacitate de memorare. Multimea tuturor cuvintelor care se compun dintr-o secventa care contine un numar egal de litere "a" si de litere "b" constituie un asa numit limbaj independente de context, pentru care este nevoie de un "automat cu memorie" (numit si "automat push-down"). Un astfel de automat are la dispozitie o stiva de memorii, cu posibilitatea de a sesiza de cāte ori litera "a" a fost citita si īnca neasociata - si deci de cāte ori trebuie sa mai apara litera "b". Lingvistul Noam Chomsky a clasificat limbajele formale īntr-o ierarhie dupa cum urmeaza: 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 COMPUTATIONALA
Īn teoria computationala, informatica teoretica studiaza posibilitatile de rezolvare a unei probleme cu o anumita masina. Teza Curch-Turing sustine ca orice problema intuitiva care poate avea o solutie, deci computabila, poate fi rezolvata de o masina MAA - masina cu acces aleator sau si de masina Turing, prin urmare neexistānd o masina care sa fie limitata computational. Aceasta teza nu este demonstrabila īn mod formal, fiind totusi universal acceptata. Se spune ca un model de sistem computational, respectiv un limbaj de programare, este "Turing complet compatibil", daca cu acesta se poate simula masina universala Turing. Toate computerele actuale sunt "Turing complet compatibile", aceasta īnsemnānd ca se poate gasi o solutie pentru orice problema decidabila. Termenul de decidabilitate poate fi descris ca o īntrebare daca o problema anume este rezolvabila algoritmic sau nu. Astfel, de exemplu, problema celui mai mic multiplu comun a doua numere este o problema decidabila. O problema nedecidabila este de exemplu īntrebarea daca un computer, dāndu-i-se anumiti parametri de intrare, va ajunge vreodata la rezultat, fapt cunoscut sub numele de problema Halt. In teoria computationala se cerceteaza ce masini se pot utiliza pentru efectuarea unei functii date. Astfel functia Ackermann de exemplu este rezolvata nu prin clasa programelor de tip loop, ci prin mai eficienta clasa a programelor de tip 'while'.