Software este o inovație minunată pe care o folosim ori de câte ori folosim un computer, un telefon inteligent, o consolă de jocuri video și multe alte dispozitive electronice. Unele software sunt foarte simple și concepute să facă doar câteva lucruri, în timp ce alte software sunt foarte complicate și gestionează cantități imense de date.
De ce avem software de la bun început?
Răspunsul pe scurt este: computerele nu înțeleg limbajul uman - iar programatorii vor să construiască computere ușor de folosit de către oameni. Însă, în mod clar, oamenii și computerele nu vorbesc aceeași limbă. De aceea avem software, interfața dintre hardware și utilizator, care ne sprijină să ne realizăm sarcinile cu ajutorul computerelor noastre. Să analizăm acest aspect mai în detaliu.
Ce limbaje înțeleg computerele?
Computerele înțeleg doar informații binare, reprezentate în principal sub forma semnalelor electrice care sunt ON (tensiune mare) sau OFF (tensiune scăzută), iar computerele trebuie să vizualizeze totul reprezentat ca o secvență de 1 și 0 (ON și OFF). În general, un „1” logic reprezintă o tensiune mai mare, precum 5 volți, care este denumită în mod obișnuit o valoare RIDICATĂ, în timp ce un „0” logic reprezintă o valoare scăzută, precum 0 volți sau împământare și este denumită în mod obișnuit o valoare SCĂZUTĂ. Această secvență (serie) de 1 și 0 este cunoscută drept formatul/codul binar.
Deoarece computerele nu ne înțeleg limba, fotografiile, clipurile video, textele, programele sau muzica în felul în care o facem noi, toate datele trebuie să fie convertite într-un cod binar pentru a putea fi procesat de computer.
La computerele moderne, avem sisteme de codificare care acționează drept straturi de traducere, care ne convertesc informațiile în coduri de instrucțiuni. Ca exemplu foarte elementar, atunci când tastați litera „A” la o tastatură, aceasta este convertită de către sistemul de codificare al caracterelor UTF-8 într-un cod pentru calculator cu valoarea 01000001.
Imaginați-vă acum de cât de mulți „unu” și „zero” am avea nevoie pentru a reprezenta o carte în cod binar. Imaginați-vă de cât de mulți „unu” și „zero” am avea nevoie pentru a reprezenta o fotografie sau un cântec în codul binar. După cum vă puteți imagina, poate fi foarte complex și obositor să se reprezinte fiecare imagine, text, program sau muzică în codul binar, în acea colecție de „unu” și „zero”. Computerele noastre moderne procedează astfel automat, iar acesta este un proces invizibil pentru majoritatea utilizatorilor.
Încercați să vă imaginați modul în care acest proces se petrecea în trecut, atunci când primii programatori trebuiau să exprime totul în cod binar, de mână!
Care este rolul programatorilor în evoluția software?
Indiferent de limbă sau de tipul de limbaj pe care îl utilizăm pentru a ne scrie programele, acestea trebuie să fie scrise într-un cod de instrucțiuni pentru a putea fi executate de computer.
Atunci când au fost create primele computere „moderne” cu alimentare electrică, programatorii și-au dat seama că viteza și capacitatea de memorie limitate ale acestor dispozitive reprezentau o limită pentru imaginația lor și, de asemenea, o limită pentru experiența utilizatorilor non-experți.
Aceasta i-a forțat să scrie „traducători de limbaje”, care le-ar facilita sarcina de a scrie coduri de instrucțiuni. Există trei categorii principale de traducători de limbaje folosiți în computerele noastre: asamblori, compilatori și interpretori. Îi vom studia în secțiunea următoare.
Ceea ce programatorii utilizează pentru a crea software sunt limbajele de programare; există multe astfel de limbaje, și au evoluat odată cu trecerea anilor. Unele literaturi specializate recunosc cinci generații de limbaje de programare.
Limbajele de programare se clasifică în două niveluri, scăzute și ridicate. Primele două generații fac parte din limbajele de nivel inferior, iar celelalte trei generații fac parte din limbajele de nivel superior.
Sign up to solve exercises
Acum ne-am pregătit terenul pentru secțiunea următoare, în care vom afla despre limbajele moderne de nivel inferior și de nivel superior și despre programare.