Documente Academic
Documente Profesional
Documente Cultură
2
Introducere
Programarea reprezintă utilizarea unui limbaj pe care o mașină îl poate înțelege pentru a o
face să îndeplinească diverse sarcini. Programarea acestora este modul în care comunicăm cu
mașinile într-un mod care le face să funcționeze așa cum avem nevoie.
Importanța programării este uriașă în ziua de azi. Totul este controlat de un calculator,
pornind de la laptop-ul personal sau smartphone, până la autovehicule sau electrocasnice. Este
lesne de înțeles că în absența limbajelor de programare, nu am mai avea disponibil mediul care
leagă omul de mașină, iar toate elementele ce țin de avansul tehnologic al zilelor noastre ar
dispărea.
Odată cu evoluția domeniului IT, au apărut tot mai multe limbaje noi, iar cele prezente
evoluează. Putem spune ca limbajele de programare reprezintă o invenție care se reinventează
continuu.
I. Istoric al invenției
3
Fig. 1. Prototipul lui Charles Babbage https://spectrum.ieee.org/charles-babbage-difference-engine
Inițial, limbajele erau specializate, putând să realizeze doar acțiuni specifice, cum ar fi cele
legate de calcul numeric. În cele din urmă, mișcarea fizică a fost înlocuită cu semnale electrice,
când guvernul SUA a construit ENIAC (Electronic Numerical Integrator and Computer) în 1942
(Fig. 2). A urmat multe dintre aceleași principii ale mașinii Babbage și, prin urmare, a putut fi
„programată” doar prin setarea comutatoarelor pentru a executa acțiunea dorită și recablarea
întregului sistem pentru fiecare nou „program” sau calcul. Acest proces s-a dovedit a fi foarte
cronofag. Totuși, a fost un avans uriaș, având o rapiditate de ordinal miilor mai mare, comparativ
cu cele mecanice [2].
4
1.1. Primii pași spre limbajele de astăzi
În 1945, John Von Neumann a dezvoltat două concepte importante care au afectat direct
evoluția limbajelor de programare. Primul spune că hardware-ul computerului ar trebui să fie
simplu și nu trebuie să fie schimbată configurația electrică în mod manual pentru fiecare
program. În schimb, instrucțiunile complexe ar trebui folosite pentru a controla hardware-ul
simplu, permițându-i să fie reprogramat mult mai rapid.
Al doilea concept a fost, de asemenea, extrem de important pentru dezvoltarea limbajelor
de programare. Von Neumann l-a numit „transfer de control condiționat”. Această idee a dat
naștere noțiunii de subrutine, sau mici blocuri de cod, la care ar putea fi sărit în orice ordine, în
loc de un singur set de pași ordonați cronologic pe care computerul să-i facă.
A doua parte a ideii a afirmat că liniile de cod ar trebui să se poată ramifica pe baza
declarațiilor logice, cum ar fi IF (expresie) THEN, și să fie în buclă, cum ar fi cu o instrucțiune
FOR. Transferul de control condiționat a dat naștere ideii de Librării, care sunt blocuri de cod
care pot fi reutilizate [3].
Un limbaj de programare de nivel inferior este un limbaj care oferă puțină abstractizare sau
chiar deloc asupra arhitecturii setului de instrucțiuni al unui computer, în speţă comenzi sau
funcții din harta limbajului care sunt similare structural cu instrucțiunile procesorului.
5
În general, aceasta se referă fie la codul mașină, fie la limbajul de asamblare. Din cauza
abstractizării reduse, limbajele de nivel scăzut sunt uneori descrise ca fiind „aproape de
hardware”. Programele scrise în limbaje de nivel scăzut tind să fie relativ neportabile, deoarece
sunt optimizate pentru un anumit tip de arhitectură de sistem.
Limbajele de nivel scăzut se pot converti în cod de mașină fără un compilator sau
interpretor, acestea folosind un asamblator, iar codul rezultat rulează direct pe procesor.
Un program scris într-un limbaj de nivel scăzut poate fi făcut să ruleze foarte rapid, cu o
utilizare mică de memorie. Un program echivalent într-un limbaj de nivel înalt poate fi mai puțin
eficient și poate folosi mai multă memorie.
Limbajele de nivel scăzut sunt simple din punctul de vedere al volumului de instrucțiuni
prezente, dar considerate dificil de utilizat, datorită numeroaselor detalii tehnice de care
programatorul trebuie să țină cont. Prin comparație, un limbaj de programare de nivel înalt
izolează semantica de execuție a arhitecturii unui computer de specificația programului, ceea ce
simplifică dezvoltarea [5].
În programare, un compilator este un program care traduce codul scris într-un limbaj de
programare (limbajul sursă) într-un alt limbaj (limbajul țintă). Numele „compilator” este folosit
în principal pentru programele care traduc codul sursă dintr-un limbaj de programare de nivel
6
înalt într-un limbaj de nivel inferior (de exemplu, limbaj de asamblare, cod obiect sau cod
mașină) pentru a crea un program executabil. [6]
Majoritatea programelor sunt scrise într-un limbaj de nivel înalt, cum ar fi C, Perl sau Java.
Așa cum un limbaj uman facilitează comunicarea între oameni, la fel și limbajele computerizate
simplifică munca de a spune unui computer ce trebuie să facă. Cu toate acestea, deoarece un
computer înțelege doar numere, a vorbi cu un computer este ca și a vorbi cu cineva cu care nu
împărtășiți o limbă. Ai nevoie de un traducător pentru a comunica corect și asta fac
interpretoarele și compilatoarele.
Diferența dintre un limbaj interpretat și unul compilat constă în rezultatul procesului de
interpretare sau compilare. Un interpretor produce un rezultat dintr-un program, în timp ce un
compilator produce un program scris în limbaj de asamblare. Asamblatorul arhitecturii
transformă apoi programul rezultat în cod binar. Limbajul de asamblare variază pentru fiecare
computer în parte, în funcție de arhitectura acestuia. În consecință, programele compilate pot rula
doar pe computere care au aceeași arhitectură ca și computerul pe care au fost compilate.
Un program compilat nu poate fi citit de om, ci este într-un limbaj de mașină specific
arhitecturii. Crearea unui program compilat necesită mai mulți pași. În primul rând,
programatorul, folosind un instrument de dezvoltare sau chiar un simplu editor de text, scrie
codul sursă într-un limbaj de calculator ales. Dacă programul este complex, bucăți din acesta pot
fi răspândite în mai multe fișiere. Apoi, programatorul compilează programul, sortând și
conectând modulele și transpunând totul în codul mașinii, pe care computerul îl înțelege.
Într-un program interpretat, pe de altă parte, codul sursă este de obicei programul.
Programele de acest tip (cunoscute adesea sub numele de scripturi) necesită un interpret, care
analizează comenzile din program și apoi le execută. Unii interpreți, cum ar fi shell-urile Unix
(sh, csh, ksh etc.), citesc și apoi execută imediat fiecare comandă, în timp ce alții, precum Perl,
analizează întregul script înainte de a trimite instrucțiunile corespunzătoare în limbajul mașinii.
Avantajul unui script este că este foarte portabil. Orice computer care are instalat
interpretul adecvat poate rula programul mai mult sau mai puțin neschimbat. Acesta este și un
dezavantaj, deoarece programul nu va rula deloc dacă interpretul nu este disponibil. În general,
programele interpretate sunt mai lente decât programele compilate, dar sunt mai ușor de depanat
și revizuit. Alte exemple de limbaje interpretate includ JavaScript și Python [6].
7
III.3. Primul limbaj de programare de nivel înalt – Plankalkul
Fortran este un limbaj de programare pentru calculatoare care este utilizat la scară largă în
calculul numeric, științific. Deși în afara comunității științifice, Fortran a scăzut în popularitate
de-a lungul anilor, are încă o bază puternică de utilizatori implicați în activități ce țin de aria
matematicii și este, de asemenea, utilizat în organizații precum meteorologii, tranzacțiile
financiare și în simulările de inginerie. Programele Fortran pot fi foarte optimizate pentru a rula
pe computere de înaltă performanță și, în general, limbajul este potrivit pentru producerea de cod
în care performanța este importantă.
Fortran este un limbaj compilat sau, mai precis, este compilat înainte de timp. Cu alte
cuvinte, trebuie efectuat un pas special, numit compilarea codului scris, înainte de a-l putea rula
8
pe un computer. Aici Fortran diferă de limbaje interpretate, cum ar fi Python și R, care rulează
printr-un interpret care execută instrucțiunile direct, dar cu prețul diminuării vitezei de calcul [9].
Când a apărut pentru prima dată, Algol 60 a anunțat o nouă eră pentru limbajele de
programare, una care a cuprins ideea de „blocuri” de cod, printre altele. Deci, de ce a eșuat un
limbaj atât de promițător? Există probabil o serie de motive.
În primul rând, Algol 60 nu avea I/O în specificațiile sale. Acest lucru însemna că atunci
când Algol a fost implementat pe o anumită mașină, a fost adăugat I/O și astfel specificațiile
pentru I/O diferă între implementări. În al doilea rând, anii 1960 au fost plini de noi limbaje de
programare – fiecare producător dorea ca limbajul său să fie următorul „lucru mare”. Este mai
greu să concurezi într-un astfel de mediu. De asemenea, a fost foarte puțin timp între lansarea lui
Algol 60 și începerea lucrărilor la succesorul său, Algol 68. Algol ar fi avut mai mult succes dacă
s-ar fi depus efort pentru îmbunătățirea Algol 60, mai degrabă decât pentru crearea unui limbaj
complet nou.
În al treilea rând, și probabil cea mai mare problemă, a fost IBM. Algol 60 a făcut ceva
progrese în Europa, dar nu s-a impus niciodată cu adevărat în America de Nord. Cota de piață
9
instalată internă a IBM pentru sistemele informatice a fost de aproximativ 71,4% în anii 1960.
Principalii săi concurenți, Honeywell și Univac, dețineau 8,1% și, respectiv, 9,6% din piață.
Algol 60 trebuia să preia o parte din teritoriul Fortran, dar din cauza dominației IBM, acest lucru
nu s-a întâmplat niciodată.
De fapt, Fortran a dominat atât de mult industria, încât nici celălalt limbaj al IBM – PL/I
(1964) nu a reușit să facă niciun progres [10].
10
Până în 1970, COBOL era cel mai folosit limbaj de programare din lume. Băncile,
întreprinderile și entitățile guvernamentale depindeau de abilitățile de procesare a datelor ale
limbajului [11].
III.7. Basic
III.8. Pascal
11
programarea structurată și structurarea datelor. Este numit în onoarea matematicianului,
filosofului și fizicianului francez Blaise Pascal.
Pascal a avut un mare succes în anii 1970, în special pe piața în plină dezvoltare a
minicalculatoarelor. Compilatoarele au fost, de asemenea, disponibile pentru multe
microcalculatoare, deoarece domeniul a apărut la sfârșitul anilor 1970. A fost folosit pe scară
largă ca limbaj de predare în cursurile de programare la nivel universitar în anii 1980 și, de
asemenea, folosit în setările de producție pentru scrierea de software comercial în aceeași
perioadă.
A fost înlocuit de limbajul de programare C la sfârșitul anilor 1980 și începutul anilor
1990, pe măsură ce sistemele bazate pe UNIX au devenit populare, și mai ales odată cu lansarea
C++.
De asemenea, era folosit de Apple în perioada incipientă a companiei, datorită ușurinței
utilizării sale [13].
C este un limbaj de programare pentru computere de uz general. A fost creat în anii 1970
de Dennis Ritchie și rămâne foarte folosit și influent. Prin design, caracteristicile lui C reflectă în
mod clar capacitățile CPU-urilor vizate. A găsit o utilizare de durată în sistemele de operare,
drivere de dispozitive, stive de protocoale, deși în scădere pentru aplicațiile software.
C este folosit în mod obișnuit pe arhitecturi de computere care variază de la cele mai mari
supercomputere la cele mai mici microcontrolere și sisteme încorporate.
12
Un succesor al limbajului de programare B, C a fost dezvoltat inițial la Bell Labs de către
Ritchie între 1972 și 1973 pentru a construi utilități care rulează pe Unix. A fost aplicat la
reimplementarea nucleului sistemului de operare Unix. În anii 1980, C a câștigat treptat
popularitate. A devenit unul dintre cele mai utilizate limbaje de programare, cu compilatoare C
disponibile pentru aproape toate arhitecturile moderne de computer și sistemele de operare.
C este standardizat de ANSI din 1989 (ANSI C) și de Organizația Internațională pentru
Standardizare (ISO).
C-ul, în prezent, este folosit intr-o multitudine de aplicații.
Limbajul „C” este utilizat pe scară largă în sistemele încorporate:
- pentru dezvoltarea aplicațiilor de sistem;
- dezvoltarea aplicațiilor desktop (majoritatea aplicațiilor Adobe sunt dezvoltate folosind
limbajul de programare „C”);
- dezvoltarea browserelor și a extensiilor acestora (Chromium de la Google este construit
folosind limbajul de programare „C”);
- pentru dezvoltarea bazelor de date (MySQL este cel mai popular software de bază de
date care este construit folosind „C”);
- dezvoltarea unui sistem de operare (sistemele de operare precum OS X de la Apple,
Windows Microsoft și Symbian sunt dezvoltate folosind limbajul „C”);
- folosit pentru producția de compilatoare;
- utilizat pe scară largă în aplicațiile IOT;
- utilizat pentru dezvoltarea sistemelor Embedded [14], [15]
III.10. C++
13
Cele două idei combinate au permis o abstracție la nivel mai înalt fără a pierde eficiența de
nivel scăzut a C. Așadar, a fost creat limbajul „C cu clase”.
În 1984, „C cu clase” a fost redenumit în C++.
Deci, C++ este un superset al lui C, ceea ce înseamnă că a fost o extensie a lui C și se
bazează pe acesta. C++ oferă doar capacități suplimentare pentru limbajul C [16].
III.11. Python
Python este un limbaj de programare de nivel înalt, de uz general, utilizat pe scară largă. A
fost proiectat inițial de Guido van Rossum în 1991 și dezvoltat de Python Software Foundation.
A fost dezvoltat în principal pentru a pune accent pe lizibilitatea codului, iar sintaxa sa le permite
programatorilor să exprime concepte în mai puține linii de cod.
Multe avantaje ale lui Python îl fac favorit printre programatorii amatori și profesioniști
deopotrivă. Unul dintre cele mai mari avantaje ale sale este simplitatea (relativă). Sintaxa de tip
engleză a lui Python îl face ușor de învățat și citit și, spre deosebire de alte limbi, folosește
întreruperi de linie simple în loc de simboluri pentru a defini blocurile de cod.
Python ajută, de asemenea, la accelerarea dezvoltării, cu clase și funcții încorporate și o
selecție extinsă de biblioteci care fac scrierea codului mai rapidă și mai ușoară. În plus, ca limbaj
interpretat, vă puteți executa și testa codul imediat după ce îl scrieți, fără un proces intermediar
de compilare.
Un alt avantaj pe care Python îl deține față de alte limbi este versatilitatea sa. Python este
un limbaj portabil, multiplatformă – ceea ce înseamnă că se poate scrie și executa cod Python pe
orice sistem de operare cu un interpret Python [17]
III.12. Java
Java a fost creat la Sun Microsystems, Inc., unde James Gosling a condus o echipă de
cercetători în efortul de a crea un nou limbaj care să permită dispozitivelor electronice de
consum să comunice între ele. Lucrările asupra limbajului au început în 1991 și, în scurt timp,
concentrarea echipei s-a schimbat pe o nouă nișă, World Wide Web. Java a fost lansat pentru
prima dată în 1995, iar capacitatea Java de a oferi interactivitate și multimedia a arătat că este
deosebit de potrivit pentru Web.
Diferența dintre modul în care funcționa Java și alte limbaje de programare a fost
revoluționară. Codul, în alte limbaje, este mai întâi tradus de un compilator în instrucțiuni pentru
14
un anumit tip de computer. În schimb, compilatorul Java transformă codul în ceva numit
Bytecode, care este apoi interpretat de software-ul numit Java Runtime Environment (JRE) sau
mașina virtuală Java. JRE acționează ca un computer virtual care interpretează Bytecode și îl
traduce pentru computerul gazdă. Din această cauză, codul Java poate fi scris în același mod
pentru multe platforme („scrie o dată, rulează oriunde”), ceea ce a contribuit la popularitatea sa
pentru utilizarea pe Internet, unde multe tipuri diferite de computere pot prelua aceeași pagină
Web.
Până la sfârșitul anilor 1990, Java a adus multimedia pe Internet și a început să crească
dincolo de Web, „motorizând” dispozitive de consum (cum ar fi telefoanele celulare), computere
de uz domestic și financiare și chiar computerul de bord al roverelor de explorare Marte ale
NASA. Datorită acestei popularități, Sun a creat diferite varietăți de Java pentru diferite scopuri,
inclusiv Java SE pentru computerele de acasă, Java ME pentru dispozitive încorporate și Java EE
pentru servere de Internet și supercomputere. În 2010, Oracle Corporation a preluat conducerea
Java când a achiziționat Sun Microsystems [18].
PHP este un limbaj open source creat în 1995 de Rasmus Lerdorf. Numele provine de la
Personal Home Page Tools — un set de scripturi folosite de Rasmus pentru a urmări vizitele pe
site-ul său.
Odată cu lansarea PHP 3.0, limbajul a primit un acronim invers: PHP: Hypertext
Preprocessor. Acum este pur și simplu cunoscut sub numele de PHP.
15
III.14. Limbaje apărute mai recent
Istoria a fost martoră că omenirea a trecut prin mai multe revoluții. Cea mai recentă este
revoluția tehnologiei informației și comunicațiilor. Această revoluție a provocat o ruptură între
tot ce este vechi; ceea ce este considerat nou astăzi se transformă rapid într-o tendință veche și
învechită mâine. Datorită acestor evoluții, cererea pentru această tehnologie a crescut. Prin
urmare, aceasta din urmă a devenit cea mai importantă resursă utilizată în comparație cu
resursele clasice, ceea ce a condus la amplificarea interesului față de noile tehnologii ale
informației și comunicațiilor atât de către companii, cât și de către persoane fizice (Fig. 6).
În prezent, lumea se confruntă cu un proces de evoluție rapidă a nevoii de facilități
informaționale în ceea ce privește cantitatea, calitatea și accesul la informație, pentru a lua cea
mai bună decizie pe baza diferitelor schimbări și dinamici ale mediului întreprinderilor. Acest
lucru demonstrează în mod clar importanța tot mai mare a sistemelor informaționale și
capacitatea acestora de a satisface nevoile de informații ale întreprinderilor. Acest lucru
subliniază importanța dezvoltării acestor sisteme și a creșterii eficienței acestora. Unul dintre
elementele cheie ale succesului acestor sisteme este că au devenit dependente de tehnologia
sofisticată, care a facilitat foarte mult accesul la informații și a redus în mod clar costurile de
acces.
16
Fig. 6. Numărul utilizatorilor de internet 1995-2015 [23]
17
Fig. 7. Evoluţia industriei IT [24]
Concluzii
18
Fig. 8. Creşterea numărului dezvoltatorilor software [25]
19
Referinţe
1. https://www.historyextra.com/period/georgian/why-remember-charles-babbage-difference-
engine/
2. https://www.britannica.com/technology/ENIAC
3. http://www.eingang.org/Lecture/neumann.html
4. https://byjusexamprep.com/difference-between-low-level-languages-and-high-level-
languages-i
5. https://www.techtarget.com/whatis/definition/compiler
6. https://kb.iu.edu/d/agsz#
7. https://www.cs.ru.nl/bachelors-theses/2010/Bram_Bruines___0213837___Plankalkul.pdf
8. https://www.britannica.com/technology/Zuse-computer#ref1009910
9. https://fortran-lang.org/en/
10. https://craftofcoding.wordpress.com/2017/06/16/ghosts-in-the-machine-algol-60/
11. https://history-computer.com/cobol-guide/
12. https://time.com/69316/basic/
13. https://en.wikipedia.org/wiki/Pascal_(programming_language)
14. https://www.simplilearn.com/tutorials/c-tutorial/use-of-c-language
15. https://www.guru99.com/c-programming-language.html
16. https://www.freecodecamp.org/news/c-vs-cpp-whats-the-difference/
17. https://www.geeksforgeeks.org/history-of-python/
18. https://www.javatpoint.com/history-of-java
19. https://www.computersciencedegreehub.com/brief-history-of-programming-languages/
20. https://ilyabirman.net/meanwhile/all/ui-museum-turbo-pascal-7-1/
21. https://craftofcoding.wordpress.com/2017/06/16/ghosts-in-the-machine-algol-60/
22. https://slideplayer.com/slide/12831727/ -
23. https://monegro.org/work/2018/2/20/information-technology-market-cycles-a-brief-history
24. https://www.chiphistory.org/111-evolution-of-the-it-industry
25. https://bootcamp.pe.gatech.edu/blog/software-developer-career-path/
20