Sunteți pe pagina 1din 436

ISTORIA INFORMATICII ROMÂNEȘTI

APARIȚIE, DEZVOLTARE ȘI IMPACT

OAMENI, INSTITUȚII, CONCEPTE, TEORII ȘI TEHNOLOGII

Lucrare dedicată Centenarului Marii Uniri din anul 1918

În memoria acad. GRIGORE C. MOISIL, fondatorul informaticii românești


Conținutul articolelor din acest volum nu reprezintă în mod necesar și
punctul de vedere al editorului. Interpretările și opiniile pe care le
conțin articolele aparțin exclusiv autorilor și nu angajează cu nimic
răspunderea editorului sau a editurii.

Reproducerea integrală sau parţială, cu scop comercial, precum și alte


fapte similare săvârșite fără permisiunea scrisă a deţinătorului
copyrightului reprezintă o încălcare a legislaţiei cu privire la protecţia
proprietăţii intelectuale și se pedepsesc penal și/sau civil în
conformitate cu legile în vigoare.

Autorii articolelor din acest volum pot valorifica parțial sau integral
propriile contribuții, fără a cere acordul editorului, doar prin indicarea
corectă a sursei.
ISTORIA ADEVĂRATĂ ȘI RELEVANTĂ ESTE DESCRISĂ DE CEI CARE AU TRĂIT-O
Comitetul Român de Istoria şi Filosofia Ştiinţei şi Tehnicii
A c a d e m i a R o m â nă

MARIN VLADA
(editor coordonator)

ISTORIA INFORMATICII ROMÂNEȘTI


APARIȚIE, DEZVOLTARE ȘI IMPACT
OAMENI, INSTITUȚII, CONCEPTE, TEORII ȘI TEHNOLOGII

VOLUMUL I
Capitolul 1
Contextul internațional la apariția și evoluția calculatoarelor

Editura Matrix Rom, București


2019
REFERENȚI ȘTIINȚIFICI:
Acad. Prof. Dr. Mihail-Viorel Bădescu, Preşedinte Divizia Istoria Ştiinţei (DIS) -
Comitetul Român de Istoria şi Filosofia Ştiinţei şi Tehnicii (CRIFST), Academia Română

Prof. Dr. Eufrosina Otlăcan, Vicepreşedinte Divizia Istoria Ştiinţei (DIS) - Comitetul
Român de Istoria şi Filosofia Ştiinţei şi Tehnicii (CRIFST), Academia Română

Copertă: Sigrid Iuhas, Bogdan Jugureanu; DTP: Marin Vlada

Descrierea CIP a Bibliotecii Naţionale a României


Istoria informaticii româneşti: apariţie, dezvoltare şi impact: oameni,
instituţii, concepte, teorii şi tehnologii / ed. coord.: Marin Vlada. -
Bucureşti: Matrix Rom, 2019
2 vol.
ISBN 978-606-25-0494-6
Vol. 1. - 2019. - Conţine bibliografie. - ISBN 978-606-25-0495-3

I. Vlada, Marin (ed.)

004
MOTTO

„Informatica restabileşte nu numai unitatea matematicilor pure şi a celor aplicate, a tehnicii


concrete şi a matematicilor abstracte, dar şi cea a ştiinţelor naturii, ale omului şi ale societăţii.
Reabilitează conceptele de abstract şi de formal şi împacă arta cu ştiinţa, nu numai în sufletul
omului de ştiinţă, unde erau întotdeauna împăcate, ci şi în filosofarea lor.”
„Aproape toate meseriile pe care cineva le va practica în viitor, de la inginerie la muzicologie,
de la fizică atomică la turism, de la istorie la medicină, vor folosi calculatoarele. Calculatoarele nu
merg singure, ca să meargă trebuie să aibă oameni pricepuţi să le mâie. Ca să ai oameni pricepuţi,
trebuie să îi înveţi: Ce?”
Gr. C. Moisil (1906-1973)
Fondatorul Informaticii din România,
Computer Pioneer Award of IEEE

Mediile din natură sunt guvernate de Limbaje. Omul a inventat calculatorul, limbajele şi
ştiinţele pentru cunoaştere. Prin intermediul calculatorului se prelucrează informaţiile şi
cunoştinţele. Pentru reprezentarea şi prelucrarea informaţiilor calculatorul utilizează limbajele
artificiale. Acest fapt dovedeşte că limbajele au fost inventate nu numai pentru comunicarea
informaţiilor, ci mai ales pentru prelucrarea lor. Prin urmare, Limbajele sunt instrumente ale
gândirii, iar ştiințele sunt modele şi reprezentări virtuale ale cunoaşterii.

M. Vlada, eLSE 2005, CNIV 2010

Informatica a devenit o ştiinţă deoarece utilizează metode, tehnici şi instrumente proprii pentru
investigarea obiectelor şi proceselor pe care le defineşte şi cu care operează. Tezaurul ştiinţific al
Informaticii este rezultatul unor simbioze de cunoştinţe şi cercetări provenite şi de la alte ştiinţe
(matematică, cibernetică, microelectronică, fizică, chimie etc.), şi care prin metode şi tehnici
proprii, şi utilizînd echipamente speciale (sisteme de calcul, dispozitive input/output) prelucrează
informaţii şi cunoştinţe pe care trebuie să le interpreteze, să le transforme şi să le comunice.

M. Vlada, Informatică aplicată, 2012


AUTORI

1. Adrian Adăscăliței, 392 9. Grigore C. Moisil, 110


2. Mihail-Viorel Bădescu, 13 10. Stelian Niculescu, 18
3. W. K. de Bruijn, 159 11. Eufrosina Otlăcan, 14
4. Nick Doiron, 102 12. Gheorghe Păun, 67
5. Mihaiță Drăgan, 361 13. Dragoș Vaida, 186
6. Juraj Hromkovic, 71 14. Ion Văduva, 16
7. Valeriu Iorga, 300 15. Marin Vlada, 21, 60, 71, 189, 212, 225,
8. Angela Ioniță, 344 307, 329, 385, 392

C U P R I N S G E N E R A L

Cuvânt introductiv ...................................................................................... 13


Prefaţă și argumente ................................................................................... 21

1 Contextul internațional la apariția și evoluția calculatoarelor ............ 57


1.1 Conceptul de Computing – istoric și evoluție .............................................. 60
1.2 Cronologia tehnicii de calcul – istoric și evoluție ........................................ 85
1.3 Raport „ACM Curriculum Committee on Computer Science”, USA, 1968 . 110
1.4 Raport „Situația și perspectivele evoluției calculatoarelor”, Europa, 1966 . 159
1.5 Arto Salomaa in the History of the Romanian Theoretical Computer
Science ........................................................................................................... 186
1.6 Apariția și evoluția sistemelor de calcul ...................................................... 189
1.7 Apariția și evoluția societății informaționale .............................................. 212
1.8 Apariția și evoluția limbajelor de programare ............................................ 225
1.9 Apariția și evoluția sistemelor de operare .................................................. 307
1.10 Apariția și evoluția bazelor de date .......................................................... 329
1.11 Apariția și evoluția rețelelor de calculatoare ............................................. 361
1.12 Ideile inovatoare ale apariției sistemului Internet ................................... 385
1.13 From recursivity to the Turing universal machine and Horn clauses ...... 392

Bibliografie generală ................................................................................... 410


Lista cărților de informatică din perioada 1955-2000 ................................ 417
Index autori ................................................................................................ 435
10 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

SECȚIUNI ȘI AUTORI

CAPITOLUL 1

1.1 Conceptul de Computing – istoric și evoluție (M. Vlada, Gh. Păun,


Juraj Hromkovic) ........................................................................................... 60
• Șiințe: dezvoltare, evoluție, schimbări ..................................................... 61
• Domenii majore în Computing ................................................................ 63
• Etape în evoluția Calculus și Computing ................................................. 65
• Scurtă istorie a Informaticii (Gh. Păun) ................................................... 67
• Cum trebuie predate matematica şi informatica? Schimbarea trebuie
să pornească din universităţi (Juraj Hromkovic) ..................................... 71
• Dezvoltarea Computing: concepte, etape și aspecte de evoluție ............ 71
1.2 Cronologia tehnicii de calcul – istoric și evoluție (M. Vlada, Nick Doiron) 85
• Preistorie – antichitate ............................................................................. 85
• Medieval – 1640 ......................................................................................... 86
• Perioada 1641 – 1949 .................................................................................. 88
• Perioada 1950 – 1999 ................................................................................. 93
• Perioada 2000 – 2017 ................................................................................. 99
• The Computing/Computer Museum ....................................................... 100
• First digital computer used, by country – This list is incomplete
(Nick Doiron) ............................................................................................ 102
• Prezicerea viitorului tehnicii de calcul (computing)............................... 108
1.3 Raport al „ACM Curriculum Committee on Computer Science”, USA,
1968 (Gr. C. Moisil) ........................................................................................ 110
• Partea I: Domenii și tematici. Descrierea generală a cursurilor.
Programe de instruire universitară a specialiștilor pentru diferite
grade și activități. Conducerea și organizarea instruirii
• Partea a II-a: Orientarea și cuprinsul detailat al fiecărui curs.
Bibliografie adnotată
1.4 Raport „Situația și perspectivele evoluției calculatoarelor”, Europa, 1966
(W. K. de Bruijn) ............................................................................................ 159
• Evoluția și situația actuală a numărului de calculatoare instalate și
comandate și compararea acestora în diverse țări europene
• Gradul de prelucrare automată a datelor în diverse ramuri de utilizare
• Ramuri angrenate în prezent sau în viitor în automatizare
• Perspectiva dezvoltării pieței de calculatoare până în anul 1975
• Necesarul de specialiști legat de creșterea numărului de calculatoare
în Europa de Vest
• Concluzii, hărți, diagrame
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 11

1.5 Arto Salomaa in the History of the Romanian Theoretical Computer


Science (Dragoș Vaida) ................................................................................. 186
1.6 Apariția și evoluția sistemelor de calcul (M. Vlada) .................................... 189
• Generațiile de calculatoare (computer systems) ..................................... 186
1.7 Apariția și evoluția societății informaționale (M. Vlada) ............................ 212
• Cele 4 valuri ale tehnologiei societății informaționale............................ 212
1.8 Apariția și evoluția limbajelor de programare (M. Vlada, V. Iorga) ............ 225
• Computing: Computer System = Hardware + Software .......................... 225
• Limbajele sunt instrumente ale gândirii: gândirea algoritmică .............. 228
• Conceptele de Proiect și Management, concepte ce au revoluționat
științele, cultura și dezvoltarea societății omenești ................................ 232
• Utilizarea calculatorului și rezolvarea problemelor ................................ 240
• Exemple de programe în diverse limbaje de programare ....................... 243
• Grafica pe calculator, geometria computațională și realitatea virtuală.. 277
• Impactul utilizării calculatorului – noi abordări în rezolvarea
problemelor .............................................................................................. 283
• Câteva aspecte privind activitatea în utilizarea limbajelor de programare
(V. Iorga) ................................................................................................... 300
1.9 Apariția și evoluția sistemelor de operare (M. Vlada) ................................. 307
• Principalele etape în dezvoltarea sistemelor de operare......................... 305
• Pionierate în domeniul elaborarii sistemelor de operare........................ 308
• Tipuri de sisteme de operare .................................................................... 320
• Tehnologia Cloud Computing .................................................................. 324
1.10 Apariția și evoluția bazelor de date (M. Vlada, A. Ioniță)............................ 329
• Concepte, tehnologii și evoluția Bazelor de Date.................................... 326
• Baze de date deductive – Trecerea de la „informație” la conceptul de
„cunoștință” ............................................................................................. 327
• Sisteme de Baze de Date şi Sisteme de Gestiune a Bazelor de Date
(A. Ioniță).................................................................................................. 344
1.11 Apariția și evoluția rețelelor de calculatoare (M. Drăgan) .......................... 361
• Introducere și argumente ......................................................................... 361
• Teoria grafurilor și tehnologia informației .............................................. 363
• Rețeaua Internet ....................................................................................... 368
• Internetul în România .............................................................................. 376
1.12 Ideile inovatoare ale apariției sistemului Internet (M. Vlada) .................... 385
• Argumente şi context privind dezvoltarea Internetului ......................... 385
• Idei inovatoare şi pionierii Internetului................................................... 388
1.13 From recursivity to the Turing universal machine and Horn clauses
(M. Vlada, A. Adăscăliței).............................................................................. 392
• Contribution of Romanian scientists to the appearance of electronic
computers ................................................................................................. 392
• Calculation Theory and Cybernetics ........................................................ 397
• The first examples of a recursive function which is not primitive
recursive: W. Ackermann and G. Sudan.................................................. 402
CUVÂNT INTRODUCTIV

PARTEA I

În anul 2018, Academia Română a inițiat „Programul Academiei Române de


sărbătorire a Centenarului Marii Uniri”. De asemenea, Academia Română, prin Divizia de
Istoria Științei a Comitetului Român de Istoria și Filosofia Științei și Tehnicii (DIS/CRIFST),
a organizat Ciclu de conferințe “Istoria matematicii şi a informaticii în România”, în
perioada ianuarie-noiembrie 2018.

Alăturându-ne acestor inițiative și programe, Proiectul național ROINFO


„Realizări românești în domeniul Informaticii” 2018-220 (pagina web:
http://www.c3.cniv.ro/?q=2018/ro-info), coord. de MARIN VLADA, și-a propus să elaboreze
studii și cercetări pentru a descrie și explica „fenomenul” apariției, evoluției și dezvoltării
informaticii în România. “Acest demers nu poate fi complet și cuprinzător, fiind un început,
decât dacă avem în vedere diversitatea de variabile în timp și spațiu. Suntem conștienți de
faptul că studiile vor fi caracterizate de subiectivism, fiind vorba de oameni, evenimente,
instituții, procese, teorii și aplicații, metode și tehnologii, evoluții și schimbări etc. De
asemenea, demersul nostru este cu atât mai oportun și major, având în vedere faptul că încă
mai există în viață oameni de știință, profesori, cercetători, ingineri, economiști etc, ce au
trăit în deceniile ’50-’60, când se consolida informatica pe plan mondial și, când s-au
construit primele calculatoare electronice din generațiile I-III” se arată în obiectivele acestui
proiect de o mare complexitate.
Pentru elaborarea volumelor acestui proiect s-a lansat un apel la contribuții, în
luna mai 2018. S-a așteptat de la un public larg aceste contribuții ce au putut fi: articole și
opinii, studii ale unor concepte și teorii, evoluția și dezvoltarea unor programe pentru
dezvoltarea învățământului de informatică, evoluția și dezvoltarea industriei de
calculatoare din România, descrierea unor evenimente prin poze, scheme etc. A rezultat un
cuprins de teme și subiecte structurate în 12 capitole, discutate cu autorii de articole:
http://www.c3.cniv.ro/?q=2018/iir.
14 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

VOLUMUL I intitulat „Contextul internațional la apariția și evoluția


calculatoarelor” abordează următoarele teme: Conceptul de Computing-istoric și evoluție;
Cronologia tehnicii de calcul-istoric și evoluție; Raport al “ACM Curriculum Committee on
Computer Science”, USA, 1968 (Gr. C. Moisil); Raport “Situația și perspectivele evoluției
calculatoarelor”, Europa, 1966 (W. K. De Bruijn); Apariția și evoluția: sistemelor de calcul,
societății informaționale, limbajelor de programare, sistemelor de operare, bazelor de date,
rețelelor de calculatoare; Ideile inovatoare ale apariției sistemului Internet; From
recursivity to the Turing universal machine and Horn clauses.
VOLUMUL II intitulat „Contextul național privind fondarea și evoluția informaticii
românești” abordează următoarele teme: În anul centenar 2018/2019, întâlnirea generațiilor
de informaticieni; Ștefan Odobleja, precursor al Ciberneticii și al Informaticii; Contribuția
românească în teoria algebrică a automatelor (Gr. C. Moisil); Grigore C. Moisil, fondatorul
informaticii românești; Solomon Marcus, matematicianul de frontieră și al
interdisciplinarității; Victor Toma, pionierul construirii calculatoarelor românești; Tiberiu
Popoviciu, unul din fondatorii informaticii din România; Dan D. Farcaș, matematicianul
pionier al rețelelor neuronale; Etape în fondarea și evoluția informaticii românești;
Instruirea în știința calculatoarelor, perioada 1955-1970; Rolul Academiei R. S. România în
dezvoltarea informaticii în țara noastră (Grigore C. Moisil); PLUB (Programming Language
of the University of Bucharest)-un proiect al anilor ’70 la Centrul de Calcul al Universității
din București (CCUB); Teze de doctorat românești de informatică, cibernetică și
calculatoare; Programe și strategii de informatizare în România.
Volumele sunt bine structurate, redactate îngrijit și oferă un tablou general privind
apariția, consolidarea și dezvoltarea informaticii din Romania, abordarea realizându-se
conform conceptului de Computing, ce astăzi caracterizează mașinile de calcul
(calculatoare) prin componeta hardware și componenta software. În concluzie, sunt de
acord cu publicarea volumelor în forma actuală.

PARTEA a II-a

REFERAT privind lucrarea

“ISTORIA INFORMATICII ROMÂNEŞTI. APARIŢIE, DEZVOLTARE ŞI IMPACT. Oameni,


instituţii, concepte şi tehnologii”, Editor coordinator Dr. Marin Vlada

Aceasta se prezintă ca o lucrare amplă, o carte în două volume: primul volum este
intitulat “Contextul internaţional la apariţia şi evoluţia calculatoarelor”, al doilea referindu-
se la “Contextul naţional privind fondarea și evoluția informaticii româneşti”. Vom găsi aici:
o istorie a ştiinţei calculatoarelor în lume; o istorie a introducerii informaticii în şcoala
românească; mărturisirile celor care au creat istoria domeniului, prin implicarea în
dezvoltarea informaticii româneşti, a celei teoretice, dar şi a construcţiei de calculatoare.
În decursul anului 2018, un seminar de Istoria Matematicii şi Informaticii, dedicat
Centenarului Marii Uniri, organizat de Divizia de Istoria Ştiinţei a Comitetului Român
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 15

pentru Istoria şi Filosofia Ştiinţei şi Tehnicii al Academiei Române (DIS/CRIFST), a dat


ocazia unor specialişti să prezinte activitatea desfăşurată de-a lungul anilor, ca
informaticieni la Facultatea de Matematică – Informatică, la Centrul de Calcul al
Universităţii din Bucureşti (CCUB), sau la Institutul de Fizică Atomică, (IFA), prin care au
contribuit la formarea generaţiilor de matematicieni – informaticieni şi de ingineri. Acest
seminar de la Academia Română a fost şi un impuls pentru alcătuirea prezentelor volume.
Ceea ce prezicea Profesorul Grigore C. Moisil cu peste 60 de ani în urmă, spunându-ne că
“toate meseriile […] de la inginerie la muzicologie, de la fizica atomică la turism, de la istorie
la medicină (vor folosi) calculatoarele”, se realizează astăzi şi în România. Facultăţile de
matematică şi cele inginereşti au pregătit specialişti, atât pentru utilizarea şi construcţia
calculatoărelor, cât şi pentru dezvoltarea teoriei informaticii.
Cu programul de învăţământ pentru disciplina numită Informatică, pentru care a
militat profesorul Moisil, reuşind să-l impună în facultăţi şi în Centrul de Calcul al UB,
iniţial condus de marele profesor, s-a ajuns în situaţia că “Astăzi, în România, industria
software şi tehnologia informației sunt considerate ca fiind dintre cele mai dezvoltate şi
performante sectoare” (citat din carte, vol. I, capitolul “Prefaţă şi Argumente”).
Performanţele şi importanţa informaticii pentru economia românească au la bază
un mare număr de cercetări, din care au rezultat concepte şi teorii ştiinţifice originale,
reflectate în cele 144 de titluri date în bibliografie şi în cele peste 400 de cărţi de
specialitate, publicate până în anul 2000 şi amintite la sfârşitul cărţii.
Editorul, Dr. Marin Vlada, cu peste 40 de ani de activitate în domeniul dezvoltării
software-ului şi cel al învăţământului superior de informatică, fiind şi autorul majorităţii
capitolelor, a studiat şi cercetat peste 15 ani “fenomenul” informaticii mondiale şi pe cel al
informaticii româneşti.
Istoria Informaticii româneşti şi a eforturilor celor care s-au implicat în dezvoltarea ştiinţei
de care beneficiază întreaga societate, merită a fi cunoscută. În plus, parcurgerea paginilor
celor 2 volume este o lectură cuceritoare, nu doar pentru specialişti ai domeniului,
reprezentând şi un act de cultură generală. Editorul promite și alte volume. Recomand
publicarea celor două volume în forma actuală.

Prof. univ. dr. Eufrosina Otlăcan,


Comitetul Român de Istoria şi Filosofia Ştiinţei al Academiei Române
16 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

PARTEA a III-a

Prof. Dr. Ion Văduva1,


25 aprilie 2019, București

Este un efort lăudabil din partea prietenului Marin Vlada, un fost student și
doctorand eminent al meu, de a întreprinde această muncă notabilă și serioasă, de a colecta
date și a le intrepreta, despre Istoria Informaticii în România, care cuprinde o perioadă de
peste 60 ani. Sunt date despre instituții, unități de cercetare, constructori de calculatoare
românești, conferințe, colocvii și simpozioane, și ce este mai important, despre oameni
(oameni de știință, profesori, cercetători, ingineri, economiști etc.) care și-au dăruit multă
energie pentru dezvoltarea informaticii și a învățământului de informatică în România. În
acest sens, figura centrală este Acad. Prof. Grigore C. Moisil, un adevărat vizionar, căruia
volumul de față îi dedică multe pagini și aprecieri binemeritate. În anii '50 Gr. C. Moisil a
ținut primele conferințe legate de apariția și dezvoltarea calculatoarelor, a adunat în jurul
său specialiști, ca ing. Victor Toma (primul constructor al calculatoarelor românești din
seria CIFA de la Institutul de Fizică Atomică – IFA), profesori din București și din țară, care
au devenit ulterior pionieri în învățământul superior de calculatoare, sau cercetători în
domeniul informaticii.
Printre realizările lui Moisil, care au demarat începuturile informaticii la noi,
remarcăm ca deosebite: contribuția românească în teoria algebrică a automatelor (inițial
prin logica matematică: 1933/1934, apoi prin teoria algebrică a automatelor: 1949),
înființarea Secției de Mașini de Calcul la Facultatea de Matematică și Fizică din București
(în anul 1959) și înființarea Centrului de Calcul al Universității din București (CCUB), în anul
1962. În cadrul Catedrei de Algebră și Logică de la Facultate și la Centrul de Calcul, ce
funcționa în facultate, au crescut și s-au format primele cadre didactice care au predat
primele cunoștințe despre mașinile de calcul, din care menționăm pe Prof. Leon Livovschi,
Prof. Constantin Popovici, Prof. Paul Constantinescu (primul Director adjunct al CCUB),
apoi asistenții (deveniți ulterior profesori) ca: Octavian Bâscă, Horia Georgescu,
Adrian Atanasiu, Nicolae Țăndăreanu, Virgil Cazănescu, Luminița State, precum și primii
cercetători ai CCUB ca: Stelian Niculescu, Maria Lovin, Sofonea Liviu,
Petre Preoteasa, Matei Bogdan și alții, pe care nu-i mai amintesc și care sunt bine
menționați în volumul de față.
Către sfârșitul anilor '60 s-au realizat progrese importante privind dezvoltarea
informaticii în țară prin dotarea cu tehnică modernă de calcul (calculatoare SUA din seria
IBM 360/30, la CCUB, la Întreprinderea „Tractorul Brașov”, la ASE București,) și un
calculator englez ICT (International Computers and Tabulators, devenit ulterior ICL -
International Computers Limited) la Direcția Centrală de Statistică, pentru prelucrarea
Recensământului General, din anul 1966.
În iulie 1969, datorită unor neînțelegeri cu Comisia Guvernamentală de informatică
(dominată exclusiv de ingineri!), Acad. Gr. C. Moisil a demisionat de la conducerea CCUB.
Întrucât eu mă întorsesem din Anglia cu o diplomă de Master of Science (by Research in

1
Prof. Dr. Ion Văduva, promoția 1960, Facultatea de Matematică-Fizică, Universitatea din București,
succesorul acad. Gr. C. Moisil la conducerea Centrului de Calcul al Universității din București (CCUB), cu
doctorat la acad. Gheorghe Mihoc și Master of Science în Automatic Computation la Institute of Science and
Technology, Universitatea din Manchester din Marea Britanie.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 17

Automatic Computation) obținută la Universitatea din Manchester, am fost numit Director


Tehnic la CCUB, în februarie 1970, Director fiind Acad. Nicolae Teodorescu, Decanul
Facultății de Matematică-Mecanică. Urmând sfaturile înțelepte ale Acad. Gr. C. Moisil, am
continuat planul de dezvoltare pentru CCUB din toate punctele de vedere, urmărind în
special direcțiile moderne de cercetare și ideile lui Moisil privind utilizarea calculatoarelor
electronice în rezolvarea problemelor din întreaga economie.
Persoane vizionare, Acad. Gr. C. Moisil, împreună cu Prof. Mircea Malița, pe atunci
Ministru al Învățământului, și-au pus problema dezvoltării învățământului universitar de
informatică. La Institutele Politehnice erau secții de Automatică, unde se învățau în special,
probleme hardware despre calculatoare. Întrucât, subsemnatul era Conferențiar la
Facultatea de Matematică și deținea (part time) funcția de Secretar științific la Ministerul
Învățământului cu probleme de informatică, am primit sarcina, împreună cu D-l Prof.
Dragoș Vaida (Director în Minister), să proiectăm și să elaborăm un program de
învățământ de informatică. Acad. Nicolae Teodorescu, Decanul facultății, a fost entuziasmat
de această idee. Împreună cu colegi din facultate și cu alți colaboratori am alcătuit un plan
de învățământ care cuprindea cursurile de bază ca: limbaje de programare, baze de date,
tehnici de compilare și compilatoare, tehnici de elaborare a algoritmilor, metode numerice și
cursuri de matematică necesare. Erau prevăzute ore de Curs, Seminar și Laborator, scheletul
disciplinelor de bază fiind păstrat și astăzi. Pentru a fi pus în aplicare, acest program
trebuia să aibă aprobarea Consiliului Profesoral al Facultății de Matematică.
Un fapt puțin cunoscut este următorul: după expuneri ale conținutului cursurilor,
făcute de mine, câte o oră în cel puțin 5 ședințe lunare de Consiliu Profesoral, planul nu a
fost aprobat. Deși unii profesori influenți, în vârstă, susțineau acest demers (de ex. Prof.
Mihail Neculce), multe cadre didactice, majoritatea tinere, ripostau că se „modifică profilul
facultății”! Mai mult, vociferau că ne amestecăm cu inginerii! (ca fiind un lucru rău). Deși,
argumentam că Informatica, pe lângă conținutul practic, are un fundament matematic
deosebit, majoritatea cadrelor didactice manifestau repulsie față de acestă idee. Printre
cadrele didactice existau unele slogane ca: „informatică=trombomatică”. Supus la vot, în
toate ședințele de Consiliu Profesoral, planul a fost respins. La ultima ședință de Consiliu
Profesoral, din luna iunie 1972, cînd s-a supus din nou la vot, foarte mulți membri ai
Consiliului Profesoral au ieșit din sală, cvorumul fiind asigurat de o singură persoană,
regretatul Acad. Prof. Gheorghe Marinescu, care s-a abținut și, astfel, planul a căzut la vot.
Întrebat de Decanul Acad. Nicolae Teodorescu de ce se abține, Prof. Marinescu a răspuns
calm: „nu am înțeles”.
Cu toate acestea, Planul de învățământ a fost transmis prin D-l DragoșVaida la
Ministrul M. Malița, care a emis Ordinul de înființare a Secțiilor de Informatică la Facultățile
de Matematică din cele 5 Universități din țară, începând cu vara anului 1972. După acest
episod Ministrul Mircea Malița a fost schimbat din funcție. Conform acestui plan de
învățământ prima serie de studenți a absolvit informatica. Apoi, în anul 1973, planul a fost
reformat în sensul că primii 2 ani de facultate formau un trunchi comun, care prevedea în
primii doi ani un singur curs comasat de Bazele informaticii cu 6 ore pe săptămână de Curs,
Seminar și Laborator. Mai mult, durata studiilor de 4 ani a făcut ca ultimul semestru din
anul IV să fie mai scurt cu o lună, necesar pregătirii de către studenți a lucrării de
diplomă/licență. Cifrele de școlarizare la informatică au scăzut în cinci ani, de la 60 la 25.
Prin anii 1976 s-a introdus un an de specializare (anul V), dar care funcționa numai cu 10
studenți. Totuși, Sectia de Informatică a funcționat anual cu 25 dintre cei mai buni studenți,
18 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

deoarece absolvenții acestei secții erau cei mai căutați pe piața muncii, la Centrele de
Calcul, Institutele de Cercetări etc. În perioada 1972-1992 s-au elaborat cursuri consistente
pentru disciplina „Bazele informaticii” de către toți titularii, din care se remarcă manualele
publicate în edituri de prestigiu, de către Prof. Leon Livovschi și Horia Georgescu, cursul lui
Nicolae Țăndăreanu, precum și manualele de exerciții scrise de O. Bâscă și Petre Preoteasa.
Pentru disciplinele predate în anii III și IV, titularii cursurilor au elaborat manuale
consistente pentru toate disciplinele de informatică. Situația aceasta s-a menținut până
după anii '90. Până la urmă, Consiliului Facultății (format majoritar din matematicieni
puri), a ajuns la o concluzie, și în anul 1992 a schimbat denumirea Facultății în „Facultatea
de Matematică și Informatică”.
Azi, în facultate s-a micșorat mult volumul Secției de Matematică. Secția de
Informatică are un plan de învățământ modern și, în plus, funcționează și o Secție de
Tehnologia Informației (domeniul de licență Calculatoare și Tehnologia Informației –
inginerie de 4 ani), înființată de departamentul CREDIS-IDD (învățământ deschis la
distanță) al Universității, în anul 2005. În anul 2011 această secție a fost transferată la
Facultatea de Matematică și Informatică, ca urmare a noii Legi a Educației Naționale –
apărută în anul 2011, și prin pensionarea conducătorului acesteia, Prof. Dr. Marin Popa.
Prin urmare, astăzi funcționează în facultate cele 2 secții cu profil de Informatică,
foarte căutate de studenți și anume: Secția de Informatică (Licență Informatică – 3 ani) și
Secția de Tehnologia Informației (Licență Calculatoare și Tehnologia Informației – inginerie
de 4 ani). Cea de-a treia Secție este cea de Matematică-Informatică, mai puțin căutată,
deoarece în cei 3 ani de studii, nu se poate asigura o pregătire solidă, iar la modulele de
MASTER (de 1-2 ani), cifrele de școlarizare sunt mult reduse.
Fiind onorat de participarea ca autor la acest proiect național, alături de alți pioneri
ai informaticii românești, mulțumim tuturor autorilor ce au raspuns inițiativei prof. Marin
Vlada privind elaborarea unei Istorii a informaticii românești.

PARTEA a IV-a

Prof. Dr. Stelian Niculescu2,


15 aprilie 2019, București

În anul 1968, acad. Grigore C. Moisil – atunci, Director al Centrului de Calcul al


Universității din București, a acordat un interviu pentru Radio România, în sala
calculatorului IBM 360/30, ce era în expoziție la Centrul de Calcul al Universității din
București (CCUB) și care urma să fie achiziționat de țara noastră. La acest interviu am fost
prezent și eu în calitatea de angajat al CCUB. „Acum vreo 37 de ani (adică în anul 1931) am
început să învăț matematica de la început. Începutul înseamnă Logica matematică. De
Logica matematică, am aflat acu’ vreo 19 ani (adică în anul 1949, de la ing. Leon Livovschi,
devenit ulterior Profesor la Facultatea de matematică a Universității București), se aplica la
automate și automatele cele mai importante, cele care joacă un rol mai viu în lumea noastră

2
Prof. Dr. Stelian Niculescu, promoția 1962, secția „Mașini de calcul”, Facultatea de Matematică-Fizică,
Universitatea din București, student al acad. Gr. C. Moisil și cu doctorat la acad. Solomon Marcus.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 19

de astăzi, sunt calculatoarele electronice. Iată de ce m-ai găsit astăzi aici” (lângă calculatorul
IBM 360/30)” spunea profesorul Gr. C. Moisil.
Anul trecut, în primăvara anului 2018, când am aflat de la prof. Marin Vlada, că a
demarat proiectul ROINFO (Romanian Informatics) privind „Istoria informaticii
românești”, imediat mi-am amintit de activitatea mea de la Centrul de Calcul al
Universității din București (CCUB) și că, am avut șansa vieții mele de a fi în preajma acad.
Gr. C. Moisil, chiar în perioada de pionierat a informaticii românești. De asemenea, i-am
mulțumit prof. M. Vlada pentru inițiativa sa, deoarece era mare nevoie să se descrie și să se
explice „fenomenul informaticii românești” așa cum îi place lui să definească această
perioadă de pionierat în domeniul informaticii din România.
Proiectul național ROINFO (2018-2020) „Realizări românești în domeniul
Informaticii” – un proiect complex și ambițios, își propune să elaboreze studii și cercetări
pentru a descrie și explica „fenomenul” apariției, evoluției și dezvoltării informaticii în
România. Personal, ne-am întâlnit de mai multe ori pentru a discuta despre obictivele
volumelor „Istoria informaticii românești. Apariție, dezvoltare și impact. Oameni,
organizații, evenimente, rezultate și tehnologii”. A reușit, în urma apelului de pe pagina
Web a proiectului ROINFO (http://c3.cniv.ro/?q=2018/ro-info), să organizeze „Intâlnirea
generațiilor de informaticieni”, în ziua de 23 august 2018, la o locație din apropierea Casei
Universitarilor. De asemenea, pe 9 ianuarie 2019, cu ocazia zilei de naștere a lui Gr. C.
Moisil, la Facultatea de Matematică și Informatică din Bucuresti – amf. S. Haret, a reușit să
organizeze „Omagierea lui Gr. C. Moisil” (http://www.c3.cniv.ro/?q=2018/gen-info) prin
evidențierea contribuțiilor acad. Grigore C. Moisil la construirea primului calculator
românesc CIFA 1 – de la Institutul de Fizică Atomică (IFA) – Măgurele, București, și la
apariția și dezvoltarea informaticii în România. Cu această ocazie, mulțumim prof. M.
Vlada pentru că, în prezența unui numeros public – profesori, cercetători, matematicieni,
informaticieni, fizicieni, chimiști, economiști, sociologi etc. (unii cunoscându-l direct pe
profesorul Moisil), miercuri 9 ianuarie 2019, în Amfiteatrul „Spiru Haret” al Facultății de
Matematică și Informatică, s-a organizat o conferință de omagiere a academicianului
Grigore C. Moisil.
La acea conferință, am relatat ca la începutul anului II (1958), am remarcat un afiș
la avizierul din holul facultății care anunța reluarea Seminarului „Teoria algebrica a
mecanismelor automate”, coordonat de Profesorul Gr. C. Moisil. În cadrul Seminarului se
dezbăteau teme precum elemente logice ale calculatoarelor, dispozitive de memorie,
echipamente periferice etc. La seminarii a fost prezentat Proiectul CIFA (Calculator al
Institutului de Fizică Atomică București) Ing. Victor Toma. Proiectul a fost prezentat de
Profesor la Congresul matematicienilor de la Dresda în 1957. A fost bine apreciat și în plan
internațional (G. R. Stibiz: Toma Victor, «Proiectul calculatorului CIFA»), Math. Review,
Junne, 1958, pag, 698). Mi-a făcut o mare plăcere sa întâlnesc colegi cu care am lucrat în
anii de pionierat în informatica din România.
România a fost prima țară din Europa de Est (după fosta URSS) și în primele 10 din
lume care și-a construit cu forțe proprii un calculator electronic, primul calculator fiind
CIFA 1, în anul 1957 (anul acesta – 2019 se aniversează 70 de ani - crearea IFA, la Institutul
de Fizică Atomică (IFA) – Măgurele, București). Menționăm că, recent, a apărut articolul
20 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

3
M. Vlada, Proiectul ROINFO 2018/2019 – 60 de ani de informatică românească, STUDII ŞI
COMUNICĂRI / DIS, vol. XI, 2018, Academia Romănă.
În încheiere, remarcăm structura volumelor I-II: cap. 1. „Contextul internațional la
apariția și evoluția calculatoarelor”, cap. 2 „Contextul național privind fondarea informaticii
românești”. De menționat este faptul că autorul, încă de la început, a declarat că abordează
subiectele din punctul de vedere al conceptului de Computing - istoric și evoluție
(hardware și software).
Lucrare este dedicată Centenarului Marii Uniri din anul 1918 și este elaborată în
memoria acad. Grigore C. Moisil, fondatorul informaticii românești. Sloganul proiectului
RONFO: „Istoria adevărată și relevantă este descrisă de cei care au trăit-o”.
Fiind onorat de participarea ca autor la acest proiect național, alături de alți pioneri
ai informaticii românești, mulțumim prof. M. Vlada pentru inițiativa elaborării unei Istorii a
informaticii românești, și pentru utilizarea diverselor metode și evenimente în a atrage câți
mai mulți autori, care să descrie evenimente, oameni, apariția unor instituții de
informatică, rezultate obținute în utilizarea calculatorului, schimbări și progrese în
instituțiile de învățământ, introducerea utilizării calculatoarelor în toate domeniile
economice etc.
Toate aceste descrieri și explicații sub sloganul „fenomenul informaticii românești”
vor fi, în viitor, un reper important pentru generațiile viitoare privind înțelegerea apariției
și dezvoltării informaticii din România.
***

3
M. Vlada, http://studii.crifst.ro/doc/2018/2018_04_05.pdf, http://studii.crifst.ro/2018.php
PREFAŢĂ ȘI ARGUMENTE

„Calculatorul este o unealtă, ca stiloul, ca maşina de scris, ca telefonul, ca


automobilul. Îl întrebuinţezi de câte ori ai nevoie. Calculatoarele din universitate
sunt cele mai rentabile economic: dau oameni pricepuţi. Cât costă un calculator?
Foarte mult, dacă nu ştii să umbli cu el. Mai mult decât un Rolls-Royce. Dar dacă
ştii lucra cu el, îşi scoate preţul în doi ani. Care este investiţia de capital care se
amortizează în doi ani?"
Grigore C. Moisil în Vom vedea – Ştiinţă şi umanism, „Contemporanul”, 1973

„Analfabetul viitorului nu va mai fi cel care nu ştie să citească, ci cel care nu ştie să înţeleagă”
Alvin Toffler

„Omul, când nu înţelege, e contra”


Acad. Grigore C. Moisil

„Ne naştem cu nevoia de a învăţa şi cu ea trăim pe tot parcursul vieţii. Este pentru fiinţa
umană ceea ce este respiraţia pentru corpul uman."
Acad. Solomon Marcus

Astăzi, în România, industria de software (SI, Software Industry) și


tehnologia informației (IT, Information Technologies) sunt considerate ca fiind
dintre cele mai dezvoltate și performante sectoare. România are venituri din
industria de software, astfel: anul 2014 - 2,42 miliarde EUR (o creștere de 13% față de
2013); anul 2015 - 2,74 miliarde EUR (14% față de 2014). Creșterea estimată pentru
următorii 3 ani: 11%. Cota exporturilor în veniturile industriei: anul 2013: 60%, anul
2014: 65%. Până în anul 2018: +70%. Ratele de creștere ale exporturile anuale
pentru ultimii 3 ani: +17% (Sursa: Andrei Pitiș, ANIS, „Romanian Software and IT
Services Industry”, ANIS-PAC, Iunie 2015). Sectorul IT a ajuns să genereze 6% din
PIB-ul României, fiind „starul” economiei din ultimii ani. De exemplu, în anul 2018,
salariul mediu (aprox. 6.500 lei, 1450 Euro) din acest domeniu a ajuns să fie de 2,4
mai mare decât salariul mediu la nivelul economiei naționale (sursa: Ziarul
Financiar). Conform rapoartelor de bilanț realizate periodic de Institutul pentru
Tehnica de Calcul (ITC), evoluţia industriei româneşti de Tehnologia Informaţiei
şi Comunicaţiilor (TI&C) este analizată ca ansamblu al sectoarelor Software şi
22 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

servicii TI, Hardware şi Telecomunicaţii. Analizele și rezultatele industriei TI&C


sunt bazate, în special, pe prelucrarea datele de bilanţ ale celor peste 21.000 de
firme TI&C din România (în anul 2010). De exemplu, distribuția, pe județe, a
firmelor de software & servicii, în raportul din anul 2011: București – 5.518 firme,
Cluj – 1.143 firme, Brașov – 747 firme, Timiș – 741 firme, Iași – 510. (Ref.: Mircea
Vuici, Industria TI&C în România 2008-2009, 2009-2010 (ani de criză), Institutul
pentru Tehnica de Calcul (ITC), Rapoarte 2010, 2011).
Prezentele volume ale Informaticii românești a fost concepute și realizate
ca rod al celor peste 15 ani de studii și cercetări privind „fenomenul” informaticii
mondiale și cel al informaticii românești, precum și a celor peste 40 de ani de
activitate dedicate de noi în domeniul dezvoltării de software și cel al
învățământului superior de informatică. Conținutul volumelor descrie cu claritate
modul de înțelegere a evoluției informaticii atât la nivel internațional, cât și în
România, prin trăirile și experiențele noastre în studiile și cercetările de
informatică.
De asemenea, este elaborat prin descrierile și mărturiile diverșilor
specialiști din România – oameni de știință, profesori din învățământul superior și
preuniversitar, matematicieni, informaticieni, cercetători, ingineri, economiști etc.,
unii dintre aceștia trăind chiar vremurile de început ale informaticii românești,
mijlocul anilor 1950. În final, volumele publicate cuprind Istoria informaticii
românești scrisă de cei care au trăit-o.
În anul Centenar al Marii Uniri din anul 1918, dedicăm aceste volume celor
peste 60 de ani de informatică românească.
Am avut în vedere următoarele 8 aspecte, evenimente și obiective:
1. Perioada 1934-1942, când la Universitatea din Iași, profesorul Grigore C.
Moisil se ocupa de «Logică și teoria demonstrației» și propunându-și «să
învețe matematica de la început», studiind la «minunata bibliotecă» a
Seminarului matematic din Iași, cartea lui Hilbert și Ackermann, dar și cele
3 volume Principia Mathematica ale lui Russel și Whitehead, cu trimiteri la
Principles of Mathematics. „În primăvara 1935, T. Kotarbinski, profesor la
Universitatea din Varșovia a ținut la Iași 3 conferințe publice și o scurtă lecție
la Seminarul Matematic asupra scrierii fără paranteze a lui Lukasiewicz. De
la el am aflat despre logicile cu mai multe valori ale lui Lukasiewicz” (Sursa:
Grigore C. Moisil, Contribuția românească în teoria algebrică a automatelor,
în AMC (Automatică, Metrologie, Calculatoare), Ed. Tehnică, nr. 13-14, 1970).
2. Perioada 1953-1955, când România era pe locul III, după USA și URSS,
privind activitatea de cercetare în teoria circuitelor de comutație (Sursa:
Grigore C. Moisil, Activitatea Centrului de Calcul al Universității din
București, Contribuția românească în teoria algebrică a automatelor, în
AMC (Automatică, Metrologie, Calculatoare), Ed. Tehnică, nr. 13-14, 1970) –
a se vedea graficul de mai jos. Din grafic, se poate observa că în perioada
1938-1949, doar URSS și USA erau reprezentare prin număr de articole în
acest domeniu. De remarcat, numărul de 37 de articole din URSS și doar 8
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 23

din USA. În anul 1954, România a făcut un salt semnificativ ocupând locul
III în lume.
3. Anul 1954 - Seminarul de „Teoria algebrică a mecanismelor automate”
condus de Gr. C. Moisil (din anul 1954). „În 1949 logica matematică în țara
noastră avea un trecut. Aceasta a făcut posibilă abordarea aplicațiilor ei în
studiul circuitelor de comutație. Publicasem în 1949 un articol în care arătam
cum nu se poate separa cercetarea matematică în două, unele capitole
prezentând interes pentru întrebuințarea lor în fizică și tehnică, altele nu.
Puțin timp după apariția acestui articol un tânăr inginer, Leon Livovschi 4, a
venit să-mi arate câteva articole din revista sovietică <Electicestvo> și să mă
întrebe dacă instrumentul matematic utilizat în acele articole nu era tocmai
algebra logicii. Astfel, am venit în contact cu cercetările sovietice asupra
utilizării logicii matematice în studiul circuitelor de comutație. Matematica
românească era pregatită să abordeze această problemă” – Gr. C. Moisil.
4. Anul 1957, când la Institutul de Fizică Atomică (IFA) București - Măgurele,
un colectiv coordonat de ing.
Victor Toma a construit primul
calculator românesc CIFA-1
(Institutul de Fizică Atomică
de la Măgurele a fost înfiinţat
în anul 1956 din Institutul de
Fizică al Academiei, fondat în
anul 1949 sub conducerea
savantului Horia Hulubei, care
a fost şi primul director IFA. În
anul 2019 se aniversează 70 de
ani de la înființare).
5. Acad. Grigore C. Moisil este
singurul om de știință român
care a primit o recunoaștere
internațională în domeniul
Computer Science, prin
medalia „Computer Pioneer
Award” of IEEE Computer
Society (1996) pentru „For
polyvalent logic switching
circuits”. Medalia i-a fost
înmânată doamnei Viorica
Moisil, soția lui Mosil, la 15
aprilie 1998, cu ocazia

4
Ulterior, a devenit profesor de informatică la Facultatea de Matematică, Universitatea din București, Ref.:
M. Vlada, „Leon Livovschi, un pionier al informaticii românești”, http://www.c3.cniv.ro/?q=2015/leon, 2015
24 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

ceremoniei ce a avut loc la Palatul Elisabeta - București. Dintre cei prezenți


au fost Barry Johnson, președinte în acel an al IEEE Computer Society,
Michael Elliott secretar general IEEE, Mihai Drăgănescu, Solomon Marcus,
Vasile Baltac și un numeros public (a se vedea imaginea de mai jos-sursa
imaginii prof. V. Baltac).

6. Anul univ. 1959/1960 (update: 4.04.2019, inițial – în unele surse, era anul
1960), când la Facultatea de Matematică și Fizică – Universitatea din
București, acad. Grigore C. Moisil a înființat secția „Mașini de Calcul”, ce era
urmată de studenți în ultimii doi ani de studii (în acea vreme studiilor la
matematică durau 5 ani).
Despre începutul informaticii românești, vom aminti următorul eveniment,
unde s-au menționat „izvoarele” informaticii românești. Recent, în anul
2013, în amf. Spiru Haret de la Facultatea de Matematică și Informatică, la
întâlnirea aniversară a promoției 1978 - Informatică, acad. Solomon Marcus
(1925-2016) a făcut observația că Informatica în Romania își are izvoarele,
mai înainte, prin anul 1954, când s-au pus bazele secției de „Mașini de
Calcul”, prin cursul liber „Teoria algebrică a mecanismelor automate” ținut
de acad. Grigore C. Moisil. De asemenea, a amintit că, în anul 1956 Grigore
C. Moisil devine președintele Comisiei de Automatizări a Academiei
Române, iar ulterior, în anul 1965 devine președintele Comisiei de
Cibernetică a Academiei Române. Prin urmare, după opinia noastră acestea
sunt momentele și evenimente de început ale apariție și dezvoltării
Informaticii românești. În imaginea-document de mai jos, de la întâlnirea
promoției 1978 - Informatică, acad. Solomon Marcus se află în rândul 1, al
doilea, de la stânga la dreapta.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 25

7. Volumele au fost elaborate din dorința de a descrie relevant și cu dovezi


evenimentele desfășurate de-alungul vremii pentru înțelegerea corectă a
evoluției informaticii românești, atât pentru contemporani – care au trăit
etape ale informaticii românești, cât și pentru generațiile viitoare de
informaticieni. În felul acesta, în viitor se va înțelege mult mai ușor evoluția
unor teorii, metode și tehnologii din domeniul Informaticii și al Tehnologiei
Informației (IT).
8. De asemenea, un alt obiectiv esențial al volumelor este să evidențieze
recunoștința noastră pentru eforturile și preocupările profesorilor noștri de a
ne ajuta să înțelegem atât componenta de teorie, cât și componenta
practică în utilizarea calculatoarelor – chiar în perioada când în România
nu erau calculatoare. Recunoștința noastră este și pentru multele generații
de informaticieni, care prin activitatea de dezvoltare hardware și software
au contribuit, de la început la dezvoltarea informaticii românești. De-
alungul vremii, unele din aceste eforturi au fost realizate și cu mari
sacrificii, ținând seama de contextul științific, tehnic, economic, social și
politic al anilor ce au trecut de la începutul apariției informaticii în țara
nostră, și pînă în zilele nostre.
În lume, Informatica (Computability theory, Computer Science și Computing) a
apărut odată cu susținerea tezei de doctorat de către matematicianul englez Alan
26 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Turing5, în anul 1937, când au aparut ideile precursoare ale Computing și ale
proiectării și dezvoltării calculatoarelor electronice (Computer System). Acesta este
considerat fondatorul Informaticii și al Inteligenței Artificiale introducând
fundamentele conceptului de calculabilitate pentru o mașină de calcul (computing
machine, mașina Turing/Universal Turing machine-UTM) (conceptele de Proces de
calcul și de Algoritm pentru o mașină de calcul). Mașina Turing este capabilă să
proceseze o gramatică nerestricționată, ceea ce implică și faptul că este capabilă să
evalueze expresii din logica de ordinul I într-un număr infinit de moduri. Acest
lucru este demonstrat prin intermediul calculului lambda (λ-calculus). Aceste idei
ale lui Turing l-au influențat pe matematicianul american John von Neumann
pentru elaborarea așa-numitei „arhitecturi von Neumann” a calculatorului modern,
în anul 1945. De altfel, știm că cele mai importante proiecte pentru construirea
calculatoarelor electronice, în perioada 1940-1970, erau proiecte militare secrete.
Domeniile Informatică și Tehnologia Informației (IT) (dezvoltarea de
software și dezvoltarea de calculatoare) sunt rezultatul preocupărilor oamenilor
pentru Computing și care includ proiectarea și construirea de sisteme hardware și
software, pentru o gamă largă de scopuri (adaptare după The Association for
Computing Machinery (ACM), Computing Curricula 2005, Computer Science
6
Curricula (ACM, IEEE)-2013 ):
1. procesarea, structurarea și gestionarea diverselor tipuri de informații
(dezvoltarea și prelucrarea bazelor de date) și cunoștințe (prelucrarea
cunoștințelor oferite de Inteligența artificială),
2. efectuarea de studii științifice cu ajutorul calculatoarelor,
3. crearea de calculatoare inteligente (sisteme inteligente, sisteme expert),
4. crearea și utilizarea mijloacelor de comunicație și de divertisment
(dispozitive electronice), stocarea, găsirea și strângerea de informații
relevante pentru un anumit scop uman etc.
În prezent, conform ACM 2012, Computing cuprinde 12 domenii majore: 1.
Hardware; 2. Computer systems organization; 3. Networks; 4. Software and its
engineering; 5. Theory of computation; 6. Mathematics of computing; 7. Information
systems; 8. Security and privacy; 9. Human-centered computing; 10. Computing
methodologies; 11. Applied computing; 12. Social and professional topics.
Mai recent, conform ACM & IEEE 2013 privind Curriculum Guidelines for
Undergraduate Programs in Computer Science7 există 18 domenii de cunoștințe
(CS2013): The Knowledge Areas are: 1. AL - Algorithms and Complexity, 2. AR -
Architecture and Organization, 3. CN - Computational Science, 4. DS - Discrete
Structures, 5. GV - Graphics and Visualization, 6. HCI - Human-Computer
Interaction, 7. IAS - Information Assurance and Security, 8. IM - Information

5
1937–1970: The "digital computer", the birth of "computer science": In 1937, while at Princeton working on
his PhD thesis, Turing built a digital (Boolean-logic) multiplier from scratch, making his own
electromechanical relays (Hodges p. 138). "Alan's task was to embody the logical design of a Turing machine
in a network of relay-operated switches ..." (Hodges p. 138).
6
Computer Science Curricula, https://www.acm.org/binaries/content/assets/education/cs2013_web_final.pdf
7
Computer Science Curricula, https://www.acm.org/binaries/content/assets/education/cs2013_web_final.pdf
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 27

Management, 9. IS - Intelligent Systems, 10. NC - Networking and Communications,


11. OS - Operating Systems, 12. PBD - Platform-based Development, 13. PD - Parallel
and Distributed Computing, 14. PL - Programming Languages, 15. SDF - Software
Development Fundamentals, 16. SE - Software Engineering, 17. SF - Systems
Fundamentals, 18. SP - Social Issues and Professional Practice.
Cele două domenii - Informatică și Tehnologia Informației, se influențează
reciproc, având în comun sistemele de calcul (computer systems). Aceste
calculatoare și echipamente electronice sunt dintre cele mai performante, pentru
informatizarea și virtualizarea activităților din toate domeniile vieții științifice și
tehnice, economice, sociale etc.
Menționăm câțiva dintre factorii care au contribuit, în România la nivelul
de dezvoltare actual al Informaticii și al Tehnologiei Informației (IT) (dezvoltarea
de software și dezvoltarea de calculatoare) – 6 exemple:
1. Inițiativele și eforturile științifice ale unor entuziaști - oameni de știință,
profesori, cercetători, ingineri, proiectanți etc. (Ex.: Anul 1962, Grigore C.
Moisil înființează, la Facultatea de Matematică, Centrul de Calcul, cu statut
de Laborator pe lângă Catedra de Algebră condusă de Gr. C. Moisil, ce va
deveni Centrul de Calcul al Universității din București (CCUB), primul cu
acest profil din ţară și care va avea un rol important în formarea de
informaticieni în România).
2. Viziunile, strategiile definite și implementate de cercetarea românească în
domeniile Informaticii și ale IT (Ex. 1: Publicarea la Paris - Librairie Malonie
a cărții „Psichologie consonantiste” (The Consonantist Psychology) (1938,
1939) de către Ştefan Odobleja (1902-1978), medic militar și filosof, membru
post-mortem al Academiei Române, azi, considerat părintele ciberneticii
generalizate; Ex. 2: „Asocierea domeniilor Logică – Automatică –
Informatică: Profesorul Gr. C. Moisil mi-a spus că această asociere îi exprimă
viziunea asupra informaticii”. Dragoș Vaida, Informatica în România -
primii ani, 2015; Ex. 3: contribuțiile acad. Tiberiu Popoviciu, director al
Institutului de Calcul din Cluj al Academiei Române, azi Institutului de
Calcul „Tiberiu Popoviciu”).
3. Programe naționale de pionierat privind utilizarea tehnicii de calcul (Ex. 1:
Anii 1966-1967, s-au creat Comisia Guvernamentală pentru dotarea cu
echipamente de calcul şi automatizarea prelucrării datelor, Consiliul
Naţional pentru Ştiinţă şi Tehnologie (CNST), Institutul pentru Tehnică de
Calcul (ITC), „Primul program de informatizare în România”; Ex. 2: Anul
1970, s-au înfiinţat Institutul Central de Informatică (ICI), Fabrica de
calculatoare Bucureşti, licenţă franceză (anul 1968) IRIS 50 - Felix 256/512,
calculator de generația a III-a).
4. Adaptarea și schimbările învățământului la toate nivelele (gimnazial, liceal,
universitar, postdoctoral) pentru integrarea acestuia cu cercetarea și cu
piața muncii (Ex. 1: Anul univ. 1959/1960, Grigore C. Moisil înființează secția
de „Maşini de calcul”, La Facultatea de Matematică și Fizică, inspirat de
Congresul internaţional al matematicienilor români de la Bucureşti, din
28 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

anul 1956. Specializarea „Mașini de calcul” era organizată în ultimii 2 ani din
cei 5 ani de studii; Ex. 2: Anul 1971/72: se înfiinţează secţii de Informatică8 la
Bucureşti, Cluj, Iași, Timişoara (profil universitar); profil tehnic:
Calculatoare şi automatică, profil economic: Informatică economică
(„revoluţia informatică”); Ex. 3: Perioada 1962-1975: la Facultatea de
Matematică, Universitatea „Babeş-Bolyai“ din Cluj-Napoca s-a înființat
secţia de „Maşini de Calcul”, unde s-au predat primele cursuri în domeniu,
unul în anul IV, „Maşini de calcul” de conf. Kiss Ernest şi „Programare în
limbajul FORTRAN” de profesorul D. D. Stancu; în anul 1975 s-a înfiinţat
Centrul de calcul al Universităţii, având ca director pe profesorul Grigor
Moldovan).
5. Organizarea manifestărilor științifice și editarea de publicații de profil
pentru schimbul de idei științifice și pentru promovarea metodelor și
tehnicilor de cercetare în domeniile de profil (Ex. 1: Anul 1967: Colocviul
Internaţional „Tehnici de calcul şi Calculatoare”, cu participare
internațională, organizat de Universitatea din București - la CCUB, ASE şi
Institutul Politehnic din Bucureşti, sub egida Consiliului Național pentru
Știință și Tehnologie, în colaborare cu Academia Română și Asociația
Oamenilor de Știință, cu sprijinul financiar din partea Guvernului
României; Ex.2: Anul 1968: Prima carte românească în acest domeniu a fost
„Calculatoare Universale şi Teoria programării”, publicată de profesorul
Costică Cazacu de la Iași, apoi, în anul 1971 apare cartea „Calculatoare cu
program si teoria programarii” la Ed. Științifică și Enciclopedică; Ex. 3: Anul
1979: prof. Călin Ignat, fost rector la Universitatea „Al. I. Cuza” din Iași, ca
director al Centrului de Calcul al Universităţii, iniţiază INFO Iaşi (cu această
denumire până în anul 1991), primul Simpozion naţional de Informatică şi
introduce noi direcţii de cercetare precum: Metode formale, Procesarea
limbajului natural etc. De asemenea, prof. Călin Ignat introduce pentru
prima dată în facultatea de la Iași cursurile de Inteligenţă artificială și
Inginerie software).
6. Colaborarea științifică și tehnică la nivel internațional pentru dezvoltarea
învățământului, cercetării și a pieței de muncă (Ex. 1: în anul 1967 s-a
înființat CEPECA (Centrul pentru perfecționarea cadrelor de conducere din
întreprinderi din București), înființat pe baza unui acord tripartit dintre
Guvernul român și două Agenții specializate ale ONU, Programul Națiunilor
Unite pentru Dezvoltare (PNUD) și Biroul Internațional al Muncii (BIM); Ex.
2: Perioada 1975-1982, colaborare cu UNESCO la Cursul Postuniversitar
Internațional „Informatică şi Matematici Aplicate în Cercetarea Ştiintifică”,
desfășurat anual la CCUB, Facultatea de Matematică – Universiatea din
Bucureşti, și la care s-au instruit persoane din țară și din străinatate).
8
Din mărturiile prof. dr. Ion Văduva, ce i-a urmat lui Gr. C. Moisil la conducerea CCUB, aflăm că a elaborat
planul de învățământ pentru secția de Informatică, și l-a supus aprobării Consiliului Facultății de Matematică,
de mai multe ori, deoarece nu întrunea numărul de voturi necesare. În final, chiar cu lipsa unui vot, planul de
învățământ a fost prezentat ministrului Mircea Malița, care l-a și aprobat (nota ed.).
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 29

Termenii de Informatică și Tehnologia Informației (IT) au apărut la


momente diferite și au evoluat în funcție de dezvoltarea domeniilor de hardware și
software. Mai înainte, pe plan mondial a apărut termenul Computer Science, în
perioada anilor 1940–1950 (devenind o disciplină academică), când avea loc
proiectarea și realizarea calculatoarelor electronice (computerul modern).
Termenul de Informatică este o combinație între „informație” și „automatic”
semnificând prelucrarea automată a informației, impus mai ale în spațiul european.
În Germania, în anul 1956, omul de știință Karl Steinbuch a inventat
cuvântul „Informatik” publicând o lucrare numită „Informatik: Automatische
Informationsverarbeitung” („Informatics: Automatic Information Processing”).
Termenul englez de Informatică este uneori înțeles ca însemnând același lucru cu
cel de Computer Science. În Franta, în anul 1962, a fost introdus termenul
„Informatique” de către Philippe Dreyfus, alături de alte traduceri-Informatics
(engleză), propuse independent și simultan de Walter F. Bauer și de asociații, care
au fondat Informatics Inc. În Europa, în acea perioada a anilor 1960, s-a introdus
termenul „Informatica” (Romania, Italia, Spania, Portugalia, Olanda), și care se
referea la aplicarea și utilizarea calculatoarelor pentru stocarea și procesarea
informațiilor.
În România, termenul de Informatică s-a impus, în deceniul ’60 ca urmare a
inițiativei acad. Grigore C. Moisil, care a înființat secția de „Mașini de calcul” la
Facultatea de Matematică a Universității din București. Va urma, în anul 1971/1972
(ca urmare a insistențelor lui Moisil asupra ministrului învățământului din acea
vreme, matematicianul Mircea Malița), înfiinţarea secţiilor de Informatică la
Universitățile din Bucureşti, Cluj, Iași, Timişoara; profil tehnic: Calculatoare şi
automatică, profil economic: Informatică economică. De asemenea, o influență au
avut și cărțile informaticianului francez Jacques Arsac (1929–2014), Professor of
computer science at Paris VI Pierre and Marie Curie, Founder of Institut de
programmation de Paris (1967); Jacques Arsac, Système de conduite des
ordinateurs, Dunod, 1968; Jacques Arsac, La Science informatique, Dunod, 1970,
carte ce a fost tradusă în romănă, în anul 1973: J. Arsac, Informatica, Editura
enciclopedică română (traducere și prefață de Constantin P. Popovici și Petru
Năvodaru), 1973.
Evidențiem faptul că la Iași, profesorul Călin Petru Ignat şi-a dedicat
întreaga activitate didactică, ştiinţifică şi managerială înfiinţării şi dezvoltării
Informaticii la Universitatea „Alexandru Ioan Cuza” din Iași. Profesorul Călin Ignat
a îndeplinit funcţii de director al Centrului de Calcul, şef de catedră, decan şi
rector al Universităţii. De remarcat este că în anul 1992, Catedra de Ştiinţa
Calculului de la Facultatea de Matematică a devenit prima și unica facultate de
Informatică din România.
Expresia „Information and Communication Technologies" (IT&C),
„Tehnologia informației și a comunicațiilor” (TIC) a fost utilizată de către diverși
cercetători în anii '80, iar abrevierea IT&C a devenit populară după ce a fost
folosită într-un raport de către guvernul britanic (autor Dennis Stevenson), în anul
1997 și, când a fost revizuit Curriculumul Național pentru Anglia, Țara Galilor și
30 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Irlanda de Nord (anul 2000). Evident că, după anul 1990, este vorba și de apariția și
de aplicațiile sistemului Internet și ale tehnologiilor Web.
În vederea aderării la Uniunea Europeană, începând cu anul 2005, în
România s-a implementat procesul Bologna în învățământul superior, studiile de
formare incluzând domeniile Informatică (3 ani Licență, 2 ani Master, 3 ani
Doctorat), precum și Calculatoare și Tehnologia Informației (4 ani Licență, 2 ani
Master, 3 ani Doctorat), unde specializarea Tehnologia Informației este inclusă
pentru profilul inginerie (4 ani licență). Astăzi, în Europa, termenul de Informatică
reprezinta atât Informatica teoretică (Computer Science), cât și Informatica
aplicată (Informatics). Astăzi, există în America domeniul Computer Science apărut
în perioada 1950-1960, dar și domeniul Informatics, care a apărut mai târziu ca
urmare a utilizării calculatoarelor cu aplicații pentru toate domeniile de activitate
(Exemplu: The B.Sc. in Informatics Analysis, training, software, and data
management services for Harvard Faculty of Arts and Sciences, Harvard
Informatics, https://informatics.fas.harvard.edu/).
În istoria dezvoltării științelor au existat și confruntări, competiții,
provocări, atât între oamenii de știință, între diverse organizații și instituții, cât și
între diverse țări sau regiuni. Ca știință, Informatica (Computer Science) nu a fost
scutită de astfel de aspecte. Spre exemplificare este de menționat evenimentul din
ziua de 4 octombrie 1957, când în URSS a fost lansat în spaţiu cosmic, satelitul
Sputnik (83.6 kg), primul satelit artificial al pamântului, şi când liderii SUA erau
îngrijoraţi de un prim atac sovietic, ce ar putea fi un atac preventiv. A fost
momentul când, la Departamentul Militar al Apărării SUA au început mai multe
proiecte de cercetare secrete. Ca o reacție, în SUA, la 31 ianuarie 1958 a fost lansat
Explorer 1 (14 kg), primul satelit artificial lansat de SUA, fiind al treilea după sateliţii
URSS Sputnik 1 şi 2. Astfel, au fost urgentate activitățile pentru construirea
calculatoarelor electronice în vederea cuceririi spațiului cosmic.
De asemenea, în anul 1944 - pentru scopuri militare și de aparare, în secret
a început proiectarea calculatorului EDVAC (Electronic Discrete Variable
Automatic Computer), la Laboratorul de cercetare balistică (Ballistics Research
Laboratory), folosind raportul de cercetare coordonat de matematicianul maghiar
John von Neumann, raport ce va deveni baza arhitecturii calculatorului modern –
arhitectura von Neumann (a se vedea The von Neumann Architecture of Computer
Systems, First Draft of a Report on the EDVAC, John von Neumann's 1945, publicat
în anul 1981). Calculatorul a fost livrat în anul 1949, dar cu toate acestea, din cauza
unor probleme, a început să funcționeze după doi ani, fiind păstrat în serviciu până
în anul 1961.
Și în Romania, în procesul de apariție și de dezvoltare privind calculatoarele
și Informatica - în perioada interbelică, în perioada comunistă, în perioada de după
revoluția din anul 1989, au existat diverse evenimente, confruntări și conflicte,
competiții și schimb de idei, între diverși oameni de știință, între instituții, între
diverse proiecte sau strategii de dezvoltare. România acelor ani, înainte și după cel
de-al II-lea Război Mondial, era conectată la activitatea științifică și tehnică privind
apariția noilor științe Cibernetica și Informatica, prin eforturile științifice ale
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 31

comunității mondiale, la construirea sistemelor de calcul (computer systems). În


deceniul ‘60, România era considerată între primele țări din lume (după SUA,
Anglia, URSS, Germania, Franţa, Japonia, Austria, Olanda, Italia, Danemarca)
privind cercetările și eforturile pentru construirea calculatorului electronic. Școala
românească de matematică9 s-a dezvoltat sub influența matematicienilor români,
ce și-au susținut doctoratele cu prestigioși matematicieni din Franța, Germania,
Italia. De exemplu, matematicianul Gabriel Sudan (1899-1977) a publicat în anul
1927 (înaintea lui W. Ackermann, 1928), prima funcție recursivă ce nu este primitiv
recursivă.
În anul 2018 s-au împlinit 40 de ani de la moartea lui Ştefan Odobleja
(1902-1978), medic militar și filosof, membru post-mortem al Academiei Române și
80 de ani de la publicarea la Paris, de către Librairie Malonie, a cărții sale,
„Psichologie consonantiste”, 1938, 1939 (The Consonantist Psychology). Odobleja
este considerat părintele ciberneticii generalizate. Noua știință a fost numită
Cibernetică, în anul 1948, după ce, 10 ani de la apariția cărții lui Odobleja,
matematicianul american Norbert Wiener publică „Cybernetics or Control and
Communication in the Animal and the Machine”, carte apărută în același timp la
Paris și New York. Se poate afirma că Cibernetica a contribuit la apariția primelor
calculatoare electronice, după anul 1945, și la dezvoltarea Informaticii (Computer
Science) și a Inteligenței artificiale.
În argumentarea unor evenimente și schimbări, amintim doar câteva
exemple – 8 exemple, fără să detaliem (acestea se vor regăsi în cuprinsul prezentei
cărții):
1. Perioada 1933-1934 – În anul universitar 1933-1934, la Universitatea din Iași
Grigore C. Moisil (1906-1973) a ținut primul curs de Logică și teoria
demonstrației. „Pe atunci nu-mi închipuiam nici eu, nici alții în lume, că
algebrele lui Boole și logica matematică ar putea avea alt rost decât să
permită o analiză mai adâncă a raționamentului deductiv. Iar despre logica
lui Heyting, cea a lui Lewis, cele ale lui Łukasiewicz, era foarte greu să încerci
să explici cuiva că ele nu erau un <joc pur> sau, în cazul cel mai bun, o
încercare de răsturnare a fundamentelor matematicilor” Gr. C Moisil, 1970.
2. În anii 1950, Gr. C. Moisil a fost figura cheie în promovarea informaticii și a
ciberneticii în cercurile academice, universitare și liceale din România.
Acest lucru se întampla într-un moment în care România a fost puternic
influențată de dominația politică sovietică. În acel moment, dicționarul
oficial filosofic, tradus din limba rusă și publicat în anul 1953, descria
Cibernetica ca o „știință burgheză reacționară îndreptată împotriva clasei
muncitoare”. În ciuda acestui fapt, Moisil a folosit autoritatea sa științifică
pentru a încuraja personal oamenii de știință români să construiască

9
„Știinta calculatoarelor, în țara noastră își are originile în anume preocupări ale matematicienilor. ...
Matematicienii din țara noastră au înțeles că dintre diferitele tipuri de automate finite, calculatoarele sunt fără
îndoială cele mai importante” Gr. C. Moisil, Activitatea Centrului de Calcul al Universității din București
(CCUB), AMC nr. 13-14, 1970
32 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

primele calculatoare românești, care au apărut în perioada 1957–1961 (sursa:


https://www.computer.org/web/awards/pioneer-grigore-moisil).
3. „Chiar înainte de punerea în funcţiune a calculatorului CIFA-1, prof. Moisil a
sesizat necesitatea activităţii într-un domeniu nou, al programării
calculatoarelor, şi în acest scop a susţinut repartizarea la I.F.A. a unor
studenţi merituoşi ai Facultăţii de Matematică, din seria anului 1956 făcând
parte D. Vaida, I. Zamfirescu şi N. Moldovan, iar din seria următoare G.
Martin, B. Cristoriu şi alţii. Sarcina matematicienilor nu era deloc uşoară: ei
trebuiau să identifice problemele care puteau fi rezolvate folosind mijloace
automate de calcul, să stabilească algoritmi corespunzători pentru calculul
numeric, să programeze problemele în cod maşină, cum se lucra în acea
perioadă, şi să rezolve efectiv problemele propuse. În plus, trebuiau să ţină
cursuri de programare cu beneficiarii, pentru ca aceştia să-şi soluţioneze
singuri problemele.” Ing. Victor Toma, Discurs la Academia Româna la
aniversarea a 90 de ani de la nașterea lui Gr. C. Moisil, 1996.
4. Se pot aminti eforturile profesorului Grigore C. Moisil pentru înființarea
Centrului de Calcul al Universității din București (CCUB), anul 1962, pe care
l-a condus în calitate de director până în anul 1969, când și-a dat demisia în
urma unor reproșuri adresate acestuia la o sedință de bilanț de la Comisia
Guvernamentală pentru dotarea cu echipamente de calcul şi automatizarea
prelucrării datelor. Trebuie să scoatem în evidență rolul primordial pe care
l-a avut acad. Gr. C. Moisil în promovarea informaticii din România, prin
organizarea unor cursuri privind utilizarea calculatoarelor, aceste cursuri
fiind organizate la CCUB și la sediul mai multor instituții. De exemplu, în
Anexele I și II ale articolului „Activitatea Centrului de Calcul al Universității
din București” de Gr. C. Moisil, din revista AMC, nr. 13-14, 1970, se poate
observa diversitatea de cursuri și de instituții privind activitatea de utilizare
a calculatoarelor electonice. Cursurile (anexa I-15 cursuri, anexa II-30 cursuri)
s-au desfășurat la sediul următoarelor instituții, în perioada 1963-1969, când
Gr. C. Moisil era director al CCUB: Centrul de Calcul al Universității din
București (CCUB), Institutul de Matematică al Academiei, Institutul
Energetic al Academiei, Observatorul Astronomic al Academiei, Institutul de
Mecanica fluidelor al Academiei, Centrul de Cercetări Aerodinamice,
Ministerul Petrolului și Chimiei, Ministerul Construcțiilor de Mașini,
Ministerul Căilor Ferate, Ministerul Forțelor Armate, Academia Militară
București, Institutul Politehnic București, Institutul de Construcții București,
Facultatea de Matematică din Iași, Institute de Proiectare, ISPE, IPROMET,
ISCAS, CEPECA, IPACH, CSCAS. Centrul de Calcul al Universității din
București a funcționat la mai multe locații, inclusiv la Facultatea de
Matematică, până în anul 1993, când din diverse motive ale conducerii
universității, a fost desființat. Imediat, după anul 1989, rămăsese cu statutul
de dinainte de anul 1989, și anume, acesta era organizat și funcționa prin
autofinanțare (statutul de autofinanțare a fost instrodus după moartea
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 33

acad. Gr. C. Moisil – după unii, fiind o inițiativă chiar nefericită). Până în
anul 1993, CCUB a rezistat financiar printr-o sponzorizare.
5. Din analiza unor referințe, inclusiv din mărturiile profesorilor Ion Văduva și
Constantin P. Popovici, aflăm de eforturile și obstacolele acad. Grigore C.
Moisil în demersurile lui pentru apariția și dezvoltarea informaticii în
România. În anul 1972, s-a transferat la Facultatea de Filosofie10 (unde a
ținut cursuri de Logica Propoziţiilor, Fundamentele Matematicii şi Cercetări
Operaţionale), deoarece Decanul de atunci și Consilul profesoral al
Facultății de Matematică, nu au fost de acord cu inițiativa sa de a invita
diverși specialiști din industrie și din cercetare pentru a ține unele cursuri
de informatică la Facultate de Matematică. Gr. C. Moisil începe un şir de
lecţii cu tema "Matematică pentru Ştiinţele umaniste", în cadrul
Laboratorului de Semiotică al Facultăţii de Filologie din cadrul Universităţii
din Bucureşti. Gr. C. Moisil introduce în România studiul traducerii
automate. Publică lucrări despre ceea ce el denumeşte gramatica mecanică.
6. Dezbateri şi clarificări pentru elaborarea programului strategic de
informatizare a României (primul program de dotare a economiei cu
tehnică de calcul), hotărâre a CC al PCR (aprilie 1972) „Perfecţionarea
sistemului informaţional economico-social, introducerea sistemelor de
conducere cu mijloace de prelucrare automată a datelor şi dotarea economiei
naţionale cu tehnică de calcul în perioada 1971–1980”.
7. În perioada în care a fost Ministrul Învățământului (februarie 1970–
octombrie 1972) Mircea Malița (1927-2018), profesor la Facultatea de
Matematică-Mecanică, a înființat la Universitatea din Bucureşti
„Laboratorul de Cercetări Prospective”. Matematicianul Mihai Botez va scrie
un apreciat curs de metodologie a studiilor de prognoză şi va fi numit
director. Mihai Botez, ulterior, devine un cunoscut dizident al regimului
comunist (în anul 1988 primește azil politic în SUA). În anul 1974, la
propunerea Federației Internaționale a Studiilor asupra Viitorului,
Laboratorul de Cercetări Prospective, coord. de Mihai Botez, devine
„Centrul Internațional de Metodologie a Studiilor asupra Viitorului și
Dezvoltării”, afiliat Universităţii din Bucureşti. Ca urmare a unor decizii
adoptate după cutemurul din anul 1977, influențate politic, Centrul condus
de Mihai Botez a fost desființat, iar Mihai Botez a fost angajat programator
la CCUB, în perioada 1978-1981, apoi matematician la secția „Studiul
Sistemelor” coordonată de Solomon Marcus.
8. Cu sprijinul prof. Mircea Malița, Solomon Marcus înființează secția „Studiul
Sistemelor” la Facultatea de Matematică-Mecanică, ce inițial a funcționat pe
strada Mihai Moxa (într-o casă boierească), iar apoi, imediat după

10
„În anul 1971 părăseşte Catedra de Teoria Algebrică a Mecanismelor Automate pe care o deţinea din 1967
în cadrul Facultăţii de Matematică şi trece la Facultatea de Filosofie şi Drept, unde va preda cursuri de Logica
Propoziţiilor, Fundamentele Matematicii şi Cercetare Operaţională", Oana‑Lucia N. DIMITRIU,
Academicianul Grigore C. Moisil, întemeietorul şcolii de matematicieni, STUDII ŞI COMUNICĂRI / DIS,
vol. VII, 2014, pag. 327-345. (Notă. Prof. A. Atanasiu declară că acest lucru se întamplă în anul 1972)
34 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

cutemurul din anul 1977, s-a mutat la etajul IV în clădirea Facultății de


Matematică-Mecanică. Secția „Studiul Sistemelor” condusă de S. Marcus s-a
mutat de pe strada Mihai Moxala la etajul IV, în clădirea facultății. „Cauza
reală a evacuării noastre era de ordin politic, aşa cum s-a putut verifica
ulterior. Informatori care să semnaleze Securităţii starea de spirit de pe
Mihail Moxa nu au lipsit, iar cutremurul din martie 1977 a fost urmat, după
cum se ştie, de un al doilea cutremur, al declanşării mişcării Goma, care a
pus puterea comunistă de la noi în faţa unei situaţii fără precedent.”
Colectivul de Studiul sistemelor avea posturi de cercetători și a funcționat
până în anul 1987, când personalul a fost transferat la CCUB (în anul 1984
erau 6 cercetători: Gheorghe Păun (azi, academician), Mihail Horia Botez,
Monica Tătărâm, Rodica Ceterchi, Marius Pop, Vasile Drăgan).

Un rol important în dezvoltarea domeniilor Informatică și IT l-au avut și îl


au, atât învățământul superior, ce formeaza specialiști cu înaltă calificare, cât și
învățământul preuniversitar, ce deschide tinerilor noi orizonturi privind utilizarea
calculatorului în activitatea de formare pentru piața muncii. Astăzi, în România,
există doar o singură Facultate de informatică, și anume, cea din cadrul
Universității „Al. I. Cuza” din Iași (total studenţi: 1579, cadre didactice titulare: 40,
cadre didactice asociate: 45): „Înființată în 1992, Facultatea de Informatică este
singura din România (precum și Departametul de Informatică de la Universitatea
din București - nota red.) care are planuri de învățământ comparabile și
compatibilizate cu cele ale universităților de tradiție în domeniu, menite să asigure
viitorilor absolvenți cunoștințele necesare în domenii „fierbinți” ale informaticii.” -
http://www.uaic.ro/studii/facultati-2/facultatea-de-informatica/.
Evidențiem câteva aspecte din evoluția acestei facultăți – 4 exemple:
1. În perioada 1958-1960, profesorul Adolf Haimovici a iniţiat o serie de
conferinţe de „Matematici aplicate şi Informatică”,
2. Apoi în anul 1960 a ţinut primul curs de „Elemente de informatică”.
3. De asemenea, în anul 1961, profesorul Costică Cazacu introduce în
cursul său de „Matematici Complementare”, elemente de Teorie a
programării şi Teoria jocurilor.
4. În anul 1962, cursul de „Maşini Calculabile” a fost adăugat la curricula
Facultăţii de Matematică. Prima carte românească în acest domeniu a
fost „Calculatoare Universale şi Teoria programării”, publicată în 1968.

 În ultimii 10 ani, la Facultate de Informatică din Iași, se pot evidenția


rezultatele de excepție obținute de studenți la competiții mondiale (e.g.,
Imagine Cup 2009 – singura clasare pe locul I a României, la secțiunea
Software Design, echipa coordonată de prof. Sabin-Corneliu Buraga),
concursuri importante precum ACM International Collegiate Programming
Contest sau inițiative de genul Google Summer of Code etc. Inițiative mai
recente, unde sunt implicați mulți studenți sunt: „Stagii pe Bune”
(https://stagiipebune.ro/), Innovation Labs (https://www.innovationlabs.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 35

ro/), Codecamp (https://codecamp.ro/), How To Web (https://www.


howtoweb.co/) etc.

 Despre informatica clujeană și Universitatea „Babeș-Bolyai” din Cluj-Napoca


– cu contribuții în dezvoltarea informaticii şi industriei de software din
România: „Clujul a fost al doilea oraş în care s-a construit un calculator.
Meritul revine academicianului Tiberiu Popoviciu, director al Institutului de
Calcul din Cluj al Academiei Române şi profesor al facultăţii noastre. Printre
calculatoarele construite la Institutul de Calcul din Cluj se numără: Marika
(1959), DACICC-1 (1959–1963) și Dacicc–200 (1968). Calculatorul DACICC-1 a
fost construit cu tuburi electronice, tranzistoare şi memorie cu ferite de către
un grup de ingineri (Farkas Gheorghe, Bocu Mircea, Azzola Bruno) şi un grup
de matematicieni care au scris programe în limbaj maşină pentru acest
calculator (Emil Muntean, Liviu Negrescu, Teodor Rus). Calculatorul Dacicc-
200, a fost primul calculator din ţara noastră complet tranzistorizat”.
 Despre Informatica de la Timișoara. Modele de calculatoare de generația I
și II au fost realizate la Timișoara, sub denumirea de MECIPT (Mașina
Electronică de Calcul a Institutului Politehnic Timișoara) – MECIPT-1 în
1961, MECIPT-2 în 1965 și MECIPT-3 în perioada 1967–1974 (nefinalizat,
preconizat a fi echipat cu memorie cu ferite de 4 K cuvinte pe 38 de biți.),
fiind construite de un colectiv format din Wilhelm Löwenfeld, Iosif
Kaufmann, Vasile Baltac, Dan Farcaș, Gavril Gavrilescu și Ștefan Mărușter.
Trebuie menționate aplicațiile realizate pe acest calculator: pe calculatorul
MECIPT-1 s-a proiectat cupola pavilionului central al clădirii „Romexpo”, din
Piaţa Presei Libere – București; La calculatorul MECIPT-1 s-au listat tabelele
care au plecat direct pe şantier pentru turnarea betonului în Barajul de la
Vidraru. S-au făcut simulări pentru o posibilă Hidrocentrală pe Dunăre, cu
bulgarii, în zona Izlaz-Somovit, s-a realizat controlul statistic al calităţii
producţiei pentru uzinele Electromotor din Timişoara, s-a dimensionat
reţeaua de apă a municipiului Arad, s-au făcut calculele de rezistenţă la mai
multe clădiri înalte etc. Ca lucrări de cercetare, s-au calculat turaţia critică şi
profilul paletelor la turbinele hidraulice, care se făceau la Uzinele Reşiţa, s-
au calculat și listat nomograme pentru mărimile de stare ale aburului, s-au
calculat diagramele pentru dimensionarea arcelor încastrate, cu aplicaţii în
construirea barajelor în arc, s-a studiat efectul unor impulsuri (în particular
al trăznetelor) asupra reţelelor electrice şi a transformatoarelor pentru
Uzina Electroputere Craiova etc. Surse: http://www.marketwatch. ro/
articol/3558/ Calculatorul_MECIPT-1/ https://ro.wikipedia.org/wiki/
Istoria_informaticii_%C3%AEn_Rom%C3%A2nia

Un alt moment important în Istoria informaticii din România are loc în


anul 1971, când se înfiinţează secţiile de Informatică la Facultăţile de Matematică
din Bucureşti, Cluj, Iaşi şi Timişoara, secţii care au primit sarcina de a pregăti
36 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

informaticieni pentru viitoarele Centre de calcul, ce urmau să se înfiinţeze în toate


judeţele ţării. La Institutele Politehnice se înfiinţează secţia de Calculatoare şi
Automatică (profil tehnic), iar la Facultăţile de Ştiinţe Economice, secţia de
Informatică Economică (profil economic). Numărul studenţilor de la secţia
Informatică în anul înfiinţării a fost de 75, cu 50 mai mare decât la fosta secţie de
Maşini de Calcul. În anul 1971, la Cluj s-au înfiinţat un Centru de Calcul Electronic
Teritorial şi o filială a Institutului de Tehnică de Calcul din Bucureşti, iar în anul
1975, la Universitatea Babeş-Bolyai, Facultatea de Matematică, s-a înfiinţat Centrul
de calcul al Universităţii, având ca director pe profesorul Grigor Moldovan. Acest
centru avea personal propriu şi se autofinanţa prin prestarea de servicii pentru
toate universităţile din Cluj-Napoca. Centrul universitar Cluj-Napoca devine, pe
linie de învăţământ şi producţie, un reper important pentru dezvoltarea
informaticii din România. Sursa: http://www.cs.ubbcluj.ro/facultatea-de-
matematica-si-informatica-rol-fundamental-in-dezvoltariea-informaticii-si-
industriei-software-din-romania/.

 Despre Facultatea de Matematică și Informatică, Universitatea „Transilvania”


din Brașov. În anul 1971 s-a înfiinţat Universitatea din Braşov (devenită
Universitatea „Transilvania din Brașov”, în 1991), prin comasarea
Institutului Politehnic cu Institutul Pedagogic de 3 ani (înființat prin ordinul
nr. 1829/19 august 1960). La înfiinţare, Universitatea a fost constituită din 8
facultăţi, printre care Facultatea de Matematică şi Informatică (învățământ
de zi de 4 ani, înființată prin Hotărârea Consiliului de Miniştri nr. 1285 din
15 octombrie 1971, cu un an suplimentar de specializare). De la înființare și
până în prezent facultatea a cunoscut o serie de restructurări care au
presupus diverse combinații de specializări, fiind denumită succesiv:
Facultatea de Matematică și Informatică (1971-1974), Facultatea de Științe
(1974-1978), Facultatea de Matematică (1978-1990), Facultatea de Științe
(1990-2002). Din anul 2002, facultatea și-a recăpătat titulatura (și implicit
destinația) inițială. Facultatea reprezintă o componentă de tradiție a
Universității Transilvania din Braşov (Ref.: Monografia Universitatii din
Brașov, 2017).

În timpului mandatului de ministru al învățământului (1970–1972) al prof.


Mircea Malița au inceput discuțiile atât pentru pregătirea în domeniul informaticii
și în utilzarea calculatorului, cât și privind înființarea unei facultăți de informatică.
În acest sens amimtin:
1. Raportul redactat de Grigore C. Moisil în anul 1971 (semnat de Moisil la 11
februarie) „Propuneri privind invatamantul informaticii la Facultatea de
matematică a Universitătii din București” (vezi M. Guran, Monografia
informaticii în România, 2012, anexă)
2. Raport Gr. C. Moisil, 27.01.1973 „Învățământul informaticii în Facultatea de
Matematică” 1973 (petiție adresată prof. Ionel Bucur, decanul Facultății de
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 37

Matematică), Reproducere după Viorica Moisil, A fost odată ... Grigore


Moisil, Bucureşti, Ed. Curtea Veche, 2002 – https://www.scribd.com/doc/
296395184/Raport-Informatica-Grigore-Moisil-1973.
Menționăm că în studiul nostru am găsit și informații eronate: „La
Universitatea din București, în octombrie 1965, Grigore C. Moisil11 devine șeful
catedrei de „Mașini de Calcul” de la Facultatea de Matematică-Mecanică unde
preda Capitole Speciale de Mașini de Calcul și Teoria Programării, precum şi
„Algebra logicii şi aplicaţii”. Prin documentare, am aflat că Andonie George Șt. a fost
inginer, ce a scris mai multe cărți despre isoria matematicii în România, dar nu a
fost profesor la Facultatea de Matematică. În anul 1966 a scris vol. II, unde apare și
Gr. C. Moisil, an în care și-a sărbătorit 60 de ani de viața. Știm, și acest lucru apare
în multe referințe că, Gr. C. Moisil era șeful Catedrei de Algebră din anul 1955 până
în octombrie 1967. În anul 1967 apare Catedra de „Teoria Algebrică a Mecanismelor
Automate”12, ce va fi condusă de Gr. C. Moisil, desprinsă din Catedra de „Algebră”,
ce va fi condusă de Gheorghe Galbură.
Profesorul Gr. C. Moisil a sprijinit pe tinerii absolvenți să meargă la studii în
străinatate pentru pregatirea în domeniul informaticii și să se formeze în utilizarea
calculatoarelor electronice. Vom da doar câteva exemple: Stelian Niculescu –
absolvent al secției „Mașini de calcul” promoția 1962, bursă IBM în anul 1968 –
„Școala IBM” din Sindelfingen, Germania Faderală, destinată formării experților în
pregătirea cadrelor pentru informatică și, anul 1970 (bursă C.I.I.), „Compagnie
International pour l’Informatique” (C.I.I.) din Paris, destinată formării experților în
pregătirea cadrelor pentru informatică; Chirică Laurian Mircea, bursă de studii în
USA; Alexandrescu Anca (căs. Bărsănescu), bursă de studii în Franța; Sofonea Liviu,
bursă de studii M.Sc. în USA; State Luminița, bursă de studii în USA; Căzănescu
Virgil Emil, bursă de studii în Franța etc.
În cele ce urmează trecem în revistă etapele esențiale în evoluția Catedrei
de Informatică de la Facultatea de Matematică - Universitatea din București:
 În perioada 1972-1975 funcționează Catedra de „Logică matematică”
având ca șef de catedră pe prof. dr. Constantin P. Popovici. După
raportul din anul 1971, redactat de Grigore C. Moisil și adresat
conducerii facultății „Propuneri privind învățământul informaticii la
Facultatea de matematică a Universității din București”, acesta s-a
transferat la Facultatea de Filosofie (unde a ținut cursuri de Logica
Propoziţiilor, Fundamentele Matematicii şi Cercetări Operaţionale);
după spusele prof. A. Atanasiu acest lucru s-ar fi petrecut în anul 1972.
 În perioada 1975-1979, se va numi catedra de „Informatică și analiza
aplicată” condusă de acad. Nicolae Victor Teodorescu, directorul CCUB.

11
Andonie George Șt., Istoria matematicii în România, vol. II, 1966, pag. 394 (se pare că este greșit acest
lucru, după declarațiile mai multor profesori. Nota red.).
12
Notă. Ce apare la nota 4 pare în contradicție cu ce scrie Moisil: „Catedra care îngrijea de activitatea
Facultații în domeniul calculatoarelor era catedra de algebră, care în 1967 s-a scindat într-o catedra de algebră
(șef de catedră Gh. Galbura) și o alta de teoria algebrică a mecanismelor automate (șef de catedră G. C.
Moisil)” în Activitatea Centrului de Calcul al Universității din București (CCUB), 1970, AMC nr. 13-14.
38 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 Până în anul 1984 exista Catedra de Informatică și Probabilități


condusă de prof. dr. Ioan Cuculescu.
 După revoluția din anul 1989, în anul 1990 se înființează Catedra de
Informatică, șef de catedră prof. dr. Ioan Tomescu.
 În anul 1993 Catedra de Informatică s-a despărțit în două catedre de
Informatică: Fundamentele Informaticii (șef de catedră prof. dr. Virgil
Căzănescu) și Informatică (Teoretică) (șef de catedră prof. dr. Ioan
Tomescu). Din mărturiile prof. Virgil Căzănescu și prof. Adrian
Atanasiu, de fapt Catedra de Informatică teoretică se numea simplu,
Catedra de Informatică.
 În anul 1997 existau două catedre de informatică: Fundamentele
Informaticii (23 cadre didactice, șef de catedră prof. dr. Virgil
Cazanescu) și Informatică (31 cadre didactice, șef de catedră prof. dr.
Ioan Tomescu). În schimb, în volumul „Lista lucrărilor științifice ale
cadrelor didactice și cercetătorilor din Facultatea de Matematică”
(Decan V. Preda), Editura Universității din București, 1997, apare
tipărit Informatică teoretică.
 În anul 2000 existau două catedre de informatică: Fundamentele
Informaticii (21 cadre didactice, șef catedră prof. dr. Alexandru
Mateescu) și Informatică (18 cadre didactice, șef catedră prof. dr. Ion
Tomescu).
 În anul 2002, la Universitatea din București apare denumirea de
Facultatea de Matematică și Informatică, cu durata de 4 ani.
 În anul universitar 2005/2006 începe implementarea procesului
Bologna cu desfășurarea celor 3 cicluri de studii: studii de Licență (3
ani), studii de Master (2 ani) și studii Doctorale (3 ani).
 În anul 2011, ca urmare a apariției Legii Educației Naționale, s-au
înființat Departamentul de Matematică, respectiv Departamentul de
Informatică, definite ca structură de organizare a facultății.
 În anul 2015, la Facultatea de Matematică și Informatică (Decan conf.
dr. Victor Țigoiu) - Universitatea din București existau 88 cadre
didactice (conform listei personalului cu drept de vot pentru alegerea
modalității de desemnare a rectorului - http://www.unibuc.ro)
organizate în Departamentul de Matematică (48 cadre didactice) și
Departamentul de Informatică (40 cadre didactice). Comparativ, dacă
în anul 2000 existau 8 catedre, ce cuprindeau 127 de cadre didactice, în
anul 2015, existau 88 cadre didactice în 2 departamente (48 cadre
didactice de matematică, respectiv 40 cadre didactice de informatică).
De asemenea, se poate compara cu anul 1997, când existau 104 cadre
didactice de matematică (în 5 catedre) și 54 cadre didactice de
informatică (în 2 catedre).
 În anul 2018, la Facultatea de Matematică și Informatică (Decan conf.
dr. Radu Gramatovici) - Universitatea din București existau 43 cadre
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 39

didactice în Departamentul de Matematică și 52 cadre didactice în


Departamentul de Informatică.

Chiar și în sinteză, activitatea didactică și de cercetare din Informatică nu


poate fi reprezentată complet, dacă nu se evidențiază și următoarele aspecte –
unele chiar recente (studii și cercetări, cursuri, școli doctorale, inițiative, proiecte,
evenimente etc.; observații ale prof. Sabin-Corneliu Buraga, Iași):

 rezultate românești în teoria limbajelor formale (Gh. Păun, C. Calude,


T. Jucan, V. Căzănescu, A. Atanasiu, Gh. Ștefănescu, V. Mitrana, D.
Lucanu etc.); conferințe recente, Working Formal Methods Symposium
(FROM), 2017 și 2018 organizate de ICUB (The Research Institute of
the University of Bucharest), Facultatea de Matematică și Informatică –
Universitatea din București și Facultatea de Informatică din Iași.
 cercetări românești de calculul cu membrane (membrane computing) și
modele computaționale moleculare (Gh. Păun, G. Ciobanu, V. Mitrana etc.)
 metode formale în ingineria software (D. Lucanu, Fl. Ipate, A. Ștefănescu
etc.) – The 10th International Workshop on Software Engineering for
Resilient Systems (SERENE), simultan cu 14th European Dependable
Computing Conference la Facultatea de Informatică din Iași.
 algoritmi genetici și calcul evolutiv – ECODAM, Evolutionary
Computing in Optimization and Data Mining (D. Simovici, V. Mitrana,
H. Luchian etc.)
 studii și cercetări privind rețelele Petri (T. Jucan, F. L. Țiplea etc.)
 cercetări de Inteligență artificială la RACAI (Institutul de Cercetări
pentru Inteligență Artificială “Mihai Drăgănescu”, înființat în anul 1994)
(D. Tufiș etc.)
 procesarea limbajului natural – EuroLAN (The Summer School on
Biomedical Text Processing, inițiativă a prof. Dan Cristea; D. Cristea, D.
Tufiș etc.); Human Language Technologies Recearch Center, Facultatea
de Matematică și Informatică – Universitatea din București
(http://nlp.unibuc.ro/), ce organizează International Conference on
Recent Advances in Artificial Intelligence (RAAI) - din 2017, și Solomon
Marcus seminar in Computational Linguistics.
 seria de cercetări și conferințe RoCHI (anul 2004, Prima Conferinţă
Naţională de Interacţiune Om-Calculator, cu contribuția lui Ștefan
Traușan-Matu); anul 2000, primul curs de Interacțiune om-calculator
inițiat de S. Buraga; anul 2004, prima teză de doctorat în domeniul
realității virtuale, autor Dorin Mircea Popovici, Universitatea „Ovidius”
din Constanța.
 cursuri, ateliere și articole de tehnologii Web (începând cu anul 1999 și
continuate în perioadele 2001–2007 și 2010–2013) (S. Buraga).
40 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 Web semantic și date deschise (open data) – (anul 2004, prima teză de
doctorat din România cu această tematică, S. Buraga); prima
monografie disponibilă.
 grupul român de suport pentru educație cu Open Source – ROSedu
(Răzvan Deaconescu etc.).
 dezvoltarea și utilizarea programele Open Source - Școala de Vară
„Informatica la Castel” (GNU/Linux, inițiată în anul 2003, de
Universitatea de Vest „Vasile Goldiș” din Arad în colaborare cu
Facultatea de Informatică din Iași; S. Buraga, M. Jalobeanu etc.).
 sisteme încorporate (embedded systems), dezvoltare de Open Source
Internet of Things – de exemplu, proiectul Wyliodrin inițiat de
Alexandru Radovici, Școala de vară IP (Ideas&Projecs) Workshop,
ințiată în anul 2005 (http://www.ipworkshop.ro/).
 securitatea informatică (contribuții teoretice ale prof. Țiplea; sistemul
românesc Bitdefender; evenimente și conferințe recente Defcamp,
inițiate în anul 2011, https://def.camp/; organizații de profil: Centrului
Naţional de Răspuns la Incidente de Securitate Cibernetică (CERT-RO),
înființat în anul 2011, https://cert.ro/; Asociația Națională pentru
Securitatea Sistemelor Informatice (ANSSI), http://anssi.ro/; concursul
european „European Cyber Security Challenge”, http://www.
cybersecuritychallenge.ro/).
 Bioinformatică, biomedicină, informatică medicală (G. Ciobanu , V.
Mitrana, A. Păun, A. Ștefănescu, M. Mărușteri etc.)

În anul Centenarului Marii Uniri din anul 1918, organizațiile publice din
România au ințiat diverse acțiuni de celebrare a evenimentului istoric realizat de
români în anul de grație 1918. Aceste acțiuni se doresc a fi un omagiu pentru
eforturile deosebite realizate de națiunea română în toate domeniile vieții
economice, sociale, științifice, tehnice etc. Inițiativele și eforturile, de-alungul
anilor, au fost realizate de mulți înaintași în toate activitățile lor, de aceea, astăzi,
avem o datorie patriotică pentru ca aceste modele, succese și realizări românești să
fie transmise ca „tezaur” generațiilor actuale și celor ce vor veni, să fie cunoscute și
pe plan mondial.
Proiectul ROINFO „Informatica în România” (Romanian Informatics) își
propune să elaboreze studii și cercetări pentru a descrie și explica „fenomenul”
apariției, evoluției și dezvoltării informaticii în România. Fiind un început, acest
demers nu poate fi complet și cuprinzător decât dacă avem în vedere diversitatea
de variabile în timp și spațiu. Suntem conștienți de faptul că studiile vor fi
caracterizate de subiectivism, fiind vorba de oameni, evenimente, instituții, procese,
teorii și aplicații, metode și tehnologii, evoluții și schimbări etc.
De asemenea, demersul nostru este cu atât mai oportun și major, având în
vedere faptul că încă mai există în viață oameni de știință, profesori, cercetători,
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 41

matematiciei, informaticieni, ingineri, economiști etc., ce au trăit în deceniile '50-


'60, când se consolida informatica pe plan mondial și, când s-au construit primele
calculatoare electronice din generațiile I-III. „Anul 1960: apărea prima profesie -
programator calculatoare electronic; Anul 2018: sunt standardizate 23 de profile
diferite de profesii IT și 40 competențe profesionale. Peste câțiva ani cererea de
specialiști IT în Europa va fi cu 1 milion mai mare decât oferta.” Prof. dr. Vasile
Baltac, președinte ATIC (Asociația pentru TIC din România), prezentare susținută
la deschiderea Conferinței Naționale de Învățământ Virtual (CNIV), ediția a 14-a,
Universitatea din Craiova, oct. 2016.
Am lansat acest proiect cu speranța unor contribuții din partea mai multor
persoane privind: articole și opinii, studii ale unor concepte și teorii, evoluția și
dezvoltarea unor programe pentru dezvoltarea învățământului de informatică,
evoluția și dezvoltarea industriei de calculatoare din România, descrierea unor
evenimente prin poze, scheme etc.
Astăzi, Informatica face parte din categoria științelor exacte: Matematică,
Fizică, Chimie, Informatică, fiind cea mai noua știință cu impact revoluționar
asupra tuturor domeniile societății omenești, în particular, românești. Este
sugestiv să prezentăm principalele etape privind apariția, evoluția și dezvoltarea
informaticii – 6 etape:
1. Deceniile '30-'40 – apariția și consolidarea științei sistemelor –
CIBERNETICA; Noua știință a fost numită Cibernetică, în anul 1948, după
ce, 10 ani de la apariția cărții lui Odobleja, matematicianul american
Norbert Wiener publică „Cybernetics or Control and Communication in the
Animal and the Machine”, carte apărută în același timp la Paris și New York.
Cibernetica a contribuit la apariția primelor calculatoare electronice, după
anul 1945, și la dezvoltarea Informaticii (Computer Science) și a Inteligenței
artificiale. „Ulterior, în 1960, am participat la Congresul internaţional de
automatică I.F.A.C. Din delegaţia română mai faceau parte doi specialişti,
Hanganut din Cluj şi Popov din Bucureşti. În cursul unei excursii organizate
cu acest prilej, l-am cunoscut pe Norbert Wiener, întemeietorul ciberneticii,
ştiinţa care era mult atacată în presa sovietică, pe teme ideologice, fiind
considerată o pseudo-ştiinţă americană.” (International Federation of
Automatic Control (IFAC13), was founded in September 1957 -
https://www.ifac-control.org/) Victor Toma, 1996.
2. Deceniile '50-'60 – apariția și construirea calculatoarelor electronice din
generațiile I-III; apariția sistemelor de operare și a limbajelor de
programare; primele cercetări și rezultate în teoria limbajelor formale și în

13
IFAC is the global organization for the accountancy profession dedicated to serving the public interest by
strengthening the profession and contributing to the development of strong international economies. IFAC is
comprised of over 175 members and associates in more than 130 countries and jurisdictions, representing
almost 3 million accountants in public practice, education, government service, industry, and commerce.
42 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Inteligența artificială; România acelor ani, înainte și după cel de-al II-lea
Război Mondial, era conectată la activitatea științifică și tehnică privind
apariția noilor științe: Cibernetica și Informatica, prin eforturile științifice
ale comunității mondiale, la construirea sistemelor de calcul (computer
systems). În deceniul ‘60 România era considerată între primele țări din
lume (după SUA, Anglia, URSS, Germania, Franţa, Japonia, Austria, Olanda,
Italia, Danemarca) privind cercetările și eforturile pentru construirea
calculatorului electronic.
3. „Campania Moisil” de informatizare a României anilor ’60-’70 – Grigore
Moisil a gândit un proiect transformat într-o acţiune naţională privind
„matematizarea României” și utilizarea calculatoarelor, Moisil fiind cel care
a avut ideea introducerii liceelor și facultăţilor de informatică în România,
și o iniţiativă foarte importantă – de a crea un Centru de Calcul la
Universitatea din Bucureşti. În felul acesta, la acea vreme, România era una
dintre cele 10 universităţi din lume care aveau un Centru de calcul.
4. Deceniile '70-'80 - apariția microprocesorului și trecerea de la sistemele de
calcul de tip batch (tehnologia cartelelor perforate, cartele Hollerith) la
sistemele de calcul interactive (generațiile IV-V); apariția limbajelor de
programare pentru baze de date, grafică pe calculator, inteligența artificială;
apariția sistemelor de operare pentru rețele de calculatoare; apariția
primelor sisteme expert (inteligente); desfășurarea proiectului japonez
pentru construirea calculatorului inteligent de generația a V-a; Apariția
primelor mari aplicații de sisteme informatice, apariția primelor sisteme
expert în diverse domenii: medicină, chimie etc. Performanțe deosebite ale
sistemelor de operare destinate sistemelor de calcul (PC și rețele de
calculatoare): sistemele de operare Windows, RSX 11M, Novell etc. Perioada
de consolidare a gândirii algoritmice și dezvoltarea gândirii obiectuale
(Object-oriented Programming – OOP.
5. Deceniile '90-2000 – apariția rețelei mondiale de calculatoare (sistemul
Internet) și a tehnologiilor Web 1.0 și 2.0; apariția sistemului de operare
Linux, apariția motoarelor de căutare Google; apariția limbajelor de
programare HTML, Java etc., apariția tehnologiilor ASP, PHP, MySQL etc, a
platformelor Content Management Systems (CMS), Learning Management
Systems (LMS, e-Learning) etc. Apariția telefoanelor mobile: mobile device
(handheld computer)- LCD flatscreen sau touchscreen.
6. Deceniile 2010-2020 – apariția primei generații de iPhone (mobile phone) cu
sistemul de operare iOS – anul 2010, apariția primul smartphone (handheld
personal computer) cu mobile operating system (Android), apariția
tehnologiilor de imprimare 3D, apariția tehnologiilor Touchscreen – Tablet
computer (portable personal computer) și iPad, apariția tehnologiilor de
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 43

Realitatea Virtuală (Virtual reality, VR) și a tehnologiei 3D - AR (Augmented


Reality), apariția paradigmei Cloud computing, apariția tehnologiilor
multiple – Internet of Things (IoT).

Câteva date despre Facultatea de Matematică şi Informatică a Universităţii


din Bucureşti creionează contextul în care aceasta a apărut și s-a dezvoltat. Încă de
la înfiinţarea Universităţii din Bucureşti, în anul 1864 (în anul 2014 s-au aniversat
150 de ani de la înfiinţare), Matematica a funcţionat ca secţie în cadrul Facultăţii de
Ştiinţe. Informatica s-a studiat încă din anul 1959, când a apărut ca specializare,
secţia „Maşini de calcul” (ultimii 2 ani din 5 ani de studii), urmănd ca în anul 1971 să
fie concurs de admitere pentru specializarea Informatică, iar din anul 1974 să
continue concursul de admitere pentru specializarea Informatică (în anul 1973 a
fost concurs de admitere, în comun; după anunțarea rezultatelor, în luna august,
fiecare candidat admis a primit o scrisoare în care era înștiințat să opteze pentru
Matematică sau Informatică).

Istoric: date importante (Ref.: http://mvlada.blogspot.com/2013/03/):

1863 – sunt înfiinţate Facultatea de Ştiinţe şi DECANI


Facultatea de Litere (prin Decretul Domnitorului Facultatea de Matematică
Alexandru Ioan Cuza, nr. 967/8 octombrie 1863) şi Informatică din Bucureşti
1919-1923: Gheorghe Țițeica,
1864 – se înfiinţează Universitatea din Bucureşti (prin decan, Facultatea de Științe
decretul domnitorului Al. I. Cuza, nr. 765, 4/16 iulie 1925–1926, 1932–1939 şi
1864) 1948-1951: Simion Stoilow,
1948 – are loc reforma învăţământului, se înfiinţează decan, Facultatea de Științe
Facultatea de Matematică şi Fizică 1951-1960: Gheorghe Mihoc
1962 – are loc separarea în Facultatea de Matematică- 1960-1972: Nicolae Victor
Mecanică şi Facultatea de Fizică (ambele funcţionand Teodorescu
în cladirea Universităţii din Bucureşti, din centru, 1972-1975: Ionel Bucur
intrarea D) 1975-1984: Cabiria Andreian
Cazacu
1974 – are loc schimbarea denumirii în Facultatea de 1984-1989: Nicu Boboc
Matematică, iar Facultatea de Fizică este transferată la 1989-1992: Nicolae Radu
Campusul „Măgurele”, inaugurat în anul 1975 1992-1996: Ion Colojoară
1996-2004: Vasile Preda
2002 – are loc schimbarea denumirii în Facultatea de 2004-2008: Ion Chiţescu
Matematică şi Informatică 2008-2009: Ştefan Dragoş
2011 – are loc transformarea catedrelor în două 2009-2016: Victor Ţigoiu
departamente: Departamentul de Matematică și 2016-2020: Radu
Departamentul de Informatică Gramatovici
44 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

FOTOGRAFIE DOCUMENT (sus) – O pagină din istoria matematicii românești,


Facultatea de Matematică și Fizică – anul 1958 (https://www.facebook.com/ssmr.ro/)
Fotografie personală de la acad. prof. Ioan-Iovitz Popescu primită de prof. Cristian Calude: în primul
rând, șezând, de la stânga la dreapta: Gheorghe Brătescu (fizician, prodecan), Alexandru Froda,
Viorica Ionescu (curs de algebră), Octav Onicescu, Miron Nicolescu: în spate, în picioare, de la stânga
la dreapa: Solomon Marcus, Gheorghe Gussi, Valentin Poenaru, Grigore C. Moisil (aplecat), Ciprian
Foiaș, Marius Stoka, Gheorghe Mihoc, Ion Cuculescu, Tiberiu Roman, Nicolae Dinculeanu, Caius Iacob,
Mocanu Petre, Petre P. Teodorescu.

Date comparative privind evoluția procesului de admitere: anul 1987 vs. 2018.

Admitere la Facultatea de Matematică Admitere la Facultatea de Matematică și


anul 1987 Informatică - anul 2018
Numărul de locuri pentru admitere – Numărul de locuri pentru admitere –
sesiunea iulie 1987. sesiunea iulie 2018.
Învățământ la ZI: Informatică (I=14, N=11), Învățământ cu frecvență (IF, 3 ani):
Matematică-Mecanică (I=16, N=9), Domeniul de licenţă: Matematică
Matematică (I=65, N=100); Învățământ la (Programele de studii: Matematică,
FF: Matematică (I=1, N=39); Învățământ la Matematică–Informatică, Matematici
SERAL: Informatică (I=2, N=23), aplicate) buget: 132, taxă: 68; Domeniul de
Matematică-Mecanică (I=2, N=23). licenţă: Informatică (Programul de studii:
Învățământ de scurtă durată (3 ani) Informatică) buget: 215, taxă: 79; Domeniul
Matematică-Fizică: (I=13, N=62), unde I= de licenţă: Calculatoare și tehnologia
încorporabili, N=neîncorporabili (începând informației (4 ani, Programul de studii:
cu vara anului 1974, cei care erau admiși în Tehnologia informației) buget: 75, taxă: 25.
învățământul superior, după admitere, Învățământ la distanță (ID): Domeniul de
efectuau stagiul militar obligatoriu de 8 luni, licenţă: Informatică (Programul de studii:
după care, în anul următor, urmau cursurile Informatică) Taxă: 75.
la facultate).
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 45

În România, preocupările pentru dezvoltarea unor școli de calculatoare și


de informatică, pentru dezvoltarea industriei de hardware și de software, au făcut
ca oamenii de știință și specialiștii români sa fie din ce în ce mai apreciați în lume.
Chiar dacă, în țările puternice ale lumii (SUA, Anglia, URSS, Germania, Franţa,
Japonia, Austria), proiectele de construire a calculatorului erau secrete, eforturile
oamenilor de știință, ale specialiștilor români, erau concentrate atât pentru
utilizarea teoriilor științifice în definirea circuitelor electronice, cât și pentru
realizarea de calculatoare romanești.
Un rol major în toate aceste eforturi l-a avut matematicianul acad. Grigore
C. Moisil, azi considerat fondatorul informaticii românești. Gr. C. Moisil a pus
bazele şcolii de algebra logicii, a teoriei algebrice a mecanismelor automate şi a fost
fondatorul studiilor de logică polivalentă şi logică nuanţată, care au ajutat la
realizarea primelor calculatoare româneşti. Astăzi, Romania se poate mândri că, în
jurul anului 1960 era a 8-a țără din lume care construia calculatoare electronice și
că, în perioada 1970-1980 a existat prima strategie de dotare cu tehnică de calcul,
prima informatizare din România – pentru care Gr. C. Moisil a militat încă din anii
1960. Acesta a fost nu numai un vizionar pentru domeniul informaticii, dar a
mobilizat oamenii de știință și specialiști în aceste eforturi comune: matematicieni,
fizicieni, ingineri, economiști, sociologi, psihologi etc.
FOTOGRAFIE DOCUMENT (mai jos) – O pagină din istoria informaticii
românești, Facultatea de Matematică-Mecanică – anul 1968, acad. Gr. C. Moisil la
pupitrul calculatorului IBM 360/30, Centrul de Calcul al Universității din București
(fotografie personală Stelian Niculescu).
46 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Alături este medalia „Computer


Pioneer Award” (IEEE, 1996)
decernată lui Gr. C. Moisil – „For
polyvalent logic switching
circuits”, singurul om de știință
român care a primit această
recunoaștere internațională.
„Certificatul de naștere" al
calculatoarelor este teza de
doctorat (1936) a lui Alain Turing,
prin ideea mașinii universale (deci,
programabile, date + programe scrise în același loc, pe bandă) și teorema de
existență a unei asemenea mașini. John von Neumann a declarat explicit că a fost
influențat de ideile lui Turing. Dar, nu e nicio contradicție cu matematicianul român
Gabriel Sudan, ce și-a dat doctoratul cu David Hilbert. Eu vorbesc despre „pre-
istoria” informaticii (românești), căutând rezultate care astăzi pot fi citite ca fiind de
informatică. De pildă, Teoria limbajelor formale este parte a informaticii teoretice;
șirurile Thue și extensii ale lor sunt studiate mult în Teoria limbajelor formale - iar
șirurile Thue au fost introduse la începutul secolului 20 (ca rezultat al iterării de
morfisme pe V^*). Asta înseamnă că Teoria limbajelor formale are începuturile acum
120 de ani, fără ca asta să extindă informatica însăși până acolo (chiar dacă, la 1900,
Hilbert vorbea despre rezolvarea „mecanică”, deci algoritmică, a ecuațiilor
diofantice, apoi a întrebat explicit „ce înseamnă a calcula mecanic?”)” acad. Gh.
Păun, iunie 2018 (Sursa: http://www.c3.cniv.ro/?q=2018/cifa-mecipt).
Discipolii acad. Grigore C. Moisil de la Facultatea de Matematică și
Informatică din București: Solomon Marcus, Sergiu Rudeanu, Leon Livovschi,
Dragoș Vaida, Ioan Tomescu, Ion Văduva, Constantin P. Popovici, Virgil Emil Căzănescu.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 47

Urmașii ideilor și continuatorii inițiativelor lui Grigore C. Moisil, pionieri ai


informaticii românești: Gheorghe Păun, Cristian Calude, Adrian Atanasiu, Horia
Georgescu, George Georgescu, Octavian Bâscă, Ileana Popescu, Luminița State,
Nicolae Țăndăreanu, Tudor Bălănescu, Alexandru Mateescu, Radu Nicolescu, Ioan
Roșca, Gheorghe Marian, Denis Enăchescu, Stelian Niculescu.

Mai târziu, după anul 1990, mulți specialiști în informatică și în


calculatoare au participat la activitatea unor companii renumite sau la activitatea
unor proiecte internaționale majore. În multe situații se zice că „La compania
Microsoft, a doua limbă vorbită este Româna”.
Pentru rezolvarea problemelor complexe și dificile din cadrul proiectelor
internaționale participă o diversitate de oameni de știința și de specialiști din
multe domenii: matematică, informatică, fizică, chimie, biologie, psihologie etc. De
exemplu, evidențiem finalizarea proiectului genomului uman „Human Genome
Project” (HGP) din perioada 1995-2005. Proiectul HGP a fost un program
internațional de cercetare colaborativă al cărui scop a fost reprezentarea completă
a cartografierii și înțelegerii tuturor genelor ființelor umane, http://150.uaic.ro/
personalitati/informatica/sorin-istrail/. Toate genele noastre sunt cunoscute ca
„genomul uman” (genome). The Human Genome Project – https://www.
genome.gov/12011238/an-overview-of-the-human-genome-project/. Aprilie 2003 -
50 Years of DNA Celebration, https://www.genome.gov/10005139/50-years-of-dna-
celebration/. În imaginea de mai jos remarcăm și participarea oamenilor de știință
români: Sorin Istrail14 și Liliana Florea.
14
http://150.uaic.ro/personalitati/informatica/sorin-istrail/
48 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

În zilele noastre, după anul 1995, deja au început cercetări pentru


schimbarea de paradigmă privind evoluţia calculatoarelor: Calculatoare moleculare
(Molecular Computers, DNA Computing, inventator Leonard Adleman - 2002
Turing Award) şi Calculatoare cuantice (Quantum Computers, Peter Shor –
Massachusetts Institute of Technology (MIT), 1994). În câţiva ani, calculatoarele
noi (Quantum Computer) de la IBM, Google şi Microsoft vor accelera descoperirile
din domeniile chimiei, medicinei şi ştiinţei materialelor (Ref.: http://www.
nextbigfuture.com/2017/03/in-few-years-new-quantum-computers-from.html).
Calculatoarele cuantice vor fi mai puternice decât calculatoarele
convenţionale, pentru probleme de rutare eficientă, pentru logistică, pentru
companiile de cartografiere, noi forme de învăţare automată, inventarea de noi
produse, teste de diagnosticare îmbunătăţite. Primele calculatoare cuantice
universale vor fi utilizate în chimie pentru simularea de molecule şi reacţii.
Simulând efectele cuantice care modelează structurile şi reacţiile moleculare,
aceasta este o problemă naturală pentru aceste calculatoare, deoarece puterea lor
vine de la datele de codificare în aceleaşi stări cuantice dificile. Componentele care
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 49

alcătuiesc computerele cuantice, cunoscute sub numele de qubiţi, pot utiliza


procese cuantice mecanice pentru a executa comenzi rapide de calcul imposibile
pentru o maşină convenţională. Recent, la 4 martie 2016, oamenii de știință de la
Massachusetts Institute of Technology (MIT) au creat primul computer cuantic cu
cinci atomi, cu potențialul de a sparge securitatea sistemelor tradiționale de
criptare.

OBSERVAȚII
MOTTO: Istoria adevărată și relevantă este cea descrisă de cei care au trăit-o.
Nevoia unei istorii a Informaticii românești.

Un volum care să cuprindă Istoria informaticii românești, de la apariție și


până mai recent, necesită un efort dificil și laborios, având în vedere diversitatea de
aspecte ce trebuie studiate, astfel încât să apară o descriere cât mai reală și cu cât
mai puține elemente subiective în interpretarea informațiilor și ale acțiunilor.
Mărturisim că aceste aspecte de istorie și de evoluție, ne-au preocupat începând
din anul 2003, prin inițierea proiectului CNIV (Conferința Națională de Învățământ
Virtual, „Noi tehnologii în educație și cercetare”) la Universitatea din București – 4
ani la Facultatea de Matematică și, apoi în turneu la cel mai reprezentative
universități din România. Inițial, în demersul nostru, pentru a întelege evoluția
informaticii la Universitatea din București, am luat în considerare activitatea
noastră din domeniul informaticii, dar am ajuns la concluzia că, nu vom înțelege
apariția și evoluția informaticii, dacă nu vom analiza acțiunile și măsurile așa cum
s-au întâmplat în realitate: evenimente, decizii la nivel guvernamental, măsuri de
schimbare și adaptare, fapte și inițiative ale unor oameni de știință, mărturii și
explicații ale unor fapte petrecute în diverse etape, întâmplări și diverse
contexte etc.
În unele descrieri este posibil să apară greșeli sau confuzii: de exemplu, în
unele referințe apare că secția „Mașini de calcul” (2 ani, anul 4 și 5) a fost înființată
de Moisil în anul 1959, și în altele, anul 1960. Prof. Stelian Niculescu mărturisește că
anul corect este 1959, dânsul fiind a II-a promoție, ce a absolvit în anul 1962. De
asemenea, denumirea de Catedra de „Informatică Teoretică” apare în cartea tipărită
în anul 1997 „Lista lucrărilor științifice ale cadrelor didactice și cercetătorilor din
Facultatea de Matematică” (Decan V. Preda), Editura Universității din București, în
schimb, din mărturiile profesorilor V. Căzănescu și A. Atanasiu, denumirea reală
este Catedra de „Informatică”. De asemenea, cu ocazia redactării acestui volum, am
găsit și greșeli în unele referințe studiate: de exemplu, în Andonie George Șt., Istoria
matematicii în România, vol. II, 1966, pag. 394 apare că „Moisil a devenit șeful
catedrei de Mașini de calcul, în anul 1965”, fapt ce este greșit după declarațiile mai
multor profesori, în anul 1965 Moisil fiind încă șeful catedrei de Algebră.
„Proiectul unei istorii a informaticii în țara noastră, evident, este de mare
complexitate din cauza multitudinii de instituții și de orientări științifice implicate,
nu în ultimul rând, și din cauza întrepătrunderii și interacției cu matematica,
50 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

biologia, chimia sau fizica, de exemplu (a se vedea „At the intersection of computer
science with biology, chemistry and physics - in memory of Solomon Marcus”, eds.
Gh. Păun, I. Petre, G. Rozenberg, A. Salomaa, Theoretical Computer Science, 701,
2017 și „100 Romanian Authors in Theoretical Computer Science”, eds. S. Cojocaru,
Gh. Păun, D. Vaida, Ed. Academiei Române, 2018)” Dragoș Vaida, august 2018 –
mesaj e-mail.
O istorie pentru un proces, eveniment, concept etc. poate fi o descriere mai
simplă și care să ofere coerență, unele legături și explicații cu diverse concepte și
termeni. În schimb, „Istoria informaticii românești” nu poate fi tratată matematic
în termeni de teoremă sau teorii ce necesită definirea de ipoteze și concluzii. Se
poate porni de la definirea sau de la ideea că, ISTORIA este reprezentarea
cunoștințelor pe care o persoană le are prin diverse căi și metode pentru a explica:
evenimente, decizii, procese, evoluții etc. Astfel, Istoria este la fel ca ÎNVĂȚAREA.
Învățarea este evoluția în timp a cunoașterii spune Roger Bohn. Istoria despre ceva
este evoluția cunoașterii despre acel ceva. În final, cititorul prezentului volumul va
trebui să facă legături, să-și explice unele aspecte descrise, să înțeleagă unele
decizii descrise în carte, să compare unele rezultate cu altele, să caute modele de
urmat, să tragă concluzii și să-și elaboreze unele obiective viitoare. Să caute greșeli
în decizii, să înțeleagă unele măsuri și programe urmate la un moment dat prin
desfășurarea de evenimente și evoluții. E posibil ca, uneori, cititorul să caute
ipoteze și să obțină concluzii din studiul celor descrise. Istoria este cu oameni, prin
urmare istoria este ca omul, cu bune și cu rele, cu urcușuri și cu coborâșuri. Doar
unii oameni au curajul să înfrunte aceste adevăruri.
Am putea să ne imaginăm cum s-ar scrie ISTORIA INFORMATICII
ROMÂNEȘTI peste 50 sau 100 de ani? Ce s-ar întâmpla dacă nu am face acest efort
astăzi? MULTE CUNOȘTINȚE S-AR PIERDE PE DRUM! De aceea am pornit de la
un Motto: Istoria adevărată și relevantă este cea descrisă de cei care au trăit-o!

CONCLUZII

La sfârșitul „aventurii” și al „spectacolului” privind înțelegerea fenomenului


de apariției și de dezvoltare a Informaticii românești, putem să afirmăm cu
certitudine că, nu credeam să aflăm atâtea aspecte, procese și evenimente
deosebite, ce au condus în final la o Informatică românească cu care România se
poate mândri. Bucuria și satisfacția împlinirii unor căutări pentru aflarea unor
răspunsuri la multe întrebări (unele de acum 40-50 de ani), ce s-au conturat pe
parcursul studiului și cercetărilor noastre, sunt asemănătoare acelui spectacol de
care spunea acad. Solomon Marcus, când compara bucuria realizării unei
demonstrații a unei teoreme cu trăirile de la un „spectacol de teatru”. Am trăit acel
spectacol prin finalizarea unor descrieri din volumele prezente și vrem să
transmitem aceste trăiri, nu numai contemporanilor, dar și celor ce în viitor vor să
înțeleagă și să se mândrească cu realizările din Informatica românească.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 51

În studiul parcurs pentru înțelegerea apariției și dezvoltării informaticii în


România, am aflat că Grigore C. Moisil a urmat 3 ani cursuri de inginerie – secția
construcții (cu examenele promovate), simultan cu cursurile de la Facultatea de
Matematică, pe care le-a continuat – doar pe acestea, obținând doctoratul în
matematică cu teza de doctorat „Mecanica analitică a sistemelor continue”, în anul
1929. Parcurgând acei ani de pregătire profesională atât în inginerie, cât și în
matematică, poate de aceea matematicianul Gr. C. Moisil a fost atras și preocupat
cu pasiune de aplicațiile logicii matematice în diverse probleme din practică (prin
discuții și colaborări cu ing. Leon Livovschi și alții, era perioada dezvoltării
aplicațiilor din domeniul automaticii și calculatoarelor), ajungând la Teoria
algebrică a mecanismelor automate – pentru care a fost premiat „Computer
Pioneer” de IEEE Computer Society. Perioada 1932-1942, petrecută de Gr. C. Mosil la
Universitatea din Iași a fost „rampa de lansare” privind aplicațiile logicii
matematice în știință și tehnică. În anul 1970, Gr. C. Moisil a propus Editurii
Tehnicii, în revista AMC nr. 13-14, publicarea unor articole privind Activitatea
Centrului de Calcul al Universității din București, Contribuția românească în teoria
algebrică a automatelor etc., evidențiind că, în anul 1955, România era pe locul III,
după USA și URSS, privind activitatea de cercetare în teoria circuitelor de
comutație. În perioada 1938-1949, doar URSS și USA erau reprezentare prin număr
de articole în acest domeniu. De remarcat, numărul de 37 de articole din URSS și
doar 8 din USA. În anul 1954, România a făcut un salt semnificativ ocupând locul
III în lume. Cu această teorie a promovat construirea primelor calculatoare
românești și utilizarea calculatoarelor electronice la rezolvarea problemelor din
activitățile practice ale oamenilor.
Trebuie să menționăm relatarea lui Victor Toma despre organizarea
Congresului Internaţional de Matematică, ţinut la Bucureşti în anul 1956: „În
aceeaşi perioadă au avut loc în ţară numeroase manifestări ştiinţifice, atât cu
caracter naţional, cât şi internaţional. O manifestare deosebită a şcolii matematice
româneşti a constituit-o Congresul internaţional de matematică, ţinut la Bucureşti
în toamna anului 1956, la care au participat mai mulţi matematicieni renumiţi de
peste hotare. În calitatea sa de preşedinte al Societăţii Matematice din România,
prof. Moisil a avut un important rol organizatoric. Între altele, a organizat pentru
participanţii la congres vizite de informare la laboratorul de calculatoare electronice
de la I.F.A. Măgurele. Calculatorul CIFA-1 era deja construit şi urma să intre în
funcţiune câteva luni mai târziu, în aprilie 1957. Pentru mulţi dintre matematicienii
ale căror preocupări erau eminamente teoretice acesta era un domeniu nou şi vedeau
pentru prima dată un calculator electronic.”
Astăzi, în proiectele internaționale și naționale, participarea în echipe
mixte – matematicieni, informaticieni, ingineri, fizicieni, chimiști, biologi, psihologi,
pedagogi, economiști etc., poate conduce la obținerea de rezultate utile și necesare
societății, ca urmare a rezolvării diverselor probleme ce implică metode, teorii,
algoritmi, inclusiv utilizarea sistemelor de calcul performante, acestea fiind
aplicate printr-o colaborare în cadrul proiectelor. Probabil, în anul 1962, aceste
deziderate l-au condus pe Gr. C. Moisil la necesitatea înființătii Centrului de Calcul
52 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

al Universitatii din București (CCUB). Viziunea, crezul și spiritul lui Gr. C. Moisil au
influențat gândirea celor ce i-au urmat ideile în anii în care în România au apărut
calculatoarele și au fost utilizare la rezolvarea de probleme ale societății, așa cum
prevedea Moisil.
Așa cum domeniul Computing cuprinde aspectele hardware și software, tot
așa și domeniul Informaticii cuprinde dezvoltarea aspectelor teoretice de Computer
Science (știința calculatoarelor/informatică teoretică), în cooperare cu aspectele de
software pentru rezolvarea problemelor complexe din toate domeniile vieții
societății. Acad. Mihai Drăgănescu definea Ştiinţa şi tehnologia informaţiei ca fiind
„domeniul multidisciplinar al ştiinţei și tehnologiei care stă la baza societăţii
informaţionale şi care cuprinde substratul fizic al informaţiei, telecomunicaţiile,
calculatoarele, software, sistemele informatice, informatica teoretică și teoria
informaţiei, Internetul, tehnologia Web, automatica și teoria sistemelor, precum și
aplicaţiile specifice în cele mai diverse domenii: economie, sociologie, medicina
electronică, biologie informaţională, filosofia informaţiei etc.”, Adunarea Generală a
Academiei Române din 24 noiembrie 1998.
În volumul coord. de acad. Florin Gheorghe Filip, Civilizaţia Românească
(coord. Victor Spinei) - Ştiinţa şi tehnologia informaţiei în România, Editura
Academiei Române Bucureşti, 2018, acad. Gheorghe Păun realizează următoarea
abordare privind pagini din istoria informaticii teoretice românești: „va rememora
totuşi o serie de momente semnificative din evoluţia domeniului în ţara noastră.
Vom merge în trecut până în „preistoria” informaticii (teoretice), chiar înainte de
constituirea „ştiinţei calculatoarelor” în lume (preiau sintagma curentă, computer
science, folosită în limba engleză), invocându-l pe Gabriel Sudan, cel care, în 1927,
producea – fără a avea această intenţie, pentru că nici terminologia nu exista pe
atunci – primul exemplu de funcţie recursivă care nu este primitiv recursivă,
insistând apoi asupra celor doi fondatori ai informaticii (teoretice) româneşti,
Grigore C. Moisil şi Solomon Marcus, ajungând în zilele noastre, la multitudinea de
contribuţii ale informaticienilor români la cele mai diverse direcţii de cercetare active
internaţional”.
În anul 2013, cu ocazia celor 110 ani de la nașterea lui Gr. C. Moisil, Prof. Dr.
Cristian Calude concluziona: „Moisil a fost un remarcabil cercetător, care a excelat
în introducerea unor noi idei, metode şi direcţii de cercetare, un profesor
neconvenţional, care a inspirat, motivat şi încurajat un număr mare de tineri care au
devenit la rândul lor matematicieni de valoare, creatorul unor şcoli româneşti de
matematică, în special în mecanica solidelor, logica matematică şi informatică,
susţinătorul aplicaţiilor matematicii în alte domenii, promotorul relaţiei privilegiate
dintre matematică şi informatică şi, ca o consecinţă naturală, cel care a contribuit
cel mai mult la introducerea informaticii în România (în viziunea profesorului
Marcus, campania de alfabetizare computaţională a lui Moisil a fost analoagă cu cea
de alfabetizare dusă de Spiru Haret)”.
Astăzi, Grigore C. Moisil este cunoscut prin activitatea sa științifică
transdisciplinară, contribuțiile sale la fondarea și dezvoltarea unor școli pentru
dezvoltarea științelor, promovarea teoriilor și metodelor matematice în rezolvarea
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 53

problemelor pentru societate și, mai ales promovarea apariției unei noi științe -
Informatica, prin utilizarea calculatorului în multe domenii ale științei, tehnicii și
societății, încurajarea elevilor, studenților și tinerilor cercetători pentru a milita și
a înțelege că „matematica face parte integrantă din cultură, iar valorile umaniste
sunt indispensabile oricărui om”.
Ca exemplu personal, din experiența noastră, evidențiem faptul că formula
ariei unui domeniu simplu conex (aria unui poligon oarecare – azi este cunoscută
chiar de elevii olimpici la informatică și apare în geometria computațională), nu am
aflat-o de la cursurile de matematică sau de informatică, ci de la un inginer topo-
geodez, în anii 1980, în cadrul colaborării la un proiect (contract) în care se
realizau calcule inginerești și reprezentări grafice pentru desene tehnice și unde se
utiliza calculatorul și masa germană de desen automat Digigraf (perioada 1981-
1983, Contract ROMPROIECT pentru lucrări de amenajare a desecărilor în unele
zone agricole din Irak).
Dacă Matematica nu ar fi fost, „nimic nu ar fi fost”: nici zero şi nici fizica,
chimia sau arhitectura, nici roata şi nici calculatorul, nici tiparul şi nici telefonul,
nici Informatica şi nici Cibernetica. Dar, faţă de toate aceste entităţi materiale
inventate de om, Matematica îl ajută pe om să gândească toată viaţa, să creeze şi
să‑şi imagineze, să iubească natura şi pe semenii săi, să fie emotiv şi curajos, să fie
consecvent şi ordonat, să viseze şi să fie fericit.
Vom încheia cu vorbele rostite și scrise de acad. Grigore C. Moisil „Eu nu vă
conving, eu demostrez” şi „Omul, când nu înţelege, e contra”, iar aceste ziceri le
folosea şi acad. Solomon Marcus: „Universalitatea gândirii matematice a fost
interpretată de unii autori ca o pretenţie a matematicienilor de a institui o
hegemonie a matematicii faţă de celelalte domenii ale cunoaşterii. În fapt însă,
universalitatea matematicii este complet echilibrată de aservirea ei faţă de celelalte
discipline”.
„Matematica îşi extrage probleme de peste tot. Am putea chiar spune că cele mai
interesante aspecte sunt cele care apar la interfaţa matematicii cu restul
lumii. Spre această zonă mi-am orientat o bună parte din cercetări” acad.
Solomon Marcus, Discursul de Recepție la Academia Româna.
„Noi învăţăm în general o matematică făcută din rezultate disparate, dar fără
a cunoaşte contextul lor istoric. De foarte multe ori, învăţăm teoreme, fără a
afla la ce întrebări s-au constituit ele ca răspuns. Cred că era bine să realizăm
un echilibru între cele două stiluri, să demonstrăm şi capacităţile tehnice ale
matematicii, dar şi capacităţile ei identice şi culturale. Din păcate,
matematica pe care noi o cultivăm şi în predare şi în cercetare, de prea multe
ori ascunde ideile, dacă ele există, şi uneori, stai şi te întrebi, dacă ele există.”
S. Marcus, Dimitrie Pompeiu, personificarea matematicii de finețe (A
mathematician of the fineness: Dimitrie Pompeiu), RPSS serie nouă, vol. 3,
nr. 3, 2014, p. 232-238.
54 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

MULȚUMIRI

În lunile iulie-septembrie 2018 au avut loc mai multe întâlniri la Casa


universitarilor „Întâlnirea generațiilor de informaticieni”, contributori la volumul
“ISTORIA INFORMATICII ROMÂNEȘTI” – Proiectul național ROINFO dedicat
Centenarului Marii Uniri: „Realizări românești în domeniul Informaticii" –
http://c3.cniv.ro/?q=2018/ro-info.
Pentru observațiile, discuțiile, sugestiile, criticile, ințiativele și contributiile
efective la conținutul acestui volum, cu multă recunoștință, mulțumim următorilor
(unele din discuții au avut loc la Casa Universitarilor, în lunile iulie-august-
septembrie, cu ocazia „Întâlnirii generațiilor de informaticieni”): Dragoș Vaida, Ion
Văduva, Constantin P. Popovici, Stelian Niculescu, Dan Farcaș, Grigor Moldovan,
Virgil Emil Căzănescu, Ioan Tomescu, Adrian Atanasiu, Ileana Popescu, Denis
Enăchescu, Mihail Cherciu, Nicolae Popoviciu, Tudor Bălănescu, Radu Nicolescu,
Marian Gheorghe, Radu Homescu, Eduard Rădăceanu, Florin Boian, Rareș Boian,
Ion Ivan, Virgil Chicernea, Gabriel Orman, Sabin Buraga, Emil Cătinaș, Victor
Felea, Grigore Albeanu, Angela Ioniță, Adrian Adăscăliței, Radu Jugureanu, Ion
Roceanu, Cătălin Radu, Valeriu Iorga, Marius Marușteri, Mihai Jalobeanu, Florin
Ilia, Ion Radoslovescu, Gabriel Popescu.
Întâlnirea de lucru de la Casa Universitarilor, JOI, 23 August 2018, ora 18.00,
imaginea de jos: Prof. dr. Stelian NICULESCU, Dr. Mat. Dan FARCAȘ, Prof. dr. Ion
VĂDUVA, Prof. dr. Virgil CĂZĂNESCU, Prof. dr. Adrian ATANASIU, Prof. dr.
Nicolae POPOVICIU, Prof. dr. Marin POPA, Prof. dr. Eduard RĂDĂCEANU, Dr.
Fiz. Radu HOMESCU, Dr. Mat. Lucian SPIRIDON, Dr. Mat. Gheorghe RADU,
Conf. dr. Eugen ZAHARESCU, Prof. Mat. Radu JUGUREANU, Conf. dr. Marin
VLADA (+ Prof. dr. Virgil CĂZĂNESCU – venit ulterior).
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 55

Întâlnirea generațiilor de informaticieni – Grigore C. Moisil, omagiat


în Amf. S. Haret, Facultatea de Matematică și Informatică – 9 ianuarie 2019.
Conferința de omagiere a acad. Gr. C. Moisil privind înființarea secției de
„Mașini de calcul” la Facultatea de Matematică. Miercuri, 9 ianuarie 2019, în cadrul
proiectului ROINFO, la Facultatea de Matematică și Informatică, la 60 de ani de la
înființarea secției „Mașini de calcul”, s-a organizat o conferință de omagiere a
academicianului Grigore C. Moisil. Evenimentul a avut loc începând cu ora 12:00 în
Amfiteatrul „Spiru Haret” al Facultății de Matematică și Informatică (str.
Academiei, nr. 14). În cadrul conferinței au fost prezentate secvențe audio-video
care să reflecte personalitatea profesorului Grigore C. Moisil și, a fost făcută o
prezentare a lucrării „Istoria informaticii românești. Apariție, dezvoltare și impact.
Oameni, organizații, evenimente, rezultate și tehnologii”, ce este în curs de
elaborare pentru publicare, iar participanții la eveniment au aflat mai multe detalii
cu privire la cariera și la viața academicianului Grigore C. Moisil.

Printre participanții la conferință s-au regăsit persoane care l-au cunoscut


pe vizionarul ce a introdus informatica în România: prof. univ. dr. Ioana Moisil,
prof. univ. dr. Stelian Niculescu, dr. Dan Farcaș, prof. univ. dr. Vasile Baltac, prof.
univ. dr. Afrodita Iorgulescu, prof. univ. dr. Eufrosina Otlăcan, prof. univ. dr.
Nicolae Popoviciu, prof. univ. dr. Radu Homescu, prof. univ. dr. Eduard Rădăceanu.
La conferință s-a scos în evidență că prin ideile, direcțiile și acțiunile lui Moisil,
sintetizate de: colaborarea cu ing. Leon Livovschi în utilizarea algebrelor Booleene
la studiul automatelor cu contacte și relee (anul 1949); publicarea cărții „Teoria
algebrică a mecasnismelor automate” (1959); înființarea secției „Mașini de Calcul” la
Universitatea din București (1960); înființarea Centrului de Calcul al Universității
din București (CCUB) (1962); dotarea cu un calculator american IBM 360/30 la
56 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

CCUB (1968); înființarea de secții de Informatică la unele universități din România


și apariția liceelor de informatică (1970), profesorul Gr. C. Moisil și-a capătat
statutul de fondator al informaticii românești.
În mesajul său conf. dr. Radu Gramatovici – Decan, a scos în evidență
personalitatea acad. Grigore C. Moisil și rezultatele remarcabile în domeniile
matematicii și ale informaticii. „Vă mulțumim că participați la acest eveniment
dedicat lui Moisil. Mulțumesc prof. Vlada pentru organizarea de amploare a acestei
întâlniri pentru omagierea acad. Gr. C. Moisil. De asemenea, să-i mulțumim pentru
inițiativa de a scrie o carte despre istoiria informaticii românești, deoarece această
istorie trebuie cunoscută și recuperată. Anual, la 10 ianuarie - ziua de naștere a acad.
Gr. C. Moisil - la Casa Universitarilor se întâlnește „grupul Moisil”, discipoli ai lui
Moisil și unele persoane ce vor să-l cinstească în acest fel pe marele savant, care în
anul 1996, post mortem, a fost decorat cu medalia „Computer Pioneer Award of IEEE
Computer Society”. Avem datoria și răspunderea de a cinsti cum se cuvine memoria
acad. Gr. C. Moisil, creator de școli cu care România se mândrește. Vă invit ca în
fiecare an, la 10 ianuarie, să cinstim memoria acad. Moisil”.
O mulțumire specială adresez Prof. Dr. Grigore Albeanu (București), Prof.
Dr. Adrian Adăscăliței (Iași), Prof. Dr. Ion Văduva, Prof. Dr. Stelian Niculescu, Prof.
Dr. Adrian Atanasiu, Prof. Radu Homescu, Prof. Radu Jugureanu (București) și Dr.
Emil Cătinaş (Cluj-Napoca), cu care am avut multe discuții și analize privind teme
și proiecte ale utilizării calculatoarelor și ale metodelor și tehnologiilor oferite de
Informatică și de IT, în rezolvarea problemelor din proiecte, inclusiv din domeniul
educațional. Abordarea de direcții oferite de Computing (a se vedea ACM –
Association for Computing Machinery 2012) și implementată în prezentul volum,
este concluzia acestor discuții.

28 August 2018, Constanța, Marin Vlada, Universitatea din Bucureşti, membru


Update: 01 Decembrie 2018, titular CRIFST (Comitetul Român de Istoria şi
15, 23-27 Mai , 17 Iunie 2019, Filosofia Ştiinţei şi Tehnicii), Academia Română
Bucureşti
1
Contextul internațional
în apariția și evoluția
calculatoarelor
MOTTO:
Refinement of thinking:
„All science is nothing more than a refinement of everyday thinking.
As a result, a critical thinking physicist cannot be limited to examining
concepts in his own particular field, but must stop and seek towards
the everyday thinking, which is more difficult to analyze.”
Albert Einstein.

Dezvoltarea ştiinţei:
„Dezvoltarea ştiinţei se bazează pe două mari realizări:
invenţia sistemului de logică formală (în geometria euclidiană)
de către filosofii greci, şi posibilitatea de a descoperi relaţii cauzale
prin experiment sistematic (în timpul Renaşterii).”
Albert Einstein.
CUPRINS

1.1 Conceptul de Computing – istoric și evoluție ................................................. 60


1.2 Cronologia tehnicii de calcul – istoric și evoluție........................................... 85
1.3 Raport „ACM Curriculum Committee on Computer Science”, USA, 1968 .... 110
1.4 Raport „Situația și perspectivele evoluției calculatoarelor”, Europa, 1966 .... 159
1.5 Arto Salomaa in the History of the Romanian Theoretical Computer
Science .............................................................................................................. 186
1.6 Apariția și evoluția sistemelor de calcul ......................................................... 189
1.7 Apariția și evoluția societății informaționale ................................................ 212
1.8 Apariția și evoluția limbajelor de programare ............................................... 225
1.9 Apariția și evoluția sistemelor de operare ..................................................... 307
1.10 Apariția și evoluția bazelor de date ............................................................. 329
1.11 Apariția și evoluția rețelelor de calculatoare ................................................ 361
1.12 Ideile inovatoare ale apariției sistemului Internet ...................................... 385
1.13 From recursivity to the Turing universal machine and Horn clauses ......... 392
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 59

Pioneers of Computing
60 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Nevoia de calculator (computer) nu a fost visul doar al unui om de știință sau doar
al unui inventator, deși unii istorici, profesori sau oameni de știință ne pot contrazice cu
diverse argumente din istorie, ce aparent sunt cazuri particulare. Complexitatea
problemelor practice de rezolvat, volumul mare de calcule ce erau necesare de executat,
au condus – din vremuri străbune, la nevoia omului de a construi o „mașina de calcul”.
Calculatorul fost mijlocul (produsul) prin care se combinau și se utilizau o varietate de
soluții eficiente oferite de știință și tehnică, în scopul rezolvării problemelor practice cu
care se confruntau în perioada 1940-1960 națiunile puternice ale lumii: USA, URSS și
UK. Principalele probleme ce erau majore și chiar urgente au fost: militare – de apărare și
de cucerire a spașiului cosmic, ultima problemă fiind tot o problemă majoră de apărare.
 Factorii ce au influenţat conceperea, proiectarea şi dezvoltarea sistemelor de
calcul sunt factori ştiinţifici, tehnologici, sociali, culturali, economici, politici,
militari etc. Un exemplu este ziua de 4 octombrie 1957, când în URSS a fost
lansat în spaţiu cosmic satelitul Sputnik (83.6 kg), primul satelit artificial al
pamântului, şi când liderii SUA erau îngrijoraţi de un prim atac sovietic ce ar
putea fi un atac preventiv; a fost momentul când la Departamentul Militar al
Apărării SUA au început mai multe proiecte de cercetare; drept urmare, la 31
ianuarie 1958 a fost lansat Explorer 1 (14 kg), primul satelit artificial lansat de
SUA, fiind al treilea după sateliţii URSS Sputnik 1 şi 2 (detalii: M. Vlada,
http://www.elearning.ro/idei-inovatoare-si-pionierii-internetului).
 La nivelul indivizilor unei societăți, se poate spune că destinul și viața acestora
sunt influențate de factorii precizați mai sus. Nu este nevoie să venim cu
argumente sau să exemplificăm, simpla studiere a unor biografii ale unor
oameni de știință, de artă etc., ce au trăit în diverse perioade ale istoriei, vor fi
edificatoare pentru oricine.

1.1 Conceptul de Computing – istoric și evoluție


Marin Vlada,
Universitatea din București

Apariția și dezvoltarea științelor este rezultatul preocupărilor milenare ale


oamenilor organizați în societăți omenești. Astăzi, ştiinţele constituie un tezaur al
umanităţii printr-un ansamblu sistematic de informaţii și de legi despre natură, societate şi
gândire. În întreaga sa evoluție pe pământ, omul a avut de înfruntat condițiile de
supraviețuire și de adaptare permanentă la natură. Această adaptare și evoluție l-a
transformat într-o ființă inteligentă, care a inventat științele și, care continuă să inventeze
și să descopere permanent. Mintea și gândirea oamenilor s-a transformat permanent,
realizând condiții de trai cât mai eficiente și cât mai performante și confortabile.
Mediul înconjurător și natura, societățile omenești – tot ce se află pe planeta Terra,
inclusiv în spațiul macrocosmos/microcosmos, se schimbă, se transformă și se dezvoltă
ca urmare a multiplelor fenomene ce apar, se desfășoară și dispar în conformitate cu
diverse legi pe baza cărora își exercită efectele, și ca urmare a stării optime a unor
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 61

parametri ce definesc aceste fenomene. Fenomenele se desfășoară de la un moment


inițial, își exercită efectele pe o perioada de timp finită/infinită, și se încheie la un
moment final, în cazul în care nu are o evoluție infinită. Toate acestea există, atât în
spațiul macrocosmic, cât și în spațiul microcosmic.
Din cele mai vechi timpuri şi de la începuturi, pentru supravieţuire, pentru căutarea
şi pregătirea hranei, pentru adăpost şi apărare, pentru un trai mai bun într-o societate cât
mai evoluată, Omul a fost nevoit să găndească, să muncească şi să acţioneze în condiţii
vitrege şi într-o natură de multe ori potrivnică. Singur, sau ajutat de semeni, Omul şi-a
conceput, şi-a proiectat şi realizat diverse unelte, instrumente, obiecte pentru a-şi realiza
gândurile şi visele, pentru a-şi satisface nevoile vieţii şi fericirii lui sau ale semenilor.
Omul modern a descoperit că toate realizările strămoşilor nu au fost posibile decăt prin
cunoaştere, învăţare şi credinţă. Societatea, şcoala şi familia sunt cei trei piloni ai
societăţii moderne, ce contribuie la păstrarea, ocrotirea, utilizarea şi îmbogăţirea
moştenirii lăsate de înaintaşi, precum şi la perpetuarea acestei moşteniri către generaţiile
viitoare. Astăzi, după ce a explorat o parte din spaţiul cosmic, deja Omul se întreabă dacă
nu cumva este sau nu singura fiinţă inteligentă din univers.
Daniel Pink (2006) în lucrarea „A Whole New Mind: Why Right-Brainers Will Rule
the Future” consideră secolul XXI (21st century) ca fiind al IV-a val, şi anume perioada
conceptelor (concept workers).

Fig. 1 Etapele dezvoltării societății omenești, Daniel Pink (2006)

Științe: dezvoltare, evoluție, schimbări

 „Toată cunoaşterea noastră îşi are originea în percepţiile noastre”, Leonardo da Vinci.
 „Nu se pot prevedea limitele cunoaşterii şi previziunile ştiinţifice”, Dimitri Mendeleev.
 „Ştiinţa reprezintă cunoaşterea organizată. Înţelepciunea reprezintă viaţa organizată”, Kant.

Matematica şi legile naturii:


 „Matematica este un mod de exprimare a legilor naturale, este cel mai
simplu şi cel mai potrivit chip de a înfăţişa o lege generală sau curgerea
unui fenomen, este cea mai perfectă limbă în care se poate povesti un
fenomen natural” Gheorghe Ţiţeica (1873-1939), matematician.
62 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 „Extinderea matematicii ca instrument de cercetare este principala sarcină


a matematicii, iar derivarea de noi concepte matematice furnizează cea
mai bună imagine a naturii sale reale. Fără aceasta, nimeni nu poate
înţelege cu adevărat rolul şi utilitatea sa. Numai dacă înţelegem geneza
matematicii ca dezvoltare a unui limbaj al ştiinţei şi ca un instrument de
cercetare, putem să o aplicăm curent în toate domeniile vieţii noastre.
Predarea matematicii în acest spirit poate schimba complet comportarea
membrilor societăţii din jur” Juraj Hromkovi, informatician, Elveția, 2014.
Limbajele și cunoașterea:
 Mediile din natură sunt guvernate de limbaje. Omul a inventat calculatorul,
limbajele şi ştiinţele pentru cunoaştere. Prin intermediul calculatorului se
prelucrează informaţiile şi cunoştinţele. Pentru reprezentarea şi prelucrarea
informaţiilor calculatorul utilizează limbajele artificiale. Acest fapt
dovedeşte că limbajele au fost inventate nu numai pentru comunicarea
informaţiilor, ci mai ales pentru prelucrarea informaţiilor și cunoștințelor.
Aceste procese fac ca educația, cultura și tehnologia să transforme
gândirea și atitudinea omului.
Reprezentarea și calculatorul:
 Utilizarea sistemelor de calcul a schimbat lumea și continuă să influenţeze
aprope fiecare aspect al vieţii cotidiene, inclusiv în medicină şi asistenţă
medicală, în afaceri şi finanţe, în educaţie şi formare continuă, în ştiinţă şi
tehnologie, în politică şi guvernare etc. Prin apariţia calculatorului şi a
noilor tehnologii de prelucrare a informaţiilor şi cunoştinţelor, ştiințele au
realizat salturi mari în acumularea de descoperiri. Utilizarea calculatorului,
a algoritmilor și a limbajelor de programare în rezolvarea problemelor a
condus la formarea unei gândiri algoritmice în rezolvarea problemelor.
Științele și Computing:
 Ştiințele sunt modele și reprezentări virtuale ale cunoașterii. Limbajele
științifice modelează și prelucrează cunoșterea, oferind oamenilor legi,
metode, tehnici și metodologii în rezolvarea problemelor din activitățile
societății omenești. Fiecare ştiinţă reprezintă un proces continuu al
cunoaşterii ce utilizează metode şi tehnici de observare şi experimente,
metodologii şi tehnologii într-o continuă perfecţionare, metode proprii de
cercetare, informaţii proprii despre obiectele investigate, un limbaj ştiinţific
propriu, dar şi medii specifice de stocare. Prin utilizarea tehnologiilor
oferite de calculator şi de inteligenţa artificială, de realitatea virtuală şi de
invenţii ale tuturor ştiinţelor, e posibil să se reuşească rezolvarea celor mai
importante probleme ale umanităţii. Ştiinţa este un generator de cunoştinţe
obţinute prin activitatea oamenilor de ştiinţă, ce adaugă de fiecare dată la
fondul comun al ştiinţei, informaţii noi şi revizuiri ale unor cunoştinţe
vechi, astfel realizând o dezvoltare permanentă a ştiinţei.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 63

Domenii majore în Computing

Definiție. Computing (tehnică de calcul) reprezintă metode și tehnici de calcul, ce


înseamnă orice activitate necesară și orientată spre scopuri privind proiectarea,
construirea și utilizarea sistemelor de calcul (computer/calculator) în rezolvarea
problemelor necesare oamenilor. Astfel, conceptul de Computing include proiectarea și
construirea de sisteme hardware și software pentru o gamă largă de scopuri: procesarea,
structurarea și gestionarea diverselor tipuri de informații și cunoștințe, efectuarea de
studii științifice cu ajutorul calculatoarelor, crearea de calculatoare inteligente (sisteme
inteligente, sisteme expert), crearea și utilizarea mijloacelor de comunicație și de
divertisment (dispozitive electronice), stocarea, găsirea și strângerea de informații
relevante pentru un anumit scop uman etc. (adaptată după The Association for Computing
Machinery (ACM), Computing Curricula 2005)

Precizăm că acest termen (Computing) poate fi confundat cu următorii termeni


din engleză:
 Calculus (calcul – matematică; ex. differential calculus, integral calculus,
numerical calculus),
 Computation (proces de calcul – informatică, IT&C; ex. algoritm,
calculation process),
 Computational (computațional – matematică, informatică, IT&C; ex.:
computational mathematics, computational geometry, computational
statistics , computational physics, computational linguistics, computational
thinking).

LIMBAJE REPREZENTARE

COMPUTING

Fig. 2 Triada Limbaje-Reprezentare-Computing

Domenii majore (Computing): 1. Hardware; 2. Computer systems organization;


3. Networks; 4. Software and its engineering; 5. Theory of computation; 6. Mathematics
of computing; 7. Information systems; 8. Security and privacy; 9. Human-centered
computing; 10. Computing methodologies; 11. Applied computing; 12. Social and
professional topics. (Ref.: The 2012 ACM Computing Classification System (DL: Digital
Library) - https://dl.acm.org/ccs/ccs_flat.cfm)
64 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Cod Domenii majore-Nivel 0 Subdomenii - Nivel 1


1.Printed circuit boards; 2.Communication hardware,
interfaces and storage; 3.Integrated circuits;
1 Hardware 4.Very large scale integration design; 5.Power and energy;
6. Electronic design automation; 7. Hardware validation;
8. Hardware test; 9. Robustness; 10. Emerging technologies.
1. Architectures; 2. Embedded and cyberphysical
Computer systems
2 systems; 3. Realtime systems; 4. Dependable and
organization
fault-tolerant systems and networks.
1. Network architectures; 2. Network protocols;
3. Network components; 4. Network algorithms;
3 Networks
5. Network performance evaluation; 6. Network properties;
7. Network services; 8. Network types.
1. Software organization and properties;
Software and its
4 2. Software notations and tools;
engineering
3. Software creation and management.
1. Models of computation; 2. Formal languages and
automata theory; 3. Computational complexity and
cryptography; 4. Logic; 5. Design and analysis of
5 Theory of computation
algorithms; 6. Randomness, geometry and discrete
structures; 7. Theory and1 algorithms for
application domains; 8. Semantics and reasoning.
1. Discrete mathematics; 2. Probability and statistics;
6 Mathematics of computing 3.Mathematical software; 4. Information theory; 5.
Mathematical analysis; 6. Continuous mathematics.
1. Data management systems; 2. Information storage
7 Information systems systems; 3. Information systems applications; 4.
World Wide Web; 5. Information retrieval.
Cryptography
Formal methods and theory of security
Security services
Intrusion/anomaly detection and malware mitigation
Security in hardware
8 Security and privacy
Systems security
Network security
Database and storage security
Software and application security
Human and societal aspects of security and privacy
1. Human computer interaction (HCI); 2. Interaction design;
3. Collaborative and social computing;
9 Human-centered computing
4. Ubiquitous and mobile computing; 5. Visualization;
6. Accessibility.
1. Symbolic and algebraic manipulation;
2. Parallel computing methodologies;
3. Artificial intelligence; 4. Machine learning;
10 Computing methodologies
5. Modeling and simulation; 6. Computer graphics;
7. Distributed computing methodologies;
8. Concurrent computing methodologies.
1. Electronic commerce; 2. Enterprise computing;
11 Applied computing
3. Physical sciences and engineering; 4. Life and medical
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 65

sciences; 5. Law, social and behavioral sciences; 6.


Computer forensics; 7. Arts and humanities;
8. Computers in other domains; 9. Operations research;
10. Education;
11. Document management and text processing.
Social and professional 1. Professional topics; 2. Computing / technology policy;
12
topics 3. User characteristics.

Etape în evoluția Calculus și Computing

Matematicieni – Teorii și concepte:


 Renașterea: Leonardo da Vinci, Copernic, Kepler, Galileo Galilei (16th century),
 Foundations: Descartes, Newton, Leibniz, Cauchy, Weierstrass, Gauss, Galois,
Hilbert, Gödel (17th-19th century),
 News domains & Nicolas Bourbaki group - new foundation on set theory (20th-
century)

Software & Hardware – Teorii, limbaje de programare și concepte:


 1930-1960: Computing, Calculus - Newton, Gottfried Wilhelm Leibnitz, Gödel,
Boolean algebra and switching circuits, Cybernetics, Formal languages, ENIAC
computer/project 1944, John von Neumann machine, Turing machine, limbaje
mașină, limbaje de asamblare, Fortran 1954, Cobol 1960, Artificial Intelligence
(AI), Computer graphics (CG).
 1960-1990: Limbajele de programare ADA, Pascal, Basic, C++, Tehnologia
OOP, Limbaje pentru baze de date (BD).
 1990-2010: Sistemul Internet, Tehnologii WEB, Platforma Java, Limbajul PHP,
Generația Web 2.0, Computer Vision, Proiectul „Google Cultural Institute”.

INFORMATICA: „Informatica restabileşte nu numai unitatea matematicilor pure şi a


celor aplicate, a tehnicii concrete şi a matematicilor abstracte, dar şi cea a ştiinţelor
naturii, ale omului şi ale societăţii. Reabilitează conceptele de abstract şi de formal şi
împacă arta cu ştiinţa, nu numai în sufletul omului de ştiinţă, unde erau întotdeauna
împăcate, ci şi în filosofarea lor.” Gr. C. Moisil (1906-1973), Computer Pioneer Award
of IEEE, https://www.computer.org/web/awards/pioneer-grigore-moisil, http://c3.icvl.eu/
2018/gr-c-moisil

CALCULATORUL: Mijloc de formare a unei noi viziuni asupra educaţiei, cercetării şi


inovării. Dacă Matematica nu ar fi fost „nimic nu ar fi fost”: nici zero şi nici fizica,
chimia sau arhitectura, nici roata şi nici calculatorul, nici tiparul şi nici telefonul, nici
informatica şi nici cibernetica. Dar, faţă de toate aceste entităţi materiale inventate de om,
şi faţă de universul cunoştinţelor acumulate, cunoaşterea îl ajută pe om să gândească toată
viaţa, să creeze şi să-şi imagineze, să iubească natura şi pe semenii săi, să fie emotiv şi
curajos, să fie consecvent şi ordonat, să viseze şi să fie fericit (M. Vlada, 2010).

SCHIMBĂRI: Se schimbă lumea, se schimbă mintea noastră, mintea copiilor noştri se


schimbă şi ea, se schimbă ştiinţele, teoriile, metodele şi tehnicile de investigare, educaţia
66 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

noastră se schimbă mereu, profesiile şi locurile de muncă ale oamenilor sunt într-o
continuă schimbare, se schimbă mentalităţi, religii şi filosofii, se schimbă mijloacele de
transport şi de comunicaţii, se schimbă infrastructura şi natura, se schimbă OMUL. E bine
sau e rău? Marin Vlada, http://prof.unibuc.ro/prof/vlada/

DEFINIȚII
DEFINIȚIA 1. „Informatica a evoluat ca o știință de sine stătătoare, care face legătura
între Matematică și Știința calculatoarelor, acoperind un spectru care pleacă de la
elaborarea de teorii și modele, utilizând instrumente matematice, până la implementarea
de soluții computaționale performante și sigure.” Informatica Universitaria,
www.informatica-universitaria.ro/.

DEFINIȚIA 2. Informatica a devenit o ştiinţă deoarece utilizează metode, tehnici şi


instrumente proprii pentru investigarea obiectelor şi proceselor pe care le defineşte şi cu
care operează. Tezaurul ştiinţific al Informaticii este rezultatul unor simbioze de
cunoştinţe şi cercetări provenite şi de la alte ştiinţe (matematică, cibernetică,
microelectronică, fizică, chimie etc.) şi care prin metode şi tehnici proprii, şi utilizînd
dispozitive speciale (sisteme de calcul-calculatoare) prelucrează informaţii şi cunoştinţe
pe care trebuie să le interpreteze, să le transforme şi să le comunice (M. Vlada).

DEFINIȚIA 3. „Informatics studies the application of information technology to


practically any field, while considering its impact on individuals, organizations, and
society. It uses computation as a universal tool to solve problems in other fields, to
communicate, and to express ideas.” by Judith Tolliver, Illinois Informatics Institute,
University of Illinois - https://www.informatics.illinois.edu/

DENUMIRI
Termenul de Informatică – Computer Science (America); Europa: Informatique (Fr),
Informatics (Eng), Informatik (Danish, German, Swedish), Informatica (Naderland,
Italian); Informatics: (computing) a branch of information science, and of computer
science, that focuses on the study of information.

SISTEME DE
CALCUL ALGORITMICĂ

PROGRAMARE

Fig. 3 Triada Sisteme de calcul-Algoritmică-Programare


ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 67

OBSERVAȚIE. Conform opiniei prof. univ. dr. Dragoș Vaida termenul de


Informatică s-a impus în România ca urmare a cărților informaticianului francez Jacques
Arsac (1929-2014) - Professor of computer science at Paris VI Pierre and Marie Curie;
Founder of Institut de programmation de Paris (1967); Director of Centre de calcul de
l’Observatoire de Meudon (1959):
 Jacques Arsac, André Lentin, Maurice Nivat et Louis Nolin, Algol: Théorie et
Pratique, Gauthier-Villars, 1965.
 Jacques Arsac, Système de conduite des ordinateurs, Dunod, 1968.
 Jacques Arsac, La Science informatique, Dunod, 1970.
Ultima carte a fost tradusă în limba română, în anul 1973: J. Arsac, Informatica, Editura
Enciclopedică Română (traducere și prefață de Constantin P. Popovici și Petru
Năvodaru), 1973.

Scurtă istorie a Informaticii

Acad. Gheorghe Păun15,


Academia Română

Pentru a avea un cadru general de referinţă (pentru a evalua, de exemplu,


priorităţile româneşti şi sincronismul), este utilă o rapidă trecere în revistă a momentelor
notabile din evoluţia informaticii în general. Nu voi trimite până la originea termenului
algoritm şi la exemple celebre, unele antice, ci voi începe prin invocarea lui David
Hilbert (1862–1943), matematicianul german care, mai întâi în 1900 (într-o primă formă),
apoi prin anii 1920, a pus întrebarea „ce se poate calcula mecanic” (deci algoritmic). Mai
mulţi matematicieni, mai ales venind dinspre logică (S.C. Kleene, E. Post, A. Church) au
propus diverse moduri de a răspunde acestei provocări, diferite modele/formalisme
menite a defini calculabilul (lambda calcul, funcţii recursive, sisteme Post), dar cel mai
convingător răspuns a fost cel dat de Alan M. Turing (1912-1954), în teza sa de doctorat
(susţinută la Princeton, sub conducerea lui Alonzo Church), unde a introdus modelul care
acum se numeşte maşină Turing. Articolul considerat moment de naştere al informaticii
(a se vedea, de pildă, Martin Davis, What is a Computation?, în volumul Mathematics
Today. Twelve Informal Essays, editat de Lynn Arthur Steen, Springer-Verlag, New
York, Heidelberg, Berlin, 1978) a apărut în 1936: A.M. Turing, On Computable
Numbers, with an Application to the Entscheidungsproblem, Proceedings of the London
Mathematical Society, Ser. 2, 42 (1936), pp. 230–265, cu o erată în numărul 43 (1936),
pp. 544–546. În lucrarea sa, Turing nu numai că a introdus un model „convingător” de
calcul (transparent, minimalist, capabil însă să simuleze toate modelele anterioare), dar a
mai făcut două lucruri fundamentale pentru ceea ce avea să urmeze: a definit o maşină
universală (şi a demonstrat existenţa acesteia – model ulterior pentru calculatoarele
programabile de astăzi) şi a identificat probleme insolvabile algoritmic (răspunzând astfel
negativ Entscheidungsproblem lui Hilbert). Au fost introduse apoi versiuni restrictive ale
maşinii Turing, cu automatele finite (W.S. McCulloch, W.H. Pitt, 1943) plecând de la
modelarea neuronilor şi a reţelelor neurale.
15
Text preluat din acad. Florin Gheorghe Filip, Civilizaţia Românească (coord. Victor Spinei)- Ştiinţa şi
tehnologia informaţiei în România, Editura Academiei Române Bucureşti, 2018, pp. 119-121
68 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Un moment crucial a fost introducerea, de către Noam Chomsky, în 1956, a


gramaticilor generative care îi poartă numele. Obiectivul era modelarea gramaticii unei
limbi naturale, dar adevărata dezvoltare a teoriei limbajelor formale s-a produs în legătură
cu limbajele de programare, după ce S. Ginsburg şi H.G. Rice au observat, în 1961, că
sintaxa limbajului Algol 60 poate fi descrisă cu ajutorul gramaticilor independente de
context ale lui Chomsky. În 1962, R.W. Floyd remarcă faptul că gramaticile independente
de context nu sunt suficiente (pentru a acoperi şi restricţiile semantice), cam în aceeaşi
vreme s-a observat că nici engleza „nu este independentă de context”, fapt care a motivat
introducerea unor clase de gramatici mai puternice (dar fără să piardă prea mult din
„trăsăturile convenabile” ale gramaticilor independente de context – de pildă, posibilitatea
de parsare economicoasă, în timp polinomial, sau de descriere a unei derivări printr-un
arbore). A fost vremea gramaticilor cu restricţii în derivare – cu prima dintre acestea
introdusă de un român, Samuel Abraham: gramaticile matriciale (voi reveni, desigur). Un
an important este 1968, când biologul olandez Aristid Lindenmayer introduce un model
pentru creşterea organismelor multicelulare, iar Solomon Marcus introduce o clasă de
gramatici, le-a numit contextuale, fără simboluri auxiliare/neterminale, simboluri care
sunt centrale gramaticilor Chomsky.
Automatele recunosc şirurile unui limbaj, gramaticile le generează; şi unele şi
celelalte au de-a face cu puterea de calcul, cu competenţa. Pentru aplicaţii, importantă
este performanţa, costul rezolvării unei probleme. A apărut astfel teoria complexităţii
calculului (la mijlocul anilor 1960, când Juris Hartmanis şi Richard E. Stearns au definit
indicatorii rămaşi fundamentali pentru evaluarea complexităţii unui algoritm, timpul şi
spaţiul). Calculatoarele curente („de tip Turing–von Neumann” – John von Neumann a
construit, la începutul anilor 1940, primele calculatoare, influenţat explicit de ideile lui
Turing) sunt ineficiente în rezolvarea problemelor de complexitate exponenţială, aşa cum
sunt mai toate problemele practice netriviale (fără a intra în detalii, plecăm de la premisa
că nu avem egalitatea P = NP, întrebarea dacă egalitatea anterioară este sau nu adevărată
fiind una dintre cele şapte „probleme ale mileniului”, inventariate în anul 2000 de Clay
Mathematical Institute din SUA, şi principala problemă deschisă a informaticii actuale;
referinţe pot fi găsite pe internet). A apărut astfel o puternică motivare pentru ceea ce se
cheamă acum calcul natural, care are, de fapt, două obiective majore (promiţătoare şi
ambiţioase; a se vedea Handbook of Natural Computing, 4 volume, Springer-Verlag,
Berlin, 2012, editat de G. Rozenberg, Th. Bäck, J.N. Kok):
(1) de a descoperi – abstractiza – învăţa noi idei – modele – paradigme de calcul
din natură, în special din biologie, şi
(2) de a investiga procesele din natură (în special din biologie) în termeni
computaţionali.
Dintre domeniile de calcul natural în care informatica românească are contribuţii
majore, menţionez doar calculul pe bază de ADN, calculul celular (numit membrane
computing în comunitatea internaţională) şi calculul cuantic. Desigur, multe alte
momente importante ale istoriei teoriei automatelor, gramaticilor, complexităţii,
calculului natural, ale informaticii teoretice în general ar fi meritat să fie menţionate,
unele vor fi amintite în paginile următoare, dar ne oprim aici, reluând încă un citat din
textul lui Gr. C. Moisil, despre o contribuţie românească cu totul remarcabilă, din anii
1960, la calculul cuantic: de câţiva ani au fost produse calculatoare cuantice de un tip
restrictiv, neuniversale, capabile de rezolvarea unor probleme care se reduc la programare
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 69

pseudobooleană, subiect dezvoltat de profesorii Sergiu Rudeanu şi Peter Hammer (pe


atunci, Ivănescu), la Bucureşti, pe vremea când nici nu se vorbea despre calculatoare
cuantice (primele speculaţii apar prin anii 1970). Spune Moisil: „Locul pe care-l are
şcoala din Bucureşti, în fundarea şi dezvoltarea programării pseudobooleene e o
mândrie a Facultăţii de Matematică şi a Institutului de Matematică”.

GABRIEL SUDAN (1899–1977)

Nu la legătura, peste ani, a funcţiilor pseudoboleene cu


calculul cuantic s-a gândit Moisil, dar o intuiţie similară,
de mare impact, a avut în ceea ce priveşte primul exemplu
de funcţie recursivă care nu este primitiv recursivă,
prioritate atribuită multă vreme lui W. Ackermann (Zum
Hilbertschen Aufbaum der reellen Zahlen, Math. Ann., 99
(1928), pp. 118-133). În aprilie 1973, înainte de a pleca în
Canada, Moisil i-a spus lui Solomon Marcus că Sudan,
student al lui Hilbert împreună cu Ackermann în anii
1920, la Göttingen – şi-a susţinut teza de doctorat în 1925
– ar fi produs un asemenea exemplu. Nu a apucat Moisil
să dea amănunte, nu este clar ce amănunte avea, iar în
Canada a decedat, drept care, a relatat ulterior în diverse
locuri profesorul Solomon Marcus, s-a declanşat o
veritabilă operaţiune detectivistică, în căutarea, în primul rând, a lucrării în care Gabriel
Sudan avea exemplul respectiv – desigur, în cu totul alt context şi cu altă terminologie
decât cea a funcţiilor recursive, domeniu dezvoltat abia în anii 1930. Au pornit căutarea
Cristian Calude, student atunci la Facultatea de Matematică a Universităţii din Bucureşti,
şi Ionel Ţevy, cercetător la Institutul de Matematică al Academiei Române. „După o
examinare atentă a tuturor articolelor şi cărţilor prof. Sudan, Cristian Calude îşi opreşte
atenţia asupra articolului Sur le nombre transfini ω^ω [omega-la-omega], publicat în
Bulletin Mathématique de la Société Roumaine Gabriel Sudan des Sciences, vol. 30, 1927,
fasc. 1, pp. 11–30.” (S. Marcus, Din gândirea matematică românească, Edit. Ştiinţifică şi
Enciclopedică, Bucureşti, 1975)
Acesta era articolul căutat! Funcţia cu pricina era notată cu φ, avea unele
similarităţi cu funcţia lui Ackermann (ambele sunt obţinute prin superpoziţia a două
funcţii), ceea ce era firesc, pentru că cei doi erau colegi, despre ambele a fost arătat
ulterior că sunt recursive şi nu sunt primitiv recursive – doar că pentru funcţia lui
Ackermann acest lucru s-a făcut mai demult (R. Péter, 1956) şi a fost menţionată ca atare
în bibliografia domeniului. În urma lucrării C. Calude, S. Marcus, I. Ţevy, The First
Example of a Recursive Function which Is Not Primitive Recursive, Historia
Mathematica, 6 (1979), pp. 380–384, ambii matematicieni, W. Ackermann şi Gabriel
Sudan sunt acum consideraţi a fi simultan şi independent autorii primului exemplu de
funcţie de genul discutat.
70 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Cum trebuie predate matematica şi informatica? Schimbarea trebuie să


pornească din universităţi.
Juraj Hromkovic16,
Department of Computer Science, ETH Zürich, Switzerland
https://inf.ethz.ch/people/person-detail.hromkovic.html

„Matematica este cel mai puternic instrument pe care oamenii l-au dezvoltat pentru a investiga lumea din
jurul nostru. Dar ea este predată în aşa fel încât elevii nu realizează acest lucru."
Juraj Hromkovic, 2014.

Gottfried Wilhelm Leibniz (1646-1716) propune „automatizarea" activităţii umane

Limbajul matematicii este capabil să descrie obiecte, structuri, proprietăţi şi


relaţii într-un mod neambiguu. În acest context vorbim despre puterea „descriptivă" a
matematicii. În acest fel, oamenii au fost capabili şi să formuleze aserţiuni exacte şi să
exprime astfel neambiguu cunoştinţele.
Din punctul meu de vedere, cel mai bun mod de a privi matematica este ca limbaj
special, dezvoltat pentru ştiinţă, adică pentru generarea de cunoaştere. Cu câteva mii de
ani în urmă, oamenii doreau să descopere cunoştinţe „obiective”. Cuvântul important aici
este „obiectiv”. Pentru a ajunge la aşa ceva, înainte de toate este nevoie de un limbaj în
care orice enunţ să aibă o interpretare neambiguă pentru oricine stăpâneşte acel limbaj.
Cum se poate obţine aşa ceva? Pentru început, trebuie să dăm un înţeles exact cuvintelor
(noţiunilor) pe care le folosim, deoarece cuvintele sunt, din punct de vedere semantic,
pietrele unghiulare ale oricărui limbaj.
În acest context, matematica vorbeşte despre axiome. Mulţi oameni au părerea
eronată că axiomele sunt presupuneri în adevărul cărora credem, dar pe care nu suntem în
stare să le demonstrăm că sunt adevărate. Acest lucru este greşit. Axiomele sunt definiţii
precise ale noţiunilor de bază care descriu intuiţia noastră asupra înţelesului acelor
noţiuni. Probabil că primele concepte pe care oamenii au încercat să le fixeze au fost
noţiuni precum număr, egalitate, infinit, punct, linie, distanţă etc.
Ceea ce este foarte important de observat este că oamenii au avut nevoie de sute
şi, în unele cazuri, mii de ani pentru a ajunge la definiţii de acest fel pe care comunitatea
filosofilor şi, mai târziu, a matematicienilor să le accepte. Pentru ce toate acestea? În
primul rând, limbajul matematicii este capabil să descrie obiecte, structuri, proprietăţi şi
relaţii într-un mod neambiguu.
În acest context vorbim despre puterea „descriptivă” a matematicii. În acest fel, oamenii
au fost capabili şi să formuleze aserţiuni exacte şi să exprime astfel neambiguu
cunoştinţele. Dar aceasta a fost numai o latură a limbajului matematicii. Acest limbaj a
fost folosit şi pentru a deriva noi cunoştinţe din cunoştinţele existente, a devenit, deci, un
generator de cunoaştere.
Leibniz formula acest rol al matematicii într-un mod foarte sugestiv. El dorea să
evite orice discuţie politică şi orice conflict din diferite comunităţi tocmai prin exprimarea
problemelor reale în limbaj matematic, spre a folosi apoi calcule şi inferenţe logice pentru

16
Articol adaptat din Revista Curtea de la Argeş, Anul V, Nr. 8 (45), August 2014 -
http://www.curteadelaarges.ro/arhiva/V_8_45/V_8_45.pdf, http://c3.cniv.ro/?q=2014/juraj
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 71

a obţine soluţia corectă. Este interesant că el a numit această propunere „automatizarea”


activităţii umane. Ştim acum că visul lui Leibniz nu se poate realiza.
Există două motive pentru aceasta. Mai întâi, pentru că, din cauza exactităţii sale,
limbajul matematicii este limitat în capacitatea sa descriptivă şi astfel nu putem traduce
toate problemele din lumea reală în acest limbaj. Apoi, una dintre cele mai importante
descoperiri ale ultimului secol, cea a lui Gödel, spune că „puterea argumentaţională” a
matematicii este mai redusă decât puterea sa descriptivă. Asta înseamnă că putem formula
propoziţii matematice pentru care nu există demonstraţii că sunt sau nu adevărate.
Atenţie! Acest lucru nu se întâmplă deoarece nu suntem noi în stare să demonstrăm sau să
invalidăm acele propoziţii, ci asemenea demonstraţii pur şi simplu nu există, deci nimeni
nu le poate găsi.

***

Dezvoltarea Computing: concepte, etape și aspecte de evoluție


MOTTO:
„Cred că există o piață mondială pentru cinci calculatoare”
Thomas Watson, președintele IBM, 1943.
"If automotive technology had progressed as fast as computer technology between 1960
and today, the car today would have an engine less than a tenth of an inch across,
would get 120,000 miles per gallon, have a top speed of 240,000 miles per hour,
and would cost $4"
Rick Decker and Stuart Hirshfield, The Analytical Engine

DEFINIȚIE (1989). Computing reprezintă studiul proceselor sistematice care descriu și


transformă informațiile: teorie, analiza, proiectare/designul, eficiența, implementarea și
aplicarea lor. Întrebarea fundamentală care stă la baza construirii calculatoarelor: Ce
poate și nu poate fi automatizat? (adaptată după Denning et. al., „Computing as a
Discipline”, Communications of the ACM, January, 1989).

Concepte, etape, aspecte de calcul (adaptare după Andrew Bernat, Computing


Community Consortium (CCC), https://cra.org/ccc/andrew-bernat/):
72 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 Ce este procesul de calcul (process)? Cum gândim și facem lucrurile. Cum


specificăm ceea ce facem. Cum specificăm ce fel de lucruri prelucrăm/procesăm.
 Ce este un algoritm (algorithm)? O descriere precisă a unui proces. Specifică
exact ce se face și în ce ordine. Utilizează termeni care pot fi definiți și înțeleși
complet. Acesta poate fi similar unei rețete. Cuvântul Algoritm este derivat din
numele autorului al-Khowârizmî (825/830 aprox.). Inițial, cuvântul s-a folosit la
procesul de utilizare a calculelor aritmetice folosind cifre arabe.
 Scopul (A goal of computing) Computing - Dacă se dezvoltă o mașină de calcul,
trebuie specificați algoritmii precis, trebuie reprezentate datele utilizate și trebuie
elaborată o modalitate de a reprezenta/traduce toate acestea într-un limbaj
(codare), pe care mașina de calcul poate să-l „înțeleagă”. Apoi, mașina de calcul
(computing machine) poate efectua corect, consecvent și mai rapid calcule
diverse.
 Obiceiuri populare preistorice: degetele de la mâini folosite pentru numărare;
lungimea mâinilor și a brațelor folosite pentru măsurători; păstrarea valorilor
numerice pentru un număr mai mare, cum ar fi numărul de animale din turmă,
folosind pietricele mici.
 Oamenii din Egipt, China și vechea Babilonie: până în anul 3000 î.Hr. au
dezvoltat simboluri scrise pentru a reprezenta cifrele,
metode computaționale dezvoltate pentru a proteja
forța de muncă și pentru a rezolva probleme practice
(matematică aplicată); aplicațiile au inclus
măsurarea timpului, desenarea liniilor drepte,
numărarea banilor și calcularea taxelor; tabele
elaborate pentru operații aritmetice: înmulțirea,
rădăcina pătrată și de ordinul 3, exponenți, formule
pentru ecuații pătratice; Babilonienii și egiptenii nu
sunt gânditori sistematici; metodele de încercare și
de eroare nu erau întotdeauna precise.
 Exemple practice de geometrie în Egiptul antic: Modelarea și deplasarea pe
terenuri; Egiptul a fost „grânarul/coșul de pâine” al lumii; anual, râul Nil inunda
câmpiile fertilizate, de aceea a făcut dificilă marcarea proprietăților; geometria a
fost folosită pentru a cerceta câmpurile și a restabili granițele proprietăților; Era
nevoie de deplasări și navigație pentru distribuirea produselor alimentare;
construirea de piramide a necesitat măsurători complexe.
 Grecia: între anii 600 și 300 î.H., existau cunoștințe matematice moștenite din
Egipt și Babilon; grecii au fost primii care au studiat matematica, separat, de la
aplicare la probleme practice; bazele fundamentale ale logicii formale: axiome
formale, definiții precise și modele de raționament valid; Pitagora, Euclid,
Arhimede, Ptolemeu și alții au dezvoltat cunoștințe extinse despre geometrie,
trigonometrie, algebră, astronomie și fizică.
 Roma: s-a utilizat matematica aplicată la activități practice, în afaceri, inginerie
civilă și in domeniul militar; a avut puțin interes în studierea matematicii pure.
 Evul mediu: după căderea Imperiului Roman, în anul 476 d.H., pentru sute de ani
nu au existat noi progrese matematice în Europa; arabii au păstrat cunoștințele
matematice dezvoltate de greci și romani și au extins conceptele algebrice;
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 73

conceptul sistemului numeric zero și zecimal dezvoltat în India și folosit de arabi;


După anul 1100, comerțul în creștere în Europa a necesitat un sistem de
numerotare mai ușor pentru comercianți, decât numerele romane Europenii au
început să utilizeze sistemul numeric zecimal și să studieze textele matematice
arabe; în Evul Mediu târziu, matematicienii europeni, cum ar fi Fibonacci, au
contribuit la dezvoltarea algebrei și a geometriei.
 Renaşterea: din anii 1400 până în 1600, explorarea de noi terenuri a necesitat o
matematică îmbunătățită pentru a sprijini navigația, dezvoltarea capitalismului și
comerțului; invenția presei mecanice de imprimare a permis răspândirea rapidă a
textelor matematice noi; contribuție importantă a lui Francois Viète (1540-1603)
- a introdus folosirea literelor pentru a face numere necunoscute în formule și
ecuații (azi, utilizarea variabilelor importante în domeniul informaticii);
Exemplu: c2 = a2 + b2; contribuție importantă a matematicianul scoțian John
Napier (1550-1617) – a inventat logaritmii care au profitat de faptul că
adunarera/adăugarea este mai ușoară decât multiplicarea: log (a* b) = log a + log
b; funcția logaritmică este inversa funcției putere: log28 = 3 deoarece 23 = 8.
 Renaşterea: inventarea riglei de calcul (slide rule); în anul 1620, Edmund Gunter
(1581-1626) a inventat un dispozitiv de glisare pentru a efectua calcule
matematice; Rigla de calcul este un dispozitiv marcat cu scale logaritmice
folosite pentru a efectua calcule matematice. Regulă de glisare a fost utilizată
extensiv pentru calcule matematice de către studenți, ingineri, oameni de știință,
militari și alții, până a fost înlocuită cu calculatoare portabile, începând cu
modelele HP, în anii 1970.

 Renaşterea: Galileo Galilei (1564-1642) a lucrat la aplicații matematice în


științele fizice; Rene Descartes (1596-1650) a dezvoltat geometria analitică; Cine
a conceput și a construit ceea ce se crede a fi primul calculator digital? Wilhelm
Schickard, în anul 1623, adunarea și scăderea automată, parțial multiplicarea și
diviziunea automată; Blaise Pascal (1623-1662) a dezvoltat versiunea de
calculator mecanic numită Arithmometer, aproximativ 20 de ani mai târziu;
cunoscutul limbaj de programare modern, Pascal s-a numit după numele lui
Blaise Pascal; co-inventator al calculului diferențial și integral (calculus)
împreună cu Sir Isaac Newton (1642-1726) este Gottfried Wilhelm Leibniz
(1646-1716); a inventat niște roți Leibniz bazate pe lucrarea lui Pascal, care au
efectuat automat calcule aritmetice; au fost investigate aritmetica binară și
testarea automată a ipotezelor.
74 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 Secolul 1700-1800: contribuții ale englezului Charles


Babbage (1791-1871), membru fondator al Societății
Regale Astronomice Regale din Marea Britanie; în anii
1800, puterea marină a Angliei a cerut calcule exacte
pentru calculul focurilor de tun de la navele în mișcare;
proiectul Babbage a dezvoltat conceptul de „Difference
Engine”, mașină alimentată cu aburi, în 1821, pentru a
produce tabele de matematică; concept dezvoltat pentru
calculatorul mecanic „Engine Analytical”, proiectat
pentru a fi un dispozitiv general pentru orice fel de
operații cu date și simboluri; similar cu conceptul de la
calculatoarelor moderne, inspirat de francezul Joseph-Marie Jacquard;
calculatorul mecanic „Engine Analytical” înseamnă folosirea cartelelor perforare
(punch cards); din păcate, modelul de lucru nu a fost niciodată finalizat; multe
invenții în timpul Revoluției Industriale au condus la automatizarea sarcinilor
făcute anterior de mână: în anul 1804 Joseph Jacquard a inventat război de ţesut
automat (automatic loom) îmbunătățind conceptul de cartele perforare (punch
cards); cardurile/cartelele erau similare cu găurile perforate pentru a reprezenta
date/informații, ulterior dezvoltate pentru a fi utilizate de calculatoarele
electronice moderne.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 75

 Augusta Ada King-Noel, contesa de la Lovelace (née Byron, 1815-1852), fiica


celui mai cunoscut poet englez, Lord Byron a fost matematician și scriitor englez,
cunoscută în special pentru lucrarea sa despre calculatorul mecanic („Analytic
Engine”) general al lui Charles Babbage, motorul analitic. În anul 1943, ea a fost
prima care a recunoscut că mașina avea aplicații dincolo de calculul pur și a
publicat primul algoritm destinat a fi realizat de o astfel
de mașină. Drept rezultat, ea este uneori privită ca fiind
prima care recunoaște întregul potențial al unei „mașini
de calcul” (computing machine) și primul programator
de calculator. În anul 1979, noul limbaj de programare
Ada (Ada este limbajul obligatoriu impus de Pentagon
pentru proiectele software ale Departamentului Apărării
al SUA), a fost denumit în cinstea ei. Limbajul Ada a
fost conceput inițial de o echipă condusă de Jean
Ichbiah de la CII Honeywell Bull (USA), ce a avut
contract cu Departamentul Apărării al Statelor Unite
(DoD), din anul 1977 până în anul 1983, pentru a
76 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

înlocui cele peste 450 de limbaje de programare utilizate de DoD în acel moment.
 Contribuția importantă a englezului George Boole
(1815-1864) în domeniul informaticii (computer science):
expresii; Boole a lucrat la identificarea operațiilor
fundamentale, a variabilelor și a reprezentărilor simbolice
ale ambelor; a introdus și studiat expresii care au avut
doar două valori logice: 1 pentru adevărat, 0 pentru fals;
ideile lui Boole au devenit fundamentele logicii
matematice; conceptele de Logică matematică sunt baza
pentru proiectarea circuitelor aritmetico-logice la
calculatoarele digitale.
 Înainte și după anul 1900 – inventatorul american Herman
Hollerith (1860 – 1929), fondator al calculului automat
modern (automatic computation, electromechanical
punched card tabulator); a lucrat la recensământul din
1880 al Statelor Unite și a înțeles nevoia de mecanizare a
procesului de înregistrare și de tabelație, pe măsură ce
imigrația a crescut în USA; a câștigat concursul de
proiectare pentru recensământul din 1890, inventând
echipamente pentru a tabula/tabela și a sorta cartele
perforate similare cu cele folosite pe războiul de țesut
Jacquard; a fondat compania Computing-Tabulating-
Recording (CTR), ulterior numele schimbat în IBM, în
anul 1924; Hollerith despre sistemul de prelucrare („Un sistem electric de
tabele”, „An Electric Tabulating System”, 1889): „Puțini, care nu au venit direct
în contact cu un birou de recensământ, pot forma orice idee adecvată a muncii
implicate în compilarea unui recensământ de 50.000.000 de persoane, așa cum s-
a întâmplat în ultimul recensământ sau de peste 62.000.000, să fie cazul în
recensământul care urma să fie făcut în iunie 1890. Deși populația noastră crește
în mod constant și, deși la fiecare recensământ sunt necesare mai multe
combinații, mai complicate și mai multe detalii, în diferitele prelucrări; Trebuie
să fie concepută o mașină care să faciliteze astfel de tabele”. În imaginea de mai
jos este replica mașinii cu tabla Hollerith, cu cutie de sortare, anul 1890; „Cutia
de sortare” (sorting box) a fost adăugată și a fost controlată de tabel (tabulator).
„Sorterul” (The sorter), o mașină independentă, a fost o realizare ulterioară.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 77

 Probleme matematice ale calculabilității din anii 1900:


(1) matematicianul german David Hilbert (1862-1943) a crezut că
se poate construi un sistem consistent de axiome
logice/matematice de la care pot fi derivate toate teoriile
matematice. El a propus existența unui astfel de sistem din care ar
putea fi derivate toate teoriile matematice; Este recunoscut ca
fiind unul dintre cei mai influenți și universali matematicieni ai
secolului XIX și începutul secolului al XX-lea. Hilbert a
descoperit și a dezvoltat o gamă largă de idei fundamentale în
multe domenii, inclusiv teoria invariantă și axiomatizarea
geometriei. De asemenea, el a formulat, teoria spațiilor Hilbert,
una dintre fundamentele analizei funcționale;
(2) Există probleme matematice care sunt în mod inerent de nerezolvat? Există o
limită a măsurii în care metodele sistematice de raționament dezvoltate pentru
prima oară de grecii antice ne pot depăși? În anul 1931, americanul Kurt
Friedrich Gödel (1906-1978), matematician și filosof, a demonstrat
(Incompleteness Theorem) că un sistem formal suficient de
general trebuie să fie inconsistent sau trebuie să conțină declarații
care nu pot fi dovedite sau respinse. Rezultatele sale au deschis
ușa ca matematicienii să-și asume axioma de alegere în
raționamentele lor. De asemenea, a contribuit la teoria
raționamentelor (proof) prin clarificarea legăturilor dintre logica
clasică, logica intuiționistă și logica modală. „Realizarea lui Kurt
Gödel în logica modernă este singulară și monumentală –
într-adevăr este mai mult decât un monument, este un reper care
va rămâne vizibil în spațiu și timp. ... Subiectul logicii și-a
schimbat cu siguranță natura și posibilitățile prin realizarea lui
Gödel”, John von Neumann (1903-1957).
 Mașina mecanică de calcul Walther RMKZ. În perioada 1924-1952, a fost
construită de compania germană Walther, mai cunoscută pentru fabricarea de
arme (Walther PPK, arma utilizată de cunoscutul James Bond). Utilizează un
mecanism cu pinion, cunoscut ca un mecanism Willgodt Odhner. Acest lucru
înseamnă că, atunci când introduceți un număr prin deplasarea unui filet în sus
sau în jos, știfturile sunt extinse sau retrase pe o roată internă, până când roata are
același număr de pini extinși cu cifra pe care ați selectat-o. Atunci când mânerul
78 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

este învârtit, pinionul se rotește și se angajează cu o altă roată, care apoi rotește
numărul de pași ales. Pinwheel pare să fi fost patentat mai întâi de David Isaac
Wetheimber în 1843 (GB184309616), dar a fost adaptat de Willgodt Odhner care
a venit cu o proiectare standard a mașinii pinwheel (ref.: https://www.jaapsch.net/
mechcalc/walther.htm). De remarcat, în Romania s-au utilizat astfel de mașini
mecanice de calcul în geodezie, topografie, în armată etc., chiar în anii 1960-1970.

 Începutul erei calculatorului digital (digital computer). În perioada 1930-1950,


matematica a fost revoluționată prin faptul ca
matematicienii și logicienii au lucrat pentru a defini exact
ce înseamnă atunci când spun că au inventat o metodă de
rezolvare a unei probleme. Unul dintre răspunsurile foarte
importante a venit de la englezul Alan Turing (1912-1954),
ce a definit Mașina Turing (Turing machine), prin care a
definit un calcul eficient ca un tip specific de mașină
abstractă (abstract machine). Această dezvoltare a devenit
majoră în domeniul Computing și cel mai mare impact
asupra proiectarii și construirii calculatorului digital
(digital computer).
 Apariția noilor aplicații avansate în proiectarea dispozitivelor de calcul: Leonardo
Torres y Quevedo (1852-1936), președintele Academiei de
Științe din Madrid, a propus o versiune electromecanică
de șah a mașinilor lui Babbage. Noi utilizări științifice
dezvoltate pentru mașina Hollerith cu cartele perforate,
cum ar fi calcularea poziției lunii. Astronomul Wallace J.
Eckert (1902-1971) a recunoscut nevoia de capacitate
științifică mai mare; a propus câteva extensii pentru
mașina de tabelare IBM; Howard T. Aiken (1900-1973) a
definit 4 noi tipuri de calcul identificate prin capacitatea
de a prelucra numere pozitive și negative, aplicarea
diferitelor formule matematice, operații complet automate,
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 79

efectuarea calcule lungi secvențiale.


 „Mark I” nu este denumirea unei rachetă. Este o mașină de calcul (computing
machine) proiectată și construită în anul 1944 de către Aiken, în colaborare cu
inginerii de la IBM. Instrucțiunile erau scrise pe bandă de hârtie și efectua
înmulțirea a 2 numere în 6 secunde. Mașina de calcul era similară cu cea
construită de compania Bell Labs.
 Contribuții ale teoriilor de calcul în proiectarea și construirea mașinilor de calcul.
Claude E. Shannon, în teza de masterat de la MIT (Massachusetts Institute of
Technology – www.mit.edu), a arătat că algebra booleană ar putea fi folosită
pentru a analiza circuite complexe de comutare (switching circuits). Astăzi,
Shannon este considerat pionier în abordarea sistematică a proiectării circuitelor
de comutare. Claude Elwood Shannon (1916-2001) a fost
un matematician american, inginer și criptograf, cunoscut
ca fondator al teoriei informației (information theory).
Shannon este recunoscut pentru că a fundamentat teoria
informațiilor cu o lucrare de referință, o teorie matematică
a comunicației (A Mathematical Theory of
Communication), pe care a publicat-o în anul 1948. În
România, în perioada 1949-1970, matematicianul Grigore
C. Moisil (1906-1973) – în imaginea alăturată, a realizat
studii și cercetări în teoria algebrică a mecanismelor
automate, contribuții recunoscute, în anul 1996, cu
medalia IEEE „Computer Pioneer Award” („For the development of polyvalent
logic switching circuits, the Romanian School of Computing, and support of the
first Romanian computers.”, https://www.computer.
org/web/awards/pioneer-grigore-moisil).
 Primul calculator complet digital s-a numit ABC
(Atanasoff–Berry Computer), construit în anul 1940 de
către John V. Atanasoff (1903-1995), profesor de origine
bulgară, la Universitatea de Stat din Iowa (USA). A
folosit tuburi vaccum și aritmetică binară. Realizarea lui
a influențat proiectarea si construirea calculatorului
ENIAC (Electronic Numerical Integrator and
Computer).
 Primele calculatoare electronice moderne dezvoltate în anii 1940. Cerințele
guvernamentale și militare din USA au
condus la multe progrese rapide în
domeniul calculului (computing): Tabele de
artilerie necesare pentru cel de-al doilea
război mondial, perioada 1939-1945,
Calculele automate necesare dezvoltării
bombei atomice. Au fost dezvoltate mașini
de calcul tot mai mari și mai puternice.
Calculatorul ENIAC (Integrator Numeric
Electronic și Calculator), primul calculator
digital din lume, dezvoltat de Army
80 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Ordnance (inventatorii ENIAC: John Mauchly și J. Presper Eckert) pentru a


calcula tabelele de tragere balistice, finalizat în anul 1945. A servit ca prototip
pentru dezvoltarea celor mai multe calculatoare electronice moderne. Cântărea
peste 30 de tone și a stocat maximum 20 de zecimale cu zece cifre. S-a realizat cu
circuite logice standard pentru calculatoare. Imaginea de mai jos, din dreapta:
programatorii Betty Jean Jennings (stânga) și Fran Bilas (dreapta) operează
panoul de control principal al calculatorului ENIAC la Școala de Inginerie
Electrică din Moore (Moore School of Electrical Engineering). (Fotografie din
Armata S.U.A. din arhivele Bibliotecii Tehnice ARL,
https://en.wikipedia.org/wiki/ENIAC).
Anul 1954, primul „supercomputer” IBM de la Centrul Naval de Cercetare al
USA (Naval Ordinance Research), denumit IBM's NORC. Calculatorul de
Cercetare „Naval Ordnance Research” (NORC) a fost construit la Laboratorul de
Calcul al Științelor Watson sub îndrumarea lui Wallace Eckert. Calculatorul a
fost prezentat marinei americane la 2 decembrie 1954. La ceremonia de
prezentare, s-a calculat pi (π) cu 3089 cifre zecimale, ceea ce era un record la
momentul respectiv. Calculul a durat doar 13 minute. A folosit vacuum tube,
prima generație și a influențat modelul IBM 701 și următoarele.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 81

 Perioada 1940-1950, contribuțiile matematicianului


american – de origine maghiară – John von Neumann
(1903-1957) și caracteristicile unei mașini von
Neumann. Faimosul matematician de la Universitatea
Princeton (USA) a contribuit semnificativ la o serie
de domenii, inclusiv matematică (fundamentarea
matematicii, analiză funcțională, teoria ergodică,
teoria reprezentării, algebre de operatori, geometrie,
topologie și analiză numerică), fizică (mecanică
cuantică, hidrodinamică și mecanică statistică
cuantică), economie (teoria jocurilor), computing
(arhitectura von Neumann, programare liniară, mașini de auto-replicare, calcul
stochastic) și statistică. Începând cu sfârșitul anilor 1930, von Neumann a
dezvoltat o experiență în fenomenele de explozii care sunt dificil de modelat
matematic. În această perioadă, von Neumann a fost autoritatea principală în
matematică. Acest lucru l-a condus la un număr mare de consultanță militară, în
primul rând pentru marină, ceea ce a dus, la rândul său, la implicarea sa în
Proiectul Manhattan. Von Neumann a avut o principala contribuție la bomba
atomică, în concepția și designul lentilelor explozive, care erau necesare pentru a
comprima nucleul de plutoniu al armei Fat Man, ulterior a fost abandonată la
Nagasaki. A fost interesat atât de proiectarea logică, cât și de matematica
aplicată. A contribuit la dezvoltarea computerelor moderne, care au devenit
cunoscute sub numele de „mașină von Neumann”. A început să lucreze la
proiectul ENIAC în anul 1944 și și-a luat responsabilitatea pentru proiectarea
logică a noii mașinii Electronic Discrete Variable Automatic Computer
(EDVAC) planificată pentru a corecta unele deficiențe ale calculatorului ENIAC.
Unele dintre contribuțiile lui von Neumann („mașina von Neumann”): notație
pentru descrierea aspectelor logice ale circuitelor calculatoarelor; conceptul
programului stocat (programul și datele pot fi stocate în memorie, primul
program ordonat și numerele îmbinate în listă); conceptul de funcționare în serie,
fiecare pas la un moment dat, simplificarea circuitelor (acum, mergând în direcția
procesării paralele); utilizarea aritmeticii binară, mai degrabă decât zecimală.
Inventatorii ENIAC John Mauchly și J. Presper Eckert au propus construcția
EDVAC în august 1944. Un contract de construire a noului computer a fost
semnat în aprilie 1946, cu un buget inițial de 100.000 USD. EDVAC a fost livrat
laboratorului de cercetare în domeniul balistice în 1949. Laboratorul de cercetare
balistică (Ballistic Research Laboratory) a devenit parte a Laboratorului de
Cercetare al Armatei din SUA (US Army Research Laboratory) în anul 1992.
Ref.: „First Draft of a Report on the EDVAC” (http://www.virtualtravelog.net/
entries/2003-08-TheFirstDraft.pdf, PDF format) by John von Neumann, Contract
No.W-670-ORD-4926, between the United States Army Ordnance Department
and the University of Pennsylvania. Moore School of Electrical Engineering,
University of Pennsylvania, June 30, 1945. The report is also available in Stern,
Nancy (1981). From ENIAC to UNIVAC: An Appraisal of the Eckert–Mauchly
Computers. Digital Press. Sursă imagine: The create worlds, https://
videogamehistorian.wordpress.com/tag/edvac/
82 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

MEMORY INPUT

ALU OUTPUT

CONTROL
Transfer date
Control

Arhitectura calculatorului modern – John von Neumann (1945)

 Perioada de după anul 1950: generații de software: Mașini timpurii - limbaj cod
mașina (cod binar, ex: 10100101); limbajele de asamblare din anii 1950
(simbolice); după anul 1950 și începutul anilor 1960: limbaje de programare de
nivel înalt (ex: FORTRAN (traducător de formule), John Backus, 1954; COBOL
(limbaj obișnuit de afaceri), Grace Murray Harper și alții, 1960; Pascal (Nicklaus
Wirth, 1970); trecerea de la limbajele procedurale la limbajele orientate pe
obiecte (OOP): limbajele C → C++; limbajul C++ dezvoltat la Bell Labs
începând cu 1979 (numit în 1983), „C cu clase”; limbajele inteligenței artificiale
– LISP (un limbaj functional – un program este o compunere de funcții, inventat
de John McCarthy în 1958, la Institutul de Tehnologie din Massachusetts (MIT)
– anul 1960 și Prolog (limbajul a fost inițial conceput de un grup în jurul lui Alain
Colmerauer din Marsilia, Franța, la începutul anilor 1970, iar primul sistem
Prolog a fost dezvoltat-scris în limbajul FORTRAN) în anul 1972 de către
Colmerauer cu Philippe Roussel); limbajul declarativ Prolog își are rădăcinile în
logica de ordinul I, o logică formală și, spre deosebire de multe alte limbaje de
programare, logica programului este exprimată prin relații (clauze Horn),
reprezentate ca fapte și reguli; un program este inițiat prin rularea unei interogări
asupra acestor relații; limbajul Java (James Gosling și alții de la Sun
Microsystems) dezvoltat la începutul anilor 1990, lansat în anul 1995; (OOP)
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 83

independența platformei s-a împrumutat la utilizarea sistemului Internet. Ref.:


List of Operating Systems: http://www.operating-system.org/, Evolutia limbajelor
de programare (arborele genealogic), https://upload.wikimedia.org/wikipedia/
commons/2/25/Genealogical_tree_of_programming_languages.svg.

Despre „Computer Pioneer Award” of IEEE

„Computer Pioneer Award” a fost înființat în anul 1981 de către Consiliul Societății de
Calculatoare (IEEE) pentru a recunoaște și a onora viziunea acelor oameni ale căror
eforturi au dus la crearea și continuarea vitalității industriei computerelor. Premiul este
prezentat persoanelor fizice remarcabile, a căror contribuție principală la conceptele și
dezvoltarea domeniului informaticii/computing a fost făcută cu cel puțin cincisprezece
ani mai devreme (Ref.: https://www.computer.org/web/awards/pioneer).

Computer Pioneer Past Recipients

1. 2016: E. Grady Booch – For pioneering work in Object Modeling that led to the creation of the
Unified Modeling Language (UML).
2. 2015: Michael J. Flynn – For more than 50 years of leadership, which includes the creation of
TCCA and SIGARCH, basic contributions to computer arithmetic, microarchitecture and
multiprocessing, and quantitative analysis of microarchitectures.

41. 1996: Sergey A. Lebedev – For the first computer in the Soviet Union.
42. 1996: Alexey A. Lyapunov – For Soviet cybernetics and programming.
43. 1996: Romuald W. Marczynski – For pioneering work in the construction of the first Polish
digital computers and contributions to fundamental research in computer architecture.
44. 1996: Grigore C. Moisil – For polyvalent logic switching circuits.
84 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Medalia „Computer Pioneer Award” (IEEE, 1996): primită de Gr. C. Moisil (Sursa: Ioana Moisil, ICCCC
2016, http://dzitac.ro/files/icccc/PreprintProcICCCC2016.pdf )

45. 1996: Ivan Plander – For the introduction of computer hardware technology into Slovakia and
the development of the first control computer.
46. 1996: Arnols Reitsakas – For contributions to Estonia's computer age.
47. 1996: Antonin Svoboda – For the pioneering work leading to the development of computer
research in Czechoslovakis and the design and construction of the SAPO and EPOS computers.
48. 1995: Gerald Estrin – For significant developments on early computers.
49. 1995: David Evans – For seminal work on computer graphics.
50. 1995: Butler Lampson – For early concepts and developments of the PC.

91. 1984: Jerrier A. Haddad – For his part in the lead IBM 701 design team.
92. 1984: Nicholas C. Metropolis – For the first solved atomic energy problems on ENIAC.
93. 1984: Nathaniel Rochester – For the architecture of IBM 702 electronic data processing
machines.
94. 1984: Willem L. van der Poel – For the serial computer ZEBRA.
95. 1982: Harry D. Huskey – For the first parallel computer SWAC.
96. 1982: Arthur Burks – For his early work in electronic computer logic design.
97. 1981: Jeffrey Chuan Chu – For his early work in electronic computer logic design
1.2 Cronologia tehnicii de calcul – istoric și evoluție
Marin Vlada,
Universitatea din București

Cronologia Computing (hardware): înainte de anul 19501

Preistorie – antichitate

 c. 19.000 î.Hr. – Oasele Ishango pot indica faptul că, chiar și obiectele materiale
atât de timpurii, au fost folosite pentru operații aritmetice simple și pot dovedi
unele cunoștințe despre numerele prime (deși acest lucru este în discuție).
 c. 2500 î.H. – Abacul (abacul), primul calculator cunoscut, în această perioadă de
timp, a fost probabil inventat de babilonieni ca un ajutor pentru aritmetica
simplă. A pus bazele notației de poziție și dezvoltărilor de calcul ulterioare.
 c. 1770 î.H. – Prima, din câte se știe, utilizare a cifrei zero (0) de către egipteni
vechi în textele contabile.
 c. 910 î.Hr. – A fost inventat carul (the chariot, caruța) – îndreptată spre sud, în
China antică. A fost primul mecanism cunoscut pentru a folosi un mecanism
diferențial. Chariotul era un vehicul cu două roți, pe care se afla o figură
indicatoare conectată la roți, prin intermediul unui angrenaj diferențial. Prin
selectarea atentă a dimensiunilor roților, a șenilelor și a raporturilor de transmisie,
figura deasupra carului indica întotdeauna în aceeași direcție.
 c. 500 î.Hr. – Învățătorul indian Pāṇini a formulat gramatica sanscrită (cu 3959
reguli) cunoscută sub numele de Ashtadhyayi, care a fost extrem de sistematizată
și tehnică. Pāṇini a folosit metareguli, transformări și recursiuni cu o sofisticare
complexă, încât gramatica sa avea puterea de calcul echivalentă cu o mașină
Turing. Lucrarea lui Pāṇini a fost precursorul teoriei limbajelor formale moderne
și un precursor al utilizării sale în calculul modern. Forma Panini-Backus folosită
pentru a descrie cele mai moderne limbaje de programare este semnificativ
similară regulilor de gramatică ale lui Pāṇini.
 c. 200 î.Hr. – Matematicianul indian / cărturarul / muzicianul Pingala a descris
mai întâi sistemul numeric binar, care este utilizat în proiectarea tuturor
echipamentelor moderne de calcul. El a conceput și noțiunea de cod binar similar
codului Morse.
 c. 125 î.H. – Mecanismul Antikythera: un ceas, un calculator analogic, se crede
că a fost proiectat și construit în colonia Corintul din Syracuse. Mecanismul

1
https://en.wikipedia.org/wiki/Timeline_of_computing_hardware_before_1950.
86 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

conținea un mecanism diferențial și era capabil să urmărească pozițiile relative


ale tuturor corpurilor cerești cunoscute atunci.
 c. 9 d.H. – Matematicienii chinezi au folosit primii numerele negative.
 c. 60 – Heron din Alexandria a făcut numeroase invenții, inclusiv „controlul
secvenței”, în care operatorul unei mașini a pus în mișcare o mașină, care apoi
urmează o serie de instrucțiuni într-un mod determinist. Acesta a fost, în esență,
primul program. De asemenea, a făcut numeroase inovații în domeniul
automatelor, care sunt pași importanți în dezvoltarea roboticii.
 190 – Prima mențiune a suanpanului (abacus chinezesc) care a fost folosit pe
scară largă, până la inventarea calculatorului modern și continuă să fie folosit
astăzi în unele culturi.

Medieval – 1640

 c. 639 – Matematicianul indian Brahmagupta a fost primul care a descris sistemul


modern numeric de localizare-valoare (sistemul numeric hinduist).
 725 – Inventatorul chinez Liang Lingzan a construit primul ceas complet mecanic
din lume; ceasurile de apă, unele dintre ele extrem de precise, fuseseră cunoscute
în secolul anterior. Acesta a fost un salt tehnologic important; cele mai vechi
computere adevărate, construite o mie de ani mai târziu, au folosit tehnologia
bazată pe cea a ceasurilor.
 c. 820 – Matematicianul persan, Muhammad ibn Mūsā al-Khwārizmī, a descris
rudimentele algebrei moderne, al cărei nume este derivat din cartea sa „Al-Kitāb
al-muṁtaṣar fī ḥisāb al-āabr wa-l-muqābala”. Cuvântul Algoritm este derivat din
numele al-Khwarizmi, latinizat.
 c. 850 – Matematician arab Al-Kindi (Alkindus) a fost un pionier al criptografiei.
El a dat prima explicație cunoscută a criptanalizei în Manuscrisul despre
descifrarea mesajelor criptografice. În special, el este creditat cu dezvoltarea
metodei de analiză a frecvenței, prin care variațiile frecvenței apariției literelor ar
putea fi analizate și exploatate pentru a rupe cipurile de criptare (adică
cripanaliza prin analiza frecvenței). De asemenea, textul se referă la metode de
criptanaliză, criptare, criptanaliză a anumitor encipherments (encificări) și
analiză statistică a literelor și a combinațiilor de litere în arabă.
 850 – Frații Banū Mūs au inventat „Cartea muzicală” (Book of Ingenious
Devices, cel mai vechi instrument muzical cunoscut), în acest caz un organ
hidroenergetic, care a jucat automat cilindri interschimbabili. Acest „cilindru cu
pini crescuți pe suprafață a rămas dispozitivul de bază pentru a produce și a
reproduce mecanic muzica până în a doua jumătate a secolului al XIX-lea”. De
asemenea, ei au inventat, un aparat de flaut automat care pare a fi prima mașină
programabilă.
 c. 1000 – Abū Rayhān al-Bīrūnī a inventat Planisphere, un calculator analogic.
De asemenea, el a inventat primul calendar mecanic luni-solar care a folosit un
tren de viteze și opt roți de viteze. Acesta a fost un exemplu timpuriu al unei
mașini de procesare a cunoștințelor cu fir fix.
 c. 1015 – Astronomul arab Abū Ishāq Ibrāhīm al-Zarqālī (Arzachel) al
al-Andalus a inventat Equatorium, un dispozitiv mecanic analogic de calculator
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 87

folosit pentru a găsi longitudinile și pozițiile lunii, soarelui și planetelor, fără


calcul, modelul geometric pentru a reprezenta poziția medie și aproximativa a
corpului ceresc.
 c. 1150 – Astronomul arab Jabir ibn Aflah (Geber) a inventat Torquetum, un
instrument de observare și un dispozitiv mecanic analogic de calculator folosit
pentru transformare între sistemele de coordonate sferice. Acesta a fost conceput
pentru a prelua și transforma măsurările efectuate în trei seturi de coordonate:
orizont, ecuatorial și ecliptic.
 1206 – Inginer arab Al-Jazari, a inventat numeroase automate și a făcut
numeroase alte inovații tehnologice. Unul dintre acestea este un proiect pentru un
manechin programabil umanoid: aceasta pare să fi fost primul plan științific (spre
deosebire de magie) pentru un robot. De asemenea, el a inventat „ceasul
castelului”, un ceas astronomic considerat a fi cel mai vechi computer analogic
programabil. A arătat zodiacul, orbitele solare și lunare, un pointer în formă de
semilună care călătorea printr-o poartă, care deschidea ușile automate la fiecare
oră și cinci muzicieni roboți, și care jucau muzică lovită de pârghiile acționate de
un arbore de came atașat la o roată de apă. Durata zilei și a nopții ar putea fi
reprogramată zilnic, pentru a ține cont de lungimea schimbătoare a zilei și a
nopții pe tot parcursul anului.
 1235 – Astronomul persan Abi Bakr de la Isfahan a inventat un dispozitiv de
alamă cu o mișcare de calendar adaptată, bazată pe designul computerului
analogic, calendar calendaristic al lui Abū Rayhān al-Bīrūnī. Dispozitivul lui Abi
Bakr folosește un set de roți dințate și este cea mai veche mașină mecanică
complet mecanică.
 1300 – Ramon Llull a inventat Cercul Lullian: o mașină noțională pentru calculul
răspunsurilor la întrebările filosofice (în acest caz, în legătură cu creștinismul)
prin combinații logice (logical combinatorics). După mai multe secole, această
idee a fost preluată de Leibniz și, prin urmare, este unul dintre elementele
fondatoare în domeniiile computing și știința informației.
 1412 – Ahmad al-Qalqashandi dă o listă de cifre în Subh al-a'sha, care include
atât substituirea, cât și transpunerea, și pentru prima dată, un cifru cu substituții
multiple pentru fiecare literă scrisă. De asemenea, el oferă o expunere și un
exemplu de criptanaliză, inclusiv utilizarea de tabele de frecvențe de litere și
seturi de litere care nu pot apărea împreună într-un singur cuvânt.
 c. 1416 – Jamshīd al-Kāshī a inventat „Plăcuța de Conjuncții”, un instrument de
calculator analog folosit pentru a determina momentul zilei la care vor avea loc
conjuncții planetare și pentru a efectua interpolarea liniară. De asemenea, el a
inventat un „computer planetar” mecanic pe care el l-a numit „Plate of Zones”,
care ar putea rezolva grafic o serie de probleme planetare, inclusiv prezicerea
adevăratelor poziții ale Soarelui, Lunii și ale planetelor, latitudinile soarelui, ale
lunii și ale planetelor; Ecliptica Soarelui, instrumentul a încorporat o alhidadă și
riglă.
 c. 1450 – Școala de astronomie și matematică de la Kerala, din India de Sud, a
inventat sistemul de numere cu virgulă mobilă.
 1493 – Leonardo da Vinci a realizat desene ale unui dispozitiv care constă din
roți dințate, care pot fi interpretate ca un calculator mecanic, capabil să adune și
88 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

să scadă numere. Un model de lucru inspirat de acest plan a fost construit în anul
1968, dar rămâne controversat, dacă Leonardo a avut cu adevărat un calculator în
minte. Da Vinci a făcut planuri pentru un om mecanic: un design timpuriu pentru
un robot.
 1614 – Scoțianul John Napier a reinventat o formă de logaritmi și un sistem
ingenios de tije mobile (1617, numit tijele lui Napier). Aceste tije s-au bazat pe
algoritmul de înjumătățire și care au permis operatorului să înmulțească, să
împartă și să calculeze rădăcinile pătrate și cuburi, prin deplasarea tijelor în jurul
lor și plasarea lor în plăci special construite.
 1622 – William Oughtred a elaborat reguli de diapozitive bazate pe logaritmii
dezvoltate de John Napier.
 1623 – Matematicianul german Wilhelm Schickard a desenat un dispozitiv pe
care l-a numit un ceas de calcul pe două scrisori, pe care le-a trimis lui Johannes
Kepler, unul în 1623 și celălalt în 1624. Un incendiu a distrus ulterior mașina în
timp ce a fost construită, în 1624, și a decis să renunțe la proiectul său. Această
mașină a devenit cunoscută lumii abia în anul 1957, când au fost descoperite cele
două scrisori. Unele replici au fost construite în anul 1961. Această mașină nu a
avut niciun impact asupra dezvoltării calculatoarelor mecanice.

Perioada 1964 -1949 (selecție)

 1642 – Matematicianul francez Blaise Pascal a inventat calculatorul mecanic.


Aparatul numit Arithmétique, calculatorul lui Pascal și eventual Pascaline,
publicat în anul 1645 este un început în dezvoltarea calculatoarelor mecanice,
mai întâi în Europa și apoi în restul lumii. A fost prima mașină care avea un
mecanism de transport controlat. Pascal a construit 50 de prototipuri înainte de a-
și lansa prima mașină (în cele din urmă au fost construite douăzeci de mașini).
Pascaline a inspirat lucrările lui Gottfried Leibniz (1671), Thomas de Colmar
(1820) și Dorr E. Felt (1887).
 1672 – Matematicianul german Gottfried Leibniz a început proiectarea unei
mașini care a înmulțit „Stepped Reckoner”. Putea multiplica numere de până la 5
și 12 cifre pentru a obține un rezultat de 16 cifre. Au fost construite două mașini,
una în anul 1694 (a fost descoperită într-o mansardă în 1879) și una în anul 1706.
 1685 – Într-un articol intitulat „Machina aritmetica în qua non additio tantum et
subtractio sed et multiplicatio nullo, divizo vero paene nullo animi labore
peragantur”, Gottfried Leibniz a descris o mașină care folosea roți cu dinții
mobili (pinioni) care, cuplată cu un Pascaline efectua toate cele patru operații
matematice. Nu există dovezi că Leibniz a construit vreodată această mașină cu
pinion.
 1726 – Britanicul Jonathan Swift a descris (satiric) o mașină („motor”) în
călătoriile lui Gulliver's. Motorul a constat dintr-un cadru din lemn cu blocuri de
lemn care conțineau părți de vorbire. Când cele 40 de pârghii ale motorului erau
rotite simultan, aparatul prezintă fragmente gramaticale de frază.
 1804 Franțezul Joseph-Marie Jacquard a dezvoltat războiul de țesut Jacquard,
un sistem automat de război controlat prin carduri/cartele perforate.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 89

 1820 – Franțezul Charles Xavier Thomas de Colmar a inventat „aritmometrul”


care, după încă treizeci de ani de dezvoltare, a devenit, în 1851, primul calculator
mecanic produs în masă. Operatorul poate efectua înmulțiri și împărțiri rapide și
era eficient utilizând pentru rezultat un acumulator mobil. Această mașină s-a
bazat pe lucrările anterioare ale lui Pascal și ale lui Leibniz.
 1822 – Britanicul Charles Babbage a conceput primul său calculator mecanic,
primul prototip al motorului cu diferență zecimală pentru polinoamele de tabelare.
 1833 – Britanicul Charles Babbage a conceput și a început să proiecteze motorul
său zecimal „Analytical Engine”. Un program pentru acesta urma să fie stocat în
memorie numai pentru citire, sub formă de cartele perforate. Babbage a continuat
să lucreze la proiectare ani de zile, deși, după aproximativ anul 1840 schimbările
de proiectare par să fi fost minore. Mașina ar fi operat pe numere de 40 de cifre;
„miezul” (CPU) ar fi avut două acumulatoare principale și unele auxiliare pentru
scopuri specifice, în timp ce „store” (memoria) ar fi avut o mie de numere cu 50
cifre. Mașina imaginată ar fi fost capabilă de o adunare în 3 secunde și o înmulțire
sau împărțire în 2-4 minute. Trebuia să fie alimentat de un motor cu aburi.
 1846 – Britanicul Charles Babbage a început să lucreze la un motor cu diferențe
îmbunătățite (the Difference Engine No.2), producând un set complet de planuri
executate până în anul 1849. Mașina ar fi funcționat pe diferențe de ordinul 7 și
numere cu 31 de cifre, dar nimeni nu a vrut să plătească pentru a fi construit. În
perioada 1989 - 1991, o echipă de la Muzeul de Științe din Londra a construit
unul din planurile supraviețuitoare. Ei au construit componente folosind metode
moderne, dar cu toleranțe nu mai bune decât le-ar fi oferit Clement și, după un pic
de gândire și detalii de depanare, au descoperit că mașina funcționează corect.
 1847 – Matematicianul britanic George Boole a dezvoltat algebra booleană
(Boolean algebra) care a fost utilizată pe scară largă în proiectarea și
funcționarea calculatoarelor binare, începând cu aproximativ un secol mai târziu.
 1851 – În Franța, după 30 de ani de dezvoltare, Thomas de Colmar a lansat
industria calculatoarelor mecanice pornind de la fabricarea unui aritmometru
(Arithmometer) mult simplificat (inventat în 1820). În afară de clonele sale, care
au început treizeci de ani mai târziu, a fost singura mașină de calcul disponibilă
în lume timp de patruzeci de ani (Dorr E. Felt vânduse doar o sută de
compometre și câteva compotografe între anii 1887 și 1890). Simplitatea
dispozitivului a facut să fie cel mai fiabil calculator până în prezent. A fost o
mașină mare, un aritmometru de 20 de cifre a fost suficient de lung pentru a
ocupa cea mai mare parte a unui desktop. Chiar dacă aritmometrul a fost produs
numai până în anul 1915, douăzeci de companii europene au fabricat clone
îmbunătățite ale designului său până la începutul celui de-al doilea război
mondial: Burkhardt, Layton, Saxonia, Gräber, Peerless, Mercedes-Euklid, XxX,
Archimedes etc
 1856 – În USA, a fost cumpărată prima mașină de tabulare la Observatorul
Dudley din Albany, New York, de către guvernul britanic, iar a doua a fost
comandată în anul 1857. Mașina Albany a fost folosită pentru a produce un set de
mese astronomice; directorul Observatorului a fost concediat pentru această
achiziție extravagantă, iar mașina nu a mai folosită, eventual a ajuns într-un
muzeu. A doua mașină a avut o viață lungă și utilă.
90 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 1886 – În USA, prima utilizare a sistemului de tabulare Herman Hollerith în


cadrul Departamentului de Sănătate din Baltimore. În anul 1887 Herman
Hollerith depune o cerere de brevet pentru un tabulator de integrare (acordat în
1890), care adăuga numere codate pe cartele perforate. Prima utilizare
înregistrată a acestui dispozitiv a fost în anul 1889 la Oficiul de chirurgie
generala al armatei. În anul 1896, Hollerith a introdus un model îmbunătățit.
 1889 – Americanul Dorr Felt a inventat primul calculator de tipărire de birou.
 1890 – Recensământul din 1880 al Statelor Unite a durat 7 ani pentru a fi
finalizat, deoarece toată prelucrarea fusese făcută manual. Pentru recensământul
din 1890 s-a organizat o competiție pentru a găsi o metodă mai bună. A fost
câștigată de un angajat al Departamentului pentru recensământ, Herman
Hollerith, care a continuat să înființeze Compania Tabulating Machine, mai
târziu devenind compania IBM. El a inventat înregistrarea datelor pe un mediu
care ar putea fi apoi citit de o mașină. Utilizările anterioare ale suporturilor de
citire a mașinilor au fost destinate controlului (automate, rulouri de pian,
războaie de tesut etc.). Mașinile lui au folosit la relee mecanice pentru a crește
contoarele mecanice. Această metodă a fost utilizată în recensământul din 1890.
 1906 – În Statele Unite s-a inventat Audion (vacuum tube sau supapă termionică)
de Lee De Forest.
 1928 – În Statele Unite ale Americii, compania IBM standardizează cartelele/
cardurile perforate cu 80 de coloane de date și găuri dreptunghiulare. Cunoscută
cu denumirea IBM Cards, aceastea domină industria de prelucrare a datelor timp
de aproape o jumătate de secol.
 1930 – Americanul Vannevar Bush a construit un analizor diferențial parțial
electronic (differential analyser) capabil să rezolve ecuații diferențiale.
 1931 – În Austria, Kurt Gödel de la Universitatea din Viena, a publicat o lucrare
despre un limbaj formal universal bazat pentru operații aritmetice. El a folosit-o
pentru a codifica declarații și dovezi arbitrare și a arătat că sistemele formale,
cum ar fi matematica tradițională, sunt fie inconsecvente, într-un anumit sens, fie
conțin declarații nedovedite, dar adevărate. Acest rezultat este deseori numit
rezultatul fundamental al științei teoretice a calculului (theoretical computer
science).
 În perioada 1934–1936, inginerul japonez Akira Nakishima, de la compania NEC,
a publicat o serie de lucrări introducând teoria circuitelor de comutare (switching
circuit theory). Acest lucru a pus bazele pentru proiectarea circuitelor digitale, în
computerele digitale și în alte domenii ale tehnologiei moderne.
 1936 – Matematicianul Alan Turing, de la Universitatea Cambridge din Anglia, a
publicat o lucrare cu privire la „numerele computerizate” (Entscheidungsproblem),
care a reformulat rezultatele lui Kurt Gödel (a se vedea lucrarea lui Alonzo
Church). Lucrarea celebră „Entscheidungsproblem” a fundamentat o soluție (ca
un dispozitiv matematic) despre un computer simplu și teoretic, cunoscut astăzi
ca o mașină Turing. În multe privințe, acest dispozitiv a fost mai convenabil
decât sistemul universal universal bazat pe aritmetică al lui Gödel. „In a
memorable talk given at Rome University in the early 1970s, the great Russian
mathematician Kolmogorov declared that Turing’s results concerning
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 91

computability were the most important achievements of mathematics in the 20th


century”.
 1937 – Americanul George Stibitz de la Bell Telephone Laboratories (Bell Labs),
New York City, a construit un dispozitiv demonstrativ binar, cu 1 bit folosind
relee. Acesta a fost unul dintre primele computere binare, deși în acest stadiu era
doar o mașină demonstrativă; au continuat îmbunătățirile, ceea ce a dus la
calculatorul complex (Complex Number Calculator) din ianuarie 1940.
 1937 – Claude E. Shannon a publicat o lucrare privind implementarea logicii
simbolice folosind relee în teza sa de masterat de la MIT. El a citat lucrarea
anterioară a lui Akira Nakashima în teoria circuitelor de comutare.
 1938 – Germanul Konrad Zuse din Berlin a elaborat Z1, primul computer
mecanic binar programabil. S-a bazat pe algebra booleană și a avut unele dintre
componentele de bază ale mașinilor moderne, folosind sistemul binar și
aritmetica cu virgulă mobilă (floating-point arithmetic). Cererea de brevet de
invenție din 1936 (Z23139 / GMD Nr. 005/021) a sugerat arhitectura „von
Neumann” (re-inventată în jurul anului 1945) cu programe și date care pot fi
modificate în stocare. Inițial, mașina a fost numită „V1”, dar a fost redenumită
retroactiv după război, pentru a evita confuzia cu bomba atomica V-1. A lucrat cu
numere cu virgulă mobilă (exponent pe 7 biți, mantisă pe 16 biți și bit semn).
Memoria folosită piese metalice alunecoase pentru a stoca 16 astfel de numere și
a funcționat bine; unitatea aritmetică a fost mai puțin reușită, uneori suferind de
anumite probleme de inginerie mecanică. Programul a fost citit din găuri
perforate în filmul de 35 mm. Valorile datelor ar fi putut fi introduse de la o
tastatură numerică, iar ieșirile au fost afișate pe lămpile electrice. Mașina nu era
un computer general (adică, mașina Turing completă).
 1939 – Americanii William Hewlett și David Packard au înființat compania
Hewlett-Packard în garajul lui Packard din Palo Alto, California, cu o investiție
inițială de 538 de dolari (echivalentul a 9.353 dolari în 2017); aceasta a fost
considerată infiintarea simbolică a Silicon Valley. HP va deveni una dintre cele
mai mari companii de tehnologie din lume.
 1939 – În USA, John Vincent Atanasoff, student absolvent al Colegiului Clifford
Berry de la Iowa State College (în prezent, Universitatea de Stat din Iowa),
Ames, Iowa, a finalizat un prototip de 16-bit. Aceasta a fost prima mașină care a
calculat utilizând tuburilor vacuum (vacuum tubes).
 1940 – Germanul Konrad Zuse a terminat calculatorul „Z2” (inițial „V2”), care a
combinat unitatea de memorie mecanică existentă a lui Z1 cu o nouă unitate
aritmetică folosind logica releului. La fel ca Z1, Z2 nu avea capacități de buclă.
Proiectul a fost întrerupt pentru un an, când Zuse a conceput și proiectat, dar a
continuat după ce a terminat proiectarea. În 1940, Zuse a prezentat calculatorul
Z2 unui public al Deutsche Versuchsanstalt für Luftfahrt („Laboratorul german
de aviație”) din Berlin-Adlershof.
 1942 – În USA, Atanasoff și compania Berry au terminat un calcul special pentru
rezolvarea sistemelor de ecuații liniare simultane, denumite mai târziu ABC
(„Atanasoff-Berry Computer”). Această mașină a avut 60 de cuvinte de memorie
de 50 de biți sub formă de condensatoare (cu circuite de reîmprospătare – prima
memorie regenerativă) montate pe două tobe rotative. Viteza a fost de 60 Hz, iar
92 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

o operație de adăugare a durat o secundă. Pentru memoria secundară a folosit


cartele perforate, deplasate de utilizator. Găurile nu erau de fapt perforate în
cartela, ci arse. Rata de eroare a sistemului de cartele perforate nu a fost niciodată
redusă peste nivelul de 0,001%, iar acest lucru a fost inadecvat. Atanasoff a
părăsit statul Iowa după ce SUA a intrat în război, terminându-și lucrările pe
mașinile de calcul digital.
 1943 – În Marea Britanie a fost construit calculatorul Colossus de către Dr.
Thomas Flowers, la Laboratoarele de Cercetare Post Office din Londra, pentru a
sparge cipul german Lorenz (SZ42). Acesta conținea 2400 tuburi vacuum pentru
logică și aplica o funcție logică programabilă unui flux de caractere de intrare,
citite de pe bandă perforată, la o rată de 5000 de caractere pe secundă. Colossus a
fost folosit la Bletchley Park în timpul celui de-al doilea război mondial – ca
succesor al mașinilor nesigure Heath Robinson. În cele din urmă, deși au fost
construite 10 calculatoare, cele mai multe au fost distruse, imediat după ce și-au
terminat munca, pentru a păstra secretul lucrării.
 1944 – În USA, compania IBM a construit Harvard Mark I, calculatorul automat
de secvență controlată (Automatic Sequence Controlled Calculator) pentru
Universitatea Harvard. A fost proiectat de Howard Aiken și echipa sa, finanțat și
construit de IBM - a devenit a doua mașină controlată de program după Konrad
Zuse. Întreaga mașină avea o loungime de 16 picioare (16 m), a cântărit 4,5 tone
și a încorporat 750 000 de piese. A folosit 3304 relee electromecanice ca
întrerupătoare on-off, avea 72 de acumulatoare (fiecare cu o unitate aritmetică
proprie), precum și un registru mecanic, cu o capacitate de 23 de cifre plus semn.
Aritmetica a fost de virgula fixă și de zecimal, cu o setare a panoului de control
care determina numărul de zecimale. Facilitățile de intrare și ieșire includeau
cititoarele de cartele, un set de catele, cititoarele de bandă de hârtie și mașinile de
scris. Au existat 60 de seturi de întrerupătoare rotative, fiecare dintre acestea
putând fi utilizate ca un registru constant - un fel de memorie mecanică numai
pentru citire. Programul a fost citit de pe o bandă de hârtie; datele puteau fi citite
de pe celelalte benzi, cititoare de cartele sau din registrele constante. Salturile
condiționate nu au fost disponibile. Cu toate acestea, în anii următori, mașina a
fost modificată pentru a suporta mai multe cititoare de benzi de hârtie pentru
program, transferul de la unul la altul fiind condiționat, mai degrabă ca un apel de
subrutină condiționată. O altă adăugare a permis furnizarea de subrutine cu fir cu
fir de tip plug-board care să poată fi redirecționate de pe bandă. A fost folosit
pentru a crea tabele de balistica pentru marina americană.
 1945 – Matematicianul american John von Neumann a redactat un raport care
descrie conceptul viitorului computer modern, construit în cele din urmă ca
EDVAC (Electronic Discrete Variable Automatic Computer). Primul proiect al
unui raport privind EDVAC include prima descriere publicată a proiectarii unui
calculator de programe stocate (stored-program computer), care a dat naștere
arhitecturii von Neumann. A influențat direct sau indirect aproape toate
proiectele ulterioare, în special EDSAC. Echipa de proiectare a inclus pe John W.
Mauchly și pe J. Presper Eckert.
 1946 – La 14 februarie, în USA s-a anunțat construirea calculatorului ENIAC
(Electronic Integrator Numeric și Calculator), unul dintre primele computere
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 93

electronice cu comandă prin supapă, digitale, cu program controlat. A fost închis


la 9 noiembrie 1946, pentru o renovare și pentru o îmbunătățire a memoriei prin
transfer la Aberdeen Proving Ground, Maryland în 1947. Dezvoltarea a început
în 1943 la Laboratorul de Cercetare Balistică din SUA, de către John W.
Mauchly și J. Presper Eckert. Acesta a cântărit 30 de tone și conținea 18.000 de
supape electronice, consumând în jur de 160 kW de energie electrică. Putea face
5.000 de calcule de bază pe secundă. A fost folosită pentru calcularea
traiectoriilor balistice și pentru testarea teoriilor privind bomba cu hidrogen.
 1946 – 19 februarie, în Regatul Unit s-a anunțat proiectul pentru calculatorul
ACE (Automatic Computing Engine, Motor de calcul automat): matematicianul
englez, Alan Turing a prezentat o lucrare detaliată Comitetului Executiv al
Laboratorului Național de Cercetări Fizice (NPL), oferind primul proiect
rezonabil, în întregime, al unui calculator cu programe stocate. Cu toate acestea,
datorită secretului pe lungă durată (rațiuni miltare) la Bletchley Park, i s-a interzis
(prin semnarea Legii oficiale a secretului) să explice că știa că ideile sale ar putea
fi implementate într-un dispozitiv electronic.
 1947 – În Marea Britanie se dezvoltă primul limbaj de asamblare de către
Kathleen Booth, la Birkbeck, Universitatea din Londra, după ce a lucrat cu John
von Neumann și Herman Goldstine la Institutul de Studii Avansate (USA).
 1948 – În Statele Unite apare ANACOM de la Westinghouse, un sistem
computerizat electric analogic (analog computer) alimentat cu curent electric,
folosit până la începutul anilor 1990, pentru probleme legate de proiectarea
mecanică și structurală, mecanica fluidelor și diverse probleme tranzitorii.
 1949 – La 6 mai, în Marea Britanie, Maurice Wilkes și o echipă de la
Universitatea Cambridge au executat primul program stocat pe computerul
EDSAC, care a folosit intrarea și ieșirea din bandă de hârtie. Bazat pe ideile lui
John von Neumann despre computerele cu programe stocate, EDSAC a fost
primul calculator de arhitectură von Neumann complet funcțional.
 1949 - În Australia s-a construit calculatorul CSIR Mk I (ulterior cunoscut sub
numele de CSIRAC (Council for Scientific and Industrial Research Automatic
Computer), primul calculator din Australia, pe care a rulat primul program de
testare. Era un computer electronic de uz general, bazat pe tuburi vacuum.
Memoria sa principală a stocat date ca o serie de impulsuri acustice în tuburi
lungi de 5 ft (1,5 m) umplute cu mercur.

Perioada 1950 - 20002 (selecție)

 1950 – Germanul Konrad Zuse a construit calculatorul Z4 pentru ETH Zurich


timp de cinci ani. Calculatorul Z4 a fost o mașină cu releu. Contractul
corespunzător a fost semnat în toamna anului 1949, iar mașina sa a fost
reasamblată la Zurich, după sosirea sa în iulie 1950. Calculatorul Z4 a fost
înlocuit de ERMETH, un calculator dezvoltat la ETH în Elveția, între 1953 și
1956, unul dintre primele computere electronice de pe continentul european.

2
https://en.wikipedia.org/wiki/Timeline_of_computing_1950%E2%80%9379
94 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 1950 – Matematicianul englez Alan Turing, pionier al Computer Science (științei


calculatorului), a publicat lucrarea științifică «Turing Test», care descrie
dezvoltarea potențială a comunicării dintre inteligența umană și inteligența
calculatorului. Mai târziu, lucrarea va fi numită „Testul Turing”. La 10 mai 1950,
computerul pilot ACE, cu 800 de tuburi vacuum și linii de întârziere cu mercur,
pentru memoria sa principală, a devenit operațional la Laboratorul Național de
Fizică din apropierea Londrei. A fost o versiune preliminară a calculatorului
ACE finalizat, proiectat de Alan Turing.

Doodle 2012 – Alan Turing’s 100th Birthday,


https://www.google.com/doodles/alan-turings-100th-birthday

 1951 – La 30 Martie, în USA, a fost funcțional primul calculator electronic de


succes, UNIVAC, fiind și primul calculator de uz general, proiectat să gestioneze
atât informații numerice, cât și texte. A fost proiectat de J. Presper Eckert și John
Mauchly, de la compania Remington Rand. Implementarea acestei mașini de
calcul a marcat începutul real al erei computerelor. Compania Remington Rand a
livrat prima mașină UNIVAC către Biroul de recensământ din S.U.A. Pentru
intrare (Input), această mașină de calcul a folosit bandă magnetică.
 1951 – La 21 Aprile, în SUA, a devenit operațional Whirlwind, primul computer
în timp real, construit la MIT de către echipa lui Jay Forrester pentru Sistemul de
Apărare al SUA. Acest computer a fost primul care permitea calculul interactiv,
permițând utilizatorilor să interacționeze cu acesta folosind o tastatură și un tub
catodic. Proiectul Whirlwind a fost dezvoltat ulterior în SAGE, un sistem
cuprinzător de computere în timp real folosit pentru avertizarea timpurie a
atacurilor aeriene.
 1951 – În septembrie, în UK au fost interpretate de computerul Ferranti Mark 1,
cele mai vechi înregistrări cunoscute ale muzicii generate de calculator. Mark 1
este o versiune comercială a mașinii Manchester Mark 1 de la Universitatea din
Manchester. Programul de muzică a fost scris de Christopher Strachey.
 1951 – În USA, EDVAC (Electronic Discrete Variable Computer, calculator
electronic variabil discret), este funcțional primul computer care folosea banda
magnetică. Calculatorul EDVAC putea încărca noi programe de pe bandă. Propus
de John von Neumann, a fost instalat la Institutul de Studii Avansate, Princeton,
SUA.
 Aprilie 1952 – Compania americană IBM introduce IBM 701, primul calculator
din seria 700 și 7000, calculatoare de mari dimensiuni, cu arhitecturi științifice și
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 95

comerciale variate, dar și electronice și periferice comune. Unele computere din


această serie au rămas în funcțiune până în anii 1980.
 1953 – În USA a fost dezvoltată memoria nucleului magnetic (Magnetic core
memory). În lume, se estima că existau 100 de calculatoare electronice.
 1954 – În USA a apărut limbajul de programare FORTRAN (FORmula
TRANslation) - finalizat în anul 1957, primul limbaj de programare la nivel înalt,
elaborat de John Backus și echipa sa de la IBM. Dezvoltarea a continuat până în
anul 1957. Limbajul este utilizat și în prezent pentru programarea științifică.
Înainte de a avea forma executabilă, program FORTRAN trebuie convertit într-un
program mașină de către un compilator.
 1956 – Olandezul Edsger Dijkstra a inventat un algoritm eficient pentru cele mai
scurte căi/drumuri în grafuri, ca o demonstrație a abilităților calculatorului
ARMAC. Exemplul utilizat a fost la sistemul feroviar olandez. Deși Dijkstra este
cunoscut pentru acest algoritm, el are contribuții importante în multe domenii de
calcul: probleme legate de concurență, cum ar fi invenția semaforului.
 1957 – În USA compania IBM dezvoltă prima imprimantă matriceală (dot
matrix printer) comercializată de IBM.
 1958 – În SUA apare limbajul de programare funcțională LISP (interpretor),
finalizat în anul 1960. Dezvoltat de John McCarthy, la Massachusetts Institute of
Technology (MIT), limbajul LISP reprezintă „Procesarea LISt” (LISt Processing)
și dezvoltat în domeniul Inteligenței Artificiale (A.I.).
 1958 – Pe 12 septembrie, în SUA apare circuitul integrat inventat de Jack Kilby
de la Texas Instruments. Robert Noyce, care mai târziu a înființat compania Intel,
a lucrat separat și asupra acestei invenții. Compania Intel a continuat ulterior să
perfecționeze microprocesorul. Brevetul a fost solicitat în anul 1959 și acordat în
1964. Acest brevet nu a fost acceptat de Japonia, astfel încât întreprinderile
japoneze puteau evita plata oricărei taxe, dar în 1989 – după o bătălie legală de 30
de ani – Japonia a acordat brevetul; astfel încât, toate companiile japoneze au plătit
taxe până în anul 2001, mult după ce brevetul a devenit depășit în restul lumii.
 1959 – În SUA apare limbajul de programare COBOL (COmmon Business-
Oriented Language) dezvoltat de Grace Murray Hopper ca succesor al FLOW-
MATIC, finalizat în anul1961.
 1960 – În SUA și în Europa a fost lansat limbajul de programare de nivel inalt
ALGOL („Algorithmic Language”), primul limbaj de programare structurat, un
limbaj imperativ/procedural. Sintaxa majorității limbajelor de programare
moderne este asemănătoare cu a limbajului ALGOL. Limbajul a influențat
limbaje de programare de nivel înalt: FORTRAN, Lisp și COBOL. Limbajul
ALGOL a fost conceput pentru a evita unele dintre problemele ridicate (eliminarea
salturilor, a instrucțiunii goto) de FORTRAN și, în cele din urmă, a dat naștere
multor limbaje de programare, inclusiv PL/I, Simula, BCPL, B, Pascal și C.
 1961 – În USA Compania Texas Instruments a construit calculatorul Molecular
Electronic Computer, primul circuit integrat de calculator de uz general (construit
în scopuri demonstrative, programat să simuleze un calculator de birou), pentru
Forțele Aeriene din SUA.
 1962 – În USA apare jocul Spacewar!, un joc de calculator rapid și foarte
influent, scris de Steve Russell, student la MIT. Jocul a fost executat pe un
96 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

calculator PDP-1 DEC, jucătorii concurenți au utilizat pentru tragere o versiune


mai veche a joystick-ului.
 1963 – În SUA este inventat Mouse, conceput de Douglas Engelbart. Mouse-ul
nu a deveni popular, decât în anul 1983 – după 20 de ani, prin utilizare la Apple
Computer Lisa și Macintosh și nu a fost adoptat de IBM, decât în anul 1987, deși
computere compatibile, cum ar fi Amstrad PC1512 au fost echipate cu mouse
înainte de această dată.
 1965 – În USA apare calculatorul DEC PDP-8, minicalculator, primul
minicomputer, construit de Digital Equipment (DEC). Costul a fost de 18.500
USD (echivalentul a aproximativ 143.700 USD în anul 2017).
 1965 – În USA apare Legea Moore publicată de Gordon Moore. Inițial, aceasta
lege spunea: complexitatea procesorului se dubleaza în fiecare an. A fost
publicată în a 35-a ediție a revistei Electronics. Legea a fost revizuită în anul
1975 pentru a sugera o dublare în complexitate la fiecare doi ani.
 1965 – În SUA apare Logica fuzzy proiectată de Lofti Zadeh (Universitatea din
California, Berkeley), utilizată pentru a procesa date aproximative – cum ar fi
„aproximativ 100”.
 1965 – În SUA apare limbajul de programare BASIC (Beginners All Purpose
Symbolic Instruction Code, Codul instrucțiunilor simbolice pentru începători),
elaborat la Dartmouth College de Thomas E. Kurtz și John George Kemeny.
Limbajul BASIC nu a fost implementat pe microcomputere până în 1975.
Aceasta a fost primul limbaj de programare conceput pentru a fi utilizat într-un
mediu de partajare a timpului, cum ar fi DTSS (Dartmouth Time-Sharing System)
sau GCOS.
 1965 – În USA este inventat conceptul de schimbare a pachetelor (Packet
switching), contract finanțat de ARPA. Acest lucru face posibilă crearea unei
rețele de calculatoare fiabile. Prima conectare între 2 calculatoare (prima logare)
nu se produce decât la data de 21 noiembrie 1969, între 2 calculatoare aflate la
Stanford și UCLA.
 1965 – În SUA compania Control Data a dezvoltat CDC 6600, primul supercomputer.
 1966 – Apare teorema programării structurate (Böhm-Jacopini Theorem). Cel
mai remarcabil exemplu de cercetare a fost faimosul rezultat cunoscut sub
numele de „teorema lui Böhm-Jacopini” care afirmă în esență că toți algoritmii
pot fi proiectați folosind doar trei construcții fundamentale de programare
(structurile de control): Secvența (care necesită executarea instrucțiunilor după
cealaltă, fără salturi), Selecția (dacă o anumită proprietate este adevărată, se
execută subprogramul p1, altfel se execută subprogramul p2), și Iterația (în timp
ce o anumită proprietate este adevărată se execută subprogramul p). Demonstratia
teoremei lui Böhm și Jacopini se face prin inducție pe structura unei diagramei de
flux. Deoarece a fost folosit modelul de potrivire a grafurilor, demonstrația lui
Böhm și Jacopini nu era practic un algoritm de transformare a programului, și
astfel a fost deschisă ușa pentru cercetări suplimentare în această direcție.
 1966 – În SUA compania Hewlett-Packard a intrat în business-ul general cu
computerele HP-2115, oferind o putere găsită doar pe computerele mult mai
mari. A susținut și folosit o mare varietate de limbaje de programare, printre care
ALGOL, BASIC și FORTRAN.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 97

 1967 – În USA și Elveția s-a realizat dezvoltarea limbajului de programare


Pascal bazat pe limbajul ALGOL, la început în USA, apoi a continuat în Elveția,
în perioada 1968 - f1971. A fost dezvoltat de Niklaus Wirth ca instrument
pedagogic pentru învățarea algoritmicii.
 1967 – În SUA este inventată discheta (floppy disk) la compania IBM, de David
Noble, sub indrumarea lui Alan Shugart, pentru utilizarea cu System /
370. Redevențele de licență au plătite joponezului dr. Yoshiro Nakamatsu din
Tokyo, care a susținut că a avut prima data ideea invenției pentru dischetă, încă
din anul 1950.
 1968 – În SUA Robert Noyce și câțiva prieteni a fondat compania Intel.
 1968 – În SUA apare limbajul de programare LOGO dezvoltat de Wally
Feurzeig, Seymour Papert și Cynthia Solomon de la MIT.
 1968 – În SUA s-a dezvoltat Hewlett-Packard 9100A, primul Computer Desktop
(un PC timpuriu) de la HP.
 1968 – La 9 Decembrie, în SUA, Douglas Engelbart face o demonstrație despre
computerele interactive, la Conferința comună de calculatoare (Fall Joint
Computer Conference) din San Francisco: mouse-ul, ferestrele de pe ecran,
hipertext și procesarea completă a textului.
 1969 – În USA a început proiectul pentru cercetare în domeniul rețelelor de
calculatoare, ARPANET de către Departamentul Apărării al Statelor Unite.
Proiectul a fost forma inițială pentru ceea ce formează astazi sistemul Internet.
Mai târziu, în anii 1970, acesta a fost deschis utilizatorilor non-militari, iar multe
universități și întreprinderi mari au intrat on-line.
 1969 – În SUA a început dezvoltarea sistemului de operare UNIX. Mai târziu, a
fost lansat în cod sursă C pentru a facilita portabilitatea, iar ulterior versiunile au
fost disponibile pentru multe computere, inclusiv IBM PC. Acesta și versiunile
sale (cum ar fi GNU / Linux) sunt încă utilizate pe scară largă pe servere de rețea
și stații de lucru științifice. Dezvoltarea inițială a fost realizată de Ken Thompson
și Dennis Ritchie.
 1969 – 7 Aprile, în SUA s-a publicat prima cerere de comentarii, RFC 1.
RFC-urile (grupul de lucru al rețelei, Request for Comment) sunt o serie de
lucrări care sunt folosite pentru a dezvolta și a defini protocoale de rețele; inițial,
baza de pornire a fost ARPANET. Astăzi, există mii de protocoale care se aplică
tuturor aspectelor Internetului. În mod colectiv, ele documentează totul despre
felul în care ar trebui să se comporte computerele în sistemul Internet.
Comportarea se realizează prin protocolul TCP/IP ce utilizează anteturile de e-
mail descrise de un set de RFC.
 1970 – Octombrie, în SUA apare primul chip dinamic RAM introdus de Intel.
Acesta a fost numit 1103 și avea o capacitate de 1 Kb=1024 biți.
 1970 – În SUA s-a dezvoltat limbajul de programare Forth. Avea un design
simplu, curat, bazat pe stiva, care mai târziu a inspirat dezvoltarea limbajelor
PostScript și mașina virtiuală Java (Java virtual machine).
 1971 – 5 Noiembrie, în SUA este lansat Intel 4004, primul microprocesor
disponibil comercial. Acesta conținea echivalentul a 2.300 de tranzistori și a fost
un procesor pe 4 biți. Este capabil de aproximativ 60.000 de instrucțiuni pe
secundă (0,06 MIPS), care rulează la o viteză maximă de ceas de 740 kHz.
98 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 1971 – A fost introdusă floppy-ul (floppy disk) de 8 inch.


 1972 – Calculatoarele construite după anul 1972 sunt numite computere „de a IV-
a generație”, bazate pe circuite integrate LSI (Large Scale Integration), cum ar fi
microprocesoarele, de obicei 500 sau mai multe componente pe un cip.
Dezvoltările ulterioare, 5 ani mai târziu, includ VLSI (integrare pe scară foarte
mare) a circuitelor integrate, de obicei 10 000 de componente. Generația a IV-a
este în general privită ca funcționând, chiar până în prezent, deși puterea de calcul
a crescut, tehnologia de bază a rămas practic aceeași.
 1972 – Este dezvoltat limbajul de programare C la compania Bell Laboratories
din SUA. Dennis Ritchie, unul dintre inventatorii sistemului de operare Unix,
simplifică BCPL într-o limbă pe care o numește B, apoi repetă B în C. Este o
limbaj de operare foarte popular, în special pentru programarea sistemelor,
deoarece este flexibil și rapid. Limbajul C a fost considerat o schimbare
revoluționară în industria de calcul (software), deoarece a contribuit la
introducerea programării structurate. Inspirat de C, limbajul de programare C++
a fost introdus în anii 1980 și, la rândul său, a ajutat la introducerea erei
programării orientate pe obiecte.
 1972 – 1 Aprile, Compania americană Intel a lansat microprocesorul 8008.
 1972 – În SUA se stabilesc primele conexiuni internaționale la sistemul de
calculatoare ARPANET, ce a devenit ulterior baza pentru ceea ce numim
sistemul Internetul.
 1972 – Compania americană Norsk Data lansează calculatorul Nord-5, primul
super minicomputer pe 32 de biți.
 1973 – În Franta a apărut microcomputer Micral N, creat în 1973 de francezul
François Gernelle, de la compania R2E. Acesta va fi recunoscut oficial ca fiind
„primul microcalculator comercializat în lume” de Steve Wozniak (creatorul
Apple 1), care a fost în anul 1986, membru al juriului competiției internaționale
din Statele Unite.
 1973 – În SUA s-a dezvoltat suita de protocoale TCP/IP de către un grup condus
de Vinton Cerf și Robert E. Kahn. Acestea sunt protocoalele utilizate de sistemul
Internet.
 1973 – În Franța, Alain Colmerauer a dezvoltat limbajul de programare logică
Prolog, la Universitatea din Luminy-Marseilles. Acesta a introdus o nouă
paradigmă de programare logică și este adesea folosit pentru dezvoltarea
sistemelor expert și programare în domeniul Inteligentei artificiale ( AI).
 1973 – În SUA s-a dezvoltat tehnologia Ethernet, aceasta a devenit o modalitate
populară de conectare a PC-urilor și a altor computere împreună, pentru a le
permite să partajeze date și dispozitive, precum imprimantele. Un grup de
calculatoare conectate împreună în acest mod este cunoscut ca o rețea LAN
(Local Area Network is a Computer Network).
 1975 – În SUA apare prima implementare pe microcalculator a limbajului BASIC
de către Bill Gates și Paul Allen, scris pentru MITS Altair, ceea ce a dus la
formarea companiei Microsoft.
 1975 – Compania norvegiană Mycron lansează primul său computer MYCRO-1
(single-board computer). În SUA s-a fondat compania Microsoft, fondatori fiind
Bill Gates și Paul Allen.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 99

 1976 – Compania americană Zilog a lansat chip Z80. A fost o superset al cipului
8080 cu regiștri și instrucțiuni suplimentare, folosind doar o singură tensiune de
alimentare. Inițial, sistemul de operare CP/M a fost scris pentru 8080, însă multe
implementări au folosit modelul Z80. Microprocesorul Z80 a fost procesorul
pentru computerele de casă, cum ar fi Tandy TRS-80 din 1977, Sinclair ZX
Spectrum din 1982 și multe altele.
 1976 – În USA, compania Commodore cumpără compania MOS Technology, Inc.
printr-un comerț cu acțiuni. Compania MOS era evaluată la 12 milioane USD.
Chuck Peddle se alătură Commodore ca inginer șef. Odată cu achiziționarea
MOS, Commodore începe să lucreze la Commodore PET.
 1976 – Sunt introduse discuri de dischetă (floppy disks) de 5,25 inch. Atunci când
acest produs ajunge pe piața PC-urilor, acesta provoacă o creștere explozivă în
stocarea informațiilor digitale.
 1977 – 5 iunie, în SUA a fost introdus computerul Apple II pe baza unui
microprocesor MOS 6502 cu 8 biți MOS care rula la 1 MHz cu 4 KB de memorie
RAM. Avea o arhitectură deschisă, o grafică colorată și o interfață pentru casete
audio pentru încărcarea programelor și stocarea datelor. Mai târziu, în iulie 1978,
a fost pusă la dispoziție o unitate de dischetă cu o interfață elegant proiectată.
Pentru acesta, a fost lansat unul dintre primele exemple de „aplicație pentru
ucigaș” (killer app) (lumea afacerilor) - programul de calcul tabelar VisiCalc - în
anul 1979.
 1978 – 8 iunie, în USA apare microprocesorul Intel 8086 pe 16 biți, primul
microprocesor x86. Frecvențele de ceas disponibile au fost de 5, 8 și 10 MHz, cu
un set de instrucțiuni de aproximativ 300 de operații. La lansarea sa, cea mai
rapidă versiune 8086 disponibilă a fost versiunea de 8 MHz, care a atins 0,8
MIPS și cuprindea 29000 de tranzistoare. Peste trei decenii mai târziu, x86
rămâne cea mai populară și de succes arhitectură de seturi de instrucțiuni
comerciale din istoria calculatoarelor personale (PC).
 1979 – În SUA, Jean Ichbiah și echipa de la compania Honeywell International
Inc. – pentru Departamentul Apărării al SUA (US Department of Defense),
dezvolta limbajul de programare Ada.
 1979 – În Olanda și Japonia a fost inventat discul optic (compact disc).
 1979 – În USA a fost lansat programul VisiCalc, software de calcul tabelar.
VisiCalc (visible calculator, „calculator vizibil”), care a fost primul program de
calcul tabelar pentru computerele personale (PC), lansat inițial pentru Apple II de
către compania VisiCorp.
 1979 – În SUA a fost lansat programul WordStar, software-ul de procesare texte.

Alte detalii privind Timeline of computing (surse de referințe și de informare).


 1980 - 1989: https://en.wikipedia.org/wiki/Timeline_of_computing_1980%E2%80%9389
 1990 - 1999: https://en.wikipedia.org/wiki/Timeline_of_computing_1990%E2%80%9399
 2000 - 2009: https://en.wikipedia.org/wiki/Timeline_of_computing_2000%E2%80%9309
 2010 - prezent: https://en.wikipedia.org/wiki/Timeline_of_computing_2010%E2%80%9319
 History of computing hardware - https://en.wikipedia.org/wiki/History_of_computing_hardware
100 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Perioada 2013-20173

Anul 2013
 11 iunie – Apple lansează primele MacBook Pros Retina Display.
 20 septembrie – Apple lansează telefonul mobil iPhone 5S, alimentat de sistemul
Apple A7 pe chip, pe care compania la proclamat a fi primul procesor pe 64 de
biți și care va fi utilizat pe un smartphone.
 5 noiembrie – Sony lansează PlayStation 4 în Statele Unite.
 22 noiembrie – Microsoft lansează Xbox One.
 29 noiembrie – Sony lansează PlayStation 4 în Europa.
Anul 2014
 26 August – Primul hard disk de 8 terabyte este lansat de Seagate. Google
lansează Chrome versiunea pe 64 de biți pentru Windows.
 29 august – Intel a lansat primul său procesor desktop cu 8 nuclee, Intel Core i7-
5960X.
Anul 2015
 29 iulie – compania Microsoft lansează sistemul de operare Windows 10.
Anul 2016
 12 ianuarie – Standardul High Bandwidth Memory 2 este lansat de JEDEC.
 13 ianuarie – Fixstars Solutions lansează primul SSD de 13 TB din lume.
 4 martie – Oamenii de știință de la MIT au creat primul computer cuantic cu cinci
atomi, cu potențialul de a sparge securitatea sistemelor tradiționale de criptare.
 19 august – Compania Samsung lansează Nota Galaxy 7.
Anul 2017
 3 martie – Compania Nintendo lansează consola hibrid de jocuri Nintendo
Switch.

The Computing/Computer Museum

 In U.S.A. (https://www.computerhistory.org/chmhistory/ ) – «The mission of the


Computer History Museum is to preserve and present for posterity the artifacts
and stories of the Information Age. The Museum is dedicated to the preservation
and celebration of computer history and is home to the largest international
collection of computing artifacts in the world, encompassing computer hardware,
software, documentation, ephemera, photographs, oral histories, and moving
images. The Museum brings computer history to life through large-scale exhibits,
an acclaimed speaker series, a dynamic website, docent-led tours and an award-
winning education program».
 In United Kingdom (http://www.tnmoc.org/) – «Mission Statement of The
National Museum of Computing. To bring to life the history and ongoing
development of computing for inspiration, research, learning and enjoyment for
the benefit of general and specialist publics of all ages. In support of this we

3
https://en.wikipedia.org/wiki/Timeline_of_computing_2010%E2%80%9319
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 101

acquire, conserve, restore and reconstruct historic computing machinery for


preservation, display, demonstration and research. Emphasis is on British
computing heritage and on ongoing British contribution to innovation and
development. Our distinctive approach is engagement through the display and
demonstration of working historic systems. We provide context through active
education programmes, festivals, lectures, visitor activities, and interpreted
exhibition and interactivity to raise awareness and inspire future generations of
computer scientists, engineers and inventors».
 In Japan (http://museum.ipsj.or.jp/en/about/index.html) – The IPSJ Computer
Museum – «IPSJ Computer Museum is a virtual museum where you can find
information about historical Japanese computers and the people engaged in the
development of those computers. Half a century has passed since the
development of Japan's first electronic computers, FUJIC and ETL Mark III in
1956. Explanations and photos of computers developed during this period and
related many materials are displayed at this museum. It is said, „If you want to
know what's to come, look into the past.” We are very happy if these historical
materials can give you hints for the future».
 In Germany (https://www.deutsches-museum.de/en/exhibitions/communication/
computers/) – «From mechanical calculating devices to automatic processing of
information: The study of computers relates to the systematic processing of
information, and thus involves highly abstract ideas. However, the exhibition
presents concrete objects from small instruments to the very biggest machines, of
which only parts can be put on display. The many explanatory texts and
demonstrations attempt to bridge this gap between theory and practice. The most
important tool in this field is the computer itself. In addition, a wide range of
mathematical instruments and mechanical calculating machines from the earliest
beginnings of computer technology are presented. All of them serve the purpose
of using existing information to generate more. Many ideas can be seen here that
have become fundamental to today's world of computing and information
science».
 In Russia (http://www.computer-museum.ru/english) – «Our museum was
founded at the very threshold of the 21st century, which was not by coincidence.
Now, with all the described historical events, it is high time we “look back” while
everything is still rather recent. Though a time keeps separating us from the past,
the distance enables us to see its parts as a whole. The founders of the museum
are proud to have engaged several eminent protagonists from Soviet computer
history to provide contributions, most of which are accessible to readers for the
first time. About XXX scientists and engineers have actively participated – and
continue to participate – in our collective work. The idea of our museum was
born ten years ago. It grew from a simple principle – to develop a data bank on
the origins and development of computers and computing, primarily the Soviet
ones, to provide a proper framework and to make it accessible to all. Our motto
was born from the desire to preserve unique materials and to display clearly more
than 50 years of our computing history – its rise and its fall. We have no intention
to make judgements or generalizations. Our claim is quite modest – to be truthful
chronologists. If one questions our personal interest, our answer is simply, „All
this …out of respect of the past and the hope for the future” ».
102 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

First digital computer used, by country (This list is incomplete)

Nick Doiron4

 Afghanistan (1972) – Afghan airline Ariana supported by the company Sherkate Nasaji
Afghan, an IBM 360/30 was bought in 1972.
 Albania (1971) – Considering computers and computer networking, It started in 1971
with creation of the first Center of Mathematical Calculus, firstly as department of
University of Tirana, and latter part of Academy of Sciences. The Center was equipped
with computers of second generation and used for application of mathematical methods in
different areas of human activity.
 Angola (possibly 1965) – The first IBM 1401 data processing system in Angola is
installed by the Army.
 Antarctica (possibly 1971) – 1983: DEC disk-based computer system supplants HP units
which used paper and mag tape.
 Argentina (1961-62) – at the School of Engineering of the University of Buenos Aires,
there was a project, directed by Humberto Ciancaglini, to build a computer, named
CEFIBA (Electronic Computer of the School of Engineering). The computer was built
between 1958 and 19 … the School of Sciences decided to buy a computer. A committee
was formed, whose members were Sadosky, Alberto González Domínguez and Simón
Altman (Altman, who had worked at Oxford University, was the only one that had
experience with computers … the building where the computer would be installed at the
University Campus was under construction, and part of it should be ready when the
computer arrived, that is, in January, 1961.
 Armenia (1964) – The first Nairi (Armenian: Նաիրի) computer was developed and
launched into production in 1964, at the Yerevan Research Institute of Mathematical
Machines (Yerevan, Armenia).
 Australia (1949) – CSIRAC (Council for Scientific and Industrial Research Automatic
Computer), originally known as CSIR Mk 1, was Australia’s first digital computer, and
the fifth stored program computer in the world.
 Austria (1956–58) – Mailüfterl was built from May 1956 to May 1958 at the Vienna
University of Technology by Heinz Zemanek. The first program, computation of the
prime 5 073 548 261, was executed in May 1958.
 Bangladesh (1964) – The first computer in Bangladesh (then East Pakistan) was an IBM
mainframe 1620 series, installed in 1964 at the Dhaka center of the Pakistan Atomic
Energy Commission (later the Bangladesh Atomic Energy Commission).
 Belarus (1959) – From 1959 to 1975, several types of general-purpose computers were
developed in Belarus. These machines had become a basis for the Soviet fleet of
computers, and their large-scale production was organized.
 Belgium (1958) – In 1958 on the Brussels World Exposition [an IBM] RAMAC was
shown. Visitors could give a date using the “manual enquiry station” and the visitor got a
printed paper explained what happened on that date.
 Bhutan (early 1980s) – Though the exact date of entry of the first computer in Bhutan
remains unknown, those having long experience in the Bhutanese bureaucracy claim that
Bhutan started using computers only from early.

4
Nick Doiron, First digital computer, by country, 2016 - https://medium.com/@mapmeld/first-computer-by-
country-81fa47963234
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 103

 Bolivia (before 1969) – The largest computer in Bolivia is an IBM 1440 system… It is
also, at the present time, one of three computers in the whole country, all located in La
Paz. This computer belongs to the Corporacion Minera de Bolivia.
 Brazil (1958) – The National Nuclear Commission and the National Council for Research
and Development.
 Bulgaria (1979) – The IMKO-1 (Bulgarian: Индивидуален микро компютър (ИМКО-
1), Individualen Micro KOmputer, Individual micro computer) was the first Bulgarian
personal computer, built in 1979 in Pravetz, Bulgaria.
 Canada (1952) – Ferut was an ambitious project... it was one of the world’s first
computers, and the first to be exported three thousand miles. The University, Ferranti and
others managed to get the machine working for the 1952 Toronto Computer Conference,
http://ferut.ca/.

Alan Turing standing at the Mark 1 console at the University of Manchester. Seated are Brian Pollard and
Keith Lonsdale. Copyright Univ of Manchester (Brian-Simon Jeffrey, http://ferut.ca/mark-1/)

 Chile (1959–62) – The first digital computer for scientific and engineering applications
was installed in Chile in 1962. It was an ER-56 Standard Elektrik Lorenz (“Lorenzo” by
its Spanish nickname) made in Germany. It was acquired the Faculty of Physical and
Mathematical Sciences of University of Chile.
 China (1958) – In April 1957, by the government, China ordered a M-3 computer and
computer design drawings... Led by Zhang Zichang and Mo Gensheng, M-3 (Code 103)
Computer Engineering Group was organized. Through the efforts of all staff, in close
collaboration with Beijing Cable Plant, China’s first digital computer successfully
developed on August 1, 1958.
 Colombia (1957) – Colombia se metió temprano en la onda de la sistematización con la
llegada del primer computador en 1957.
104 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 Costa Rica (1968) – La primera computadora del país, una IBM 16–20 llamada
“Matilde”, permanece como una pieza de museo en la entrada del Centro de Informática
de la Universidad de Costa Rica … Fue traída en setiembre de 1968.
 Cuba (1958) – Finales de 1958: Se introduce en Cuba la primera computadora electrónica
IBM RAMAC, que se basaba en válvulas y tubos al vacío. En abril de 1970 y luego de
casi dos años de investigación y desarrollo, la Universidad de La Habana, por orden e
iniciativa del presidente y líder cubano Fidel Castro presentó en sociedad la primera
computadora diseñada en la isla, la CID-201.
 Czech Republic (1956) – SAPO in Prague.
 Denmark (1957) – The DASK was the first computer in Denmark. It was commissioned
in 1955, designed and constructed by Regnecentralen, and began operation in September
1957. DASK is an acronym for Dansk Aritmetisk Sekvens Kalkulator or Danish
Arithmetic Sequence Calculator.
 Dominican Republic (1963-64) – Una investigación realizada por Hiddekel Morrison
sobre la historia de la primera computadora en la República Dominicana destaca que fue
una computadora automática universal, mejor conocida como UNIVAC, que llegó al país
a finales de 1963. Morrison dijo que fue instalada en los primeros meses de 1964 en el
Central Romana Corporation.
 Ecuador (1967?) – La primera computadora que llegó al Ecuador es una IBM sistema 3
en 1967 para el Banco del Pacífico, que trajo para instalar y capacitar a los usuarios un
equipo de profesionales extranjeros.
 El Salvador (1962) – La empresa La Constancia, S.A. fue posiblemente la primera en
traer una computadora a El Salvador, según ha quedado registrado. Fue una IBM 1401.
 Estonia (1964) – The first minicomputer called STEM… was designed and built very
early in Estonia — in years 1962–1964 at the Electrotechnical Research Institute in
Tallinn.
 Fiji (1967) – 1967 First computer Fiji WAN for many Govt systems
(Immigration/payroll/etc.).
 Finland (1960) – ESCO computer 1955–1960.
 Germany (1941) – The Z3 was an electromechanical computer designed by Konrad Zuse.
It was the world’s first working programmable, fully automatic digital computer.
 Ghana (1963–64) – The first computer in Ghana was installed in 1963. Kwame Nkrumah
University of Science and Technology in Kusami upgrades its basic IBM 1620 into a full-
capacity system with card processing capability. The first IBM 1401 data processing
system is used by the Ghana Housing Corporation in Accra.
 Greenland (1959) – IBM delivered computers to a site in Greenland in late 1959, but
“IBM-watchers” claimed that the machines, as delivered, were not finished.
 Guatemala (1950–54) – En 1944 con la revolución, se reorganizo la dirección de
estadística y se adquirió por recomendación del ingeniero Arias una computadora IBM
que se uso en el censo de población, vivienda y agricultura de 1950. Despues
adquirienron una IBM 101 electrónica en 1953–1954.
 Honduras (1958–60) – Aquí en Honduras el sistema Hollerit fue introducido por la
Dirección General de Presupuesto siendo Ministro Bueso Arias en 1958 se compró el
sistema Hollerit y en 1960 un sistema IBM1440 con 20Kb de Ram y 200Kb en cada disco
con 6 discos, la oficina de IBM estaba en Comayagüela en 1962.
 Hungary (1959) – The first Hungarian vacuum tube computer, the M3 was built based on
Soviet documentation. The MTA KKCs started the work in 1957 with many young
engineers and mathematicians.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 105

 Iceland (1964) – At the end of World War II, people considered Iceland an
underdeveloped country. The use of IBM punched card systems started in 1949. The first
computers appeared in 1964.
 India (1956) – India bought its first computer in 1956 for a princely sum of Rs 10 lakh. It
was called HEC-2M and was installed at Calcutta’s Indian Statistical Institute.
 Indonesia (1962?) – The first IBM 1401 is installed at the Stanvac Refinery in
Palembang, South Sumatra.
 Ireland (1957) – A BTM (British Tabulating Machines) ITC 1201 purchased by the Irish
Sugar Company and installed at the Company’s factory in Thurles in 1957.
 Israel (1955) – The WEIZAC (Weizmann Automatic Computer) was the first computer
in Israel, and one of the first large-scale, stored-program, electronic computers in the
world.
 Italy (1957) – Elea 9001 (Machine Zero) prototype was made with vacuum tubes, but
used germanium transistors for the tape drive system. The system was completed in
spring 1957 and was later sent toIvrea where for six years it controlled the Olivetti
production warehouses.
 Ivory Coast (1964) – The first IBM 1440 tape system in the country is installed by the
Social Security agency.
 Japan (1954) – In 1954, Fujitsu manufactured Japan’s first computer, the FACOM 100,
and in 1961 launched the transistorized FACOM 222.
 Kenya (mid-1950s) – In the mid-1950s, the BTM company set up shop in Nairobi as the
BTM (EA) Ltd. The original office was on the floor above the Boero car dealership
showroom, directly opposite the Donovan Maule Theatre. Some of the first companies to
place orders for these bulky computers were the East African Railways and Harbours
(EAR&H) and East African Power and Light (EAP&L).
 Latvia (early 1960s) – The first computer in Latvia was created in the newly-established
Institute of Electronics and Computer Science (IECS) at the beginning of 60-ties.
 Lithuania (1957) – Vilniaus skaičiavimo mašinų gamykla was computer and their
component manufacturer (since 1957).
 Malawi (1966) – The first computer procured in Malawi was for the National Statistical
Office to conduct a population census in 1966.
 Malaysia (1965) – The first to use and introduce computer in Malaysia is believed to be
Lembaga Letrik Negara which is today known as Tenaga Nasional (the national
electricity board). It began to use computer in 1965 to process staff salary payment.
 Maldives (1975–1980) – Government’s first computer, a Data General Eclipse
Minicomputer System, was acquired by the MPND. The first computer in the Maldives,
at the National Museum (Data General Eclipse S/120, circa 1975)
 Mexico (1958) – Según el sitio de la Universidad Autónoma de México, la IBM 650
adquirida por esta universidad en 1958 e instalada en la Facultad de Ciencias, es
considerada como la primera computadora de México y de América Latina.
 Mongolia (1973) – Mongolia first started using computers in 1973. The very first
computer brought to Mongolia was the Minsk-32, after that, the IBM-360 and 370 were
imported.
 Morocco (1957) – The first modern computer was introduced in Morocco immediately
after the country acquired its independence in 1957.
 Myanmar / Burma (1972–1973) – A mainframe known as the ICL 1902S, produced by
International Computers Limited. The ICL 1902S was delivered in December 1972 and
moved into the computer room, with its air conditioning and cutting-edge power supply,
to start the installation process. Acceptance trials for the ICL 1902S and the
environmental equipment started on February 25, 1973, and were formally completed on
106 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

March 8, 1973. 1979 Jan, The first computer in Myanmar — IBM PDP-11 mainframe at
Universities Computer Center (UCC).
 Nepal (1972) – The first computer brought in Nepal was IBM 1401 which was brought by
the government in lease for the population census of 1972.
 The Netherlands (1952) – The ARRA (for “Automatische Relais Rekenmachine
Amsterdam”) was the first Dutch computer, and was built from relays for the Dutch
Mathematical Centre… It was designed and built by Carel Scholten and Bram Loopstra,
and was finished in 1952.
 New Zealand (1962) – The Census and Statistics Office acquired its first computer in
1962.
 Nicaragua (before 1984) – IBM is presently the only computer vendor operating in
Nicaragua.
 Nigeria (1962-64) – Compagnie Francaise de l’Afrique Occidentale acquires IBM data
processing (DP) equipment in Lagos. In 1964, the IBM 1401 system became Nigeria’s
first government computer system, speeding payroll preparation, organizing national
education and keeping track of freight cars for the Nigerian Rail Corporation.
 Norway (1953–54) – NUSSE (Norsk Universell Siffermaskin, Sekvensstyrt, Elektronisk)
was the first Norwegian electronic computer. It was constructed from 1950 through 1953
and unveiled at the University of Oslo in April 1954.
 Oman (late 1970s) – The beginning of the ICT industry in Oman technically dates to the
late 1970s and early 1980s.
 Pakistan (1970s) – The first computer in Pakistan, for example, was a 1401 installed at
Pakistan International Airlines.
 Paraguay (1970) – En julio de 1970 llegaba al Paraguay la primera computadora
electrónica, un mes después, en agosto, quedaba inaugurada la primera sala de
computación.
 Peru (1962) – La primera computadora en llegar a una universidad peruana fue la IBM
1620 (Modelo I), y la universidad que tuvo dicha computadora fue laUNI (Universidad
Nacional de Ingeniería).
 Philippines (1960) – 1960: The first computer system in the Philippines — an IBM 650 —
 is installed at the Bureau of Lands to handle the country’s land survey computations.
 Poland (1955) – The first electronic digital computer to be constructed in Poland was the
EMAL (Electronic Machine Automatically Computing), or the EMAL-1, based on the
British EDSAC machine. Work began on the machine in 1953, and reached its most
complete phase in 1955. ODRA computer was a line of computers manufactured in
Wrocław, Poland. The production started in 1959–1960.
 Portugal (1963?) – On instrumental Astronomy, using Applied Mathematics and
Electronics.
 Romania (1957) – CIFA is the acronym for “Calculatorul Institutului de Fizică
Atomică”. CIFA-1, the first Romanian computer, was built in 1957 under the guidance of
Victor Toma.
 Russia / Soviet Union (1952) – BESM-1, originally referred to as simply the BESM or
BESM AN (“BESM Akademii Nauk”, BESM of the Academy of Sciences), was
completed in 1952.
 Saudi Arabia (1947?) – IBM’s presence in the Middle East and Pakistan dates back over
60 years to the installation of the first computer at Saudi Aramco in 1947.
 Senegal (1964) – Banque Senegalaise de Development acquires an IBM 1401 data
processing system in its Dakar headquarters.
 Serbia (1960) – CER-10 Mihajlo Pupin 1960 First computer designed and produced in
SFRY.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 107

 Sierra Leone (1963) – In Sierra Leone the first computer was installed at the Central
Statistics Office in 1963 to process population census data and coordinate all statistical
activities undertaken by the civil service.
 Singapore (1964) – In the government sector, the first computer was installed at the
central provident fund board in 1964. In the same year … Ministry of Finance.
 South Korea (1967) – In 1967, Korea’s Economic Planning Board statistics department
implemented the IBM 1401 system to process data collected during the 1966 Korean
National Census ... [It] was the first computer ever implemented in the Republic of
Korea.
 Spain (1959) – El Museo de las Ciencias Príncipe Felipe de Valencia expone desde este
lunes en la Calle Menor, una zona de libre acceso al público, el primer ordenador que
llegó a España en el año 1959. Se trata del modelo de IBM 650 Magnetic Drum
Calculator.
 Sri Lanka (1967) – The first ever electronic computer in Sri Lanka which was installed at
the State Engineering Corporation, exactly 40 years ago in 1967. IBM World Trade had
been in operation in Sri Lanka since 1962, but for sometime it did not sell any computers.
Instead it offered data processing service. In late 1960s three organisations in Sri Lanka
decided they need computers of their own. State Engineering corporation and Central
Bank of Sri Lanka purchased IBM computers while Petroleum Corporation opted for an
ICL computer. There are unconfirmed reports that a private company (Walkers) used a
computer even before 1967. However this is doubtful. Sir Arthur C. Clarke claims that he
imported the first Personal Computer to Sri Lanka in 1970s.
 Sweden (1953) – BESK (Binär Elektronisk SekvensKalkylator) was Sweden’s first
electronic computer, using vacuum tubes instead of relays. It was developed by
Matematikmaskinnämnden (Swedish Board for Computing Machinery) and for a short
time it was the fastest computer in the world. The computer was completed in 1953 and in
use until 1966.
 Switzerland (1942–45) – The Z4 was the world’s first commercial digital computer,
designed by German engineer Konrad Zuse and built by his company Zuse Apparatebau
between 1942 and 1945.
 Tanzania (1965) – The first computer in Tanzania, an ICT 1500, was installed in the
Ministry of Finance in 1965.
 Thailand (1963) – In 1963 Prof. Bundhit Kantabutra brought the first two computers into
Thailand, marking the dawn of the Thai Information Age.
 Tunisia (1968) – “The first computer was introduced in Tunisia in 1968,” [S. Karoui]
said.
 Turkey (1960) – The first computer came to Turkey in 1960 and it was used in General
Directorate of Highways.
 Uganda (1967) – The first computer ever in Uganda was an unwieldy mainframe, which
arrived in 1967. According to Dr Ham-Mukasa Mulira, an IT expert, Independence
resulted in a rise in government workers so the computer was brought in to help with
management of public servant’s payroll.
 Ukraine (1950) – The first computer in continental Europe was built in Ukraine under the
supervision of the scholar Sergey Lebedev and well-known scientist V.Hlushkov. It
happened in 1950 in Kyiev.
 United Kingdom (1948) – The Manchester Mark 1 was one of the earliest stored-program
computers, developed at the Victoria University of Manchester from the Manchester
Baby (operational in June 1948). It was also called the Manchester Automatic Digital
Machine, or MADM.[1] Work began in August 1948, and the first version was
108 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

operational by April 1949; a program written to search for Mersenne primes ran error-free
for nine hours on the night of 16/17 June 1949.
 United States of America (1944-1951) – The UNIVAC I (UNIVersal Automatic
Computer I) was the first commercial computer produced in the United States. It was
designed principally by J. Presper Eckert and John Mauchly, the inventors of the ENIAC.
Design work was started by their company, Eckert–Mauchly Computer Corporation
(EMCC), and was completed after the company had been acquired by Remington Rand
(which later became part of Sperry, now Unisys). In the years before successor models of
the UNIVAC I appeared, the machine was simply known as "the UNIVAC". EDVAC
(Electronic Discrete Variable Automatic Computer) was one of the earliest electronic
computers. Unlike its predecessor the ENIAC, it was binary rather than decimal, and was
designed to be a stored-program computer. ENIAC inventors John Mauchly and J.
Presper Eckert proposed the EDVAC's construction in August 1944. A contract to build
the new computer was signed in April 1946 with an initial budget of US$100,000.
EDVAC was delivered to the Ballistics Research Laboratory in 1949. The Ballistic
Research Laboratory became a part of the US Army Research Laboratory in 1942.
 Uruguay (1968) – La Udelar difundió un imperdible video de 1968 que cuenta el
“funcionamiento de la computación”, con motivo de la llegada de la primera computadora
al país.
 Venezuela (1957) – Mientras IBM instalaba la primera computadora en aterrizar en
América Latina en 1957, un país revuelto por un plesbicito que aseguraba la permanencia
del dictador Marcos Pérez Jiménez generaba disturbios en universidades y un amplio
rechazo popular. A pesar de esto, el IBM 650 instalado en Venezuela se convertía en un
hito en el continente.
 Zambia (1960) – The first computer to be installed in Zambia was at the Ministry of
Finance in early 1960. This machine was mainly used for accounting purposes.
 Zimbabwe (1962) – Some comments on the achievements and difficulties of the first
year's operation of an I.C.T. 1202 computer in Government work in Salisbury [now
Harare].

Prezicerea viitorului tehnicii de calcul (Computing) 20175

Tabel. Prezicerea viitorului tehnicii de calcul (Computing)

Year, Artificial Year,Transportation & Year,


Year, Computation
Intelligence Lifestyle Communication
1617 – Napier's Bones 1770 – The 1869 – Transcontinental 1876 – The Telephone
(John Napier) Mechanical Turk Railroad (Alexander Graham
1622 – The Slide Rule 1950 – The Turing 1879 – The Light Bulb Bell)
1642 – The Pascaline Test (Alan Turing) (Thomas Edison) 1924 – The Fax
(Blaise Pascal) 1952 – Speech 1903 – High-Speed 1954 – Transistor Radios
1801 – Jacquard's Power Recognition (Bell Trains (Sony)
Loom Labs) 1927 – Television (Philo 1969 – ARPANET
1822 – The Difference 1959 – Computer T. Farnsworth) 1979 – Cellphones
Engine (Charles Babbage) Chess (Arthur Samuel) 1960 – Spacewar (The (Nippon Telephone)
1840 – An Early Program 1966 – AI Robotics PDP-1) 1990 – The Web (The

5
by J. Huang, T. Lin, N. Bakalar, E. Hinton, A. Kueneman, M. Allert and C. Allen - The New York Times).
Source : http://archive.nytimes.com/www.nytimes.com/interactive/2011/12/06/science/20111206-technology-
timeline.html?ref=science
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 109

(Ada Lovelace) (The Stanford 1969 – Navigating the first Web browser)
1890 – The Hollerith Research Institute) Moon (The Apollo) 1993 – Graphical Web
Machine 1981 – Robot Kills 1971 – Computer Games Browsers (Mosaic)
1938 – A Programmable Mechanic (Japan) (Nolan Bushnell) 1993 – Smartphones
Computer (Konrad Zuse) 1986 – The 1978 – GPS (Simon)
1943 – Colossus computer Connection Machine 1980 – The 1995 – Dial-Up Internet
1946 – ENIAC (Thinking Machines) Walkman(Sony) 2003 – Internet
computer(University of 1997 – Deep 1981 – Digital Cameras Telephony (Skype)
Pennsylvania) Blue(I.B.M.) (Sony) 2004 – Social Networks
1951 – UNIVAC I (the 2000 – Emotional 1994 – Driverless Cars (facebook, Mark)
universal automatic Robots (MIT) 1996 – HDTV 2007 – E-Readers
computer) 2004 – Honda's Asimo 1999 – Hybrid Vehicles (Amazon)
1958 – Integrated Circuits (Japan) (Honda) 2010 – The iPad (Apple)
1971 – First 2009 – Autonomous 2001 – The iPod (Apple) 2012 – Online Science
Microprocessor Robotics 2002 – The Segway (by 2026, Scott
1973 – The Personal 2011 – Watson Wins 2010 – Driverless Cars Aaronson predicts)
Computer-PC (Xerox, 'Jeopardy!' (IBM) (Google) 2012 – Electronic Ink
Alto) 2012 – Routine Voice 2012 – Self-Driving 2013 – Holographic
1981 – Computer Viruses Interaction (by 2015, Cars (by 2030, Sebastian Displays
2000 – Google Indexes a Georges Nahon Thrun predicts) 2013 – The Mobile Web
Gigapage predicts) 2012 – Mobile Wallet 2016 – Internet
2010 – China's 2025 – Premade (Kai-Fu Lee predicts) Romance
Supercomputer Decisions (by 2019, 2012 – Brain-Powered 2018 – Ubiquitous
2012 – Genetic Data Georges Nahon Prosthesis Tracking
Storage predicts) 2012 – Predictive Pre- 2022 – 'Halo of Data' (by
2012- Computer on a Chip 2034 – Cybernetic Purchasing 2016, Georges Nahon
(predicts David Patterson) Intelligence 2021 – Practical Robot predicts,
2013 – Universal Medical 2048 – Artificial Cars (by 2018, Larry 2024 – Universal
Database Intelligence Smarr predicts) Translator
2013 – Simulated Animal 2052 – Robot Wars 2023 – Curing Cancer 2026 – Voting by Phone
Tests 2067 – Dr. Computer (by 2020, David 2044 – Full Life
2016 – Quantum 2078 – Cyborg Viruses Patterson predicts) Recording
Computing (by 2025, Scott 2081 – Memory 2025 – No Red Lights 2061 – Collective
Aaronson predicts) Backup 2034 – Everyone Learning
2018 – Persistent 2106 – A.I. Awarded Telecommutes 2065 – Understanding
Computer Memory Citizenship 2035 – Life Out There Animal
2021 – Simulated Actors 2146 – A.I. 2038 – To Mars and the
2021 – Very Cheap Government Moon
Computers 2044 – Automated
2024 – The World is Restaurants
Explored (Google Earth 2044 – Smart Clothing
has mapped the 3D) 2045 – Flying Cars
2030 – Programmable 2069 – Post-Scarcity
Organisms (by 2030, Drew World
Endy predicts) 2070 – Consumer 3D
2054 – Digital 'Life' and Printing
Evolution 2074 – Bicentennial
2103 – WiFi to the Brain Man
2098 – Cash is Outlawed
1.3 Raport al „ACM Curriculum Committee on Computer
Science”, USA, 1968
Acad. Grigore C. Moisil1
Universitatea din București

MOTTO:
„Pentru noi, o carte de matematică modernă va conține întotdeauna și surâsul
lui Moisil. Acel surâs de neuitat, a cărui absență e ca o cicatrice a inteligenței.
Una dintre acele cicatrici de pe chipul încercat al inteligenței care ne aduc
aminte că există oameni pe care iubindu-i, ne scutim de tristețea de a orbecăi la
întâmplare. Dragostea pentru ei ne luminează drumul.”
Octavian Paler, România literară, 15 mai 1981

Notă. Revista AMC,


nr. 13-14, Editura
Tehnică, 1970, articole
scrise de Gr. C. Moisil.
Astăzi, cu certitudine,
aceste scrieri descriu
apariția și evoluția
informaticii în
România:1930-1970.

1
Articol preluat din revista AMC, nr. 13-14, Editura Tehnică, 1970 – traducere din literatura americană
(numere apărute la recomandarea lui Moisil; această revistă din anul 1970 poate fi considerată o „istorie a
știintei calculatoarelor” scrisă de Moisil). Scanare și postare online http://c3.cniv.ro/?q=2018/restituiri.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 111
112 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 113
114 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 115
116 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 117
118 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 119
120 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 121
122 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 123
124 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 125
126 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 127
128 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 129
130 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 131
132 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 133
134 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 135
136 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 137
138 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 139
140 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 141
142 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 143
144 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 145
146 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 147

…………
…………
148 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 149
150 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

…………
…………
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 151
152 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 153
154 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 155
156 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 157
158 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
1.4 Raport „Situația și perspectivele evoluției calculatoarelor”,
Europa, 1966
W. K. de Bruijn1

Raport asupra dezvoltării pieței europene de calculatoare (la nivelul anului 1966) publicat de
Neherlands Automatic Information Processing Research Centre, Stothonderskade 6 – Amsterdam.
Raportul nu cuprinde date referitoare la țările socialiste din Europa, de aceea România nu apare
în raport. Anexa elaborată de Editura Tehnică, completează și permite verificarea estimării
cuprinse în raport asupra dezvoltării calculatoarelor în ultimii ani (Nota ed.).

1
Articol preluat din revista AMC, nr. 13-14, Editura Tehnică, 1970 – traducere din „Neherlands Automatic
Information Processing Research Centre”, Amsterdam, 1966 (numere apărute la recomandarea lui Moisil).
Scanare și postare online http://c3.cniv.ro/?q=2018/restituiri.
160 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 161
162 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 163
164 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 165
166 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 167
168 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 169
170 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 171
172 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 173
174 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 175
176 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 177
178 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 179
180 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 181
182 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 183

Nota ed. În ANEXĂ (mai jos) sunt informații de sinteză din comunicarea E. Block și
R. A. Heule (de la firma IBM, USA) „Dezvoltatea tehnologiei circuitelor electronice și
influențări în echipamentele de calcul”, prezentată la al IV-a Congres IFIP2 (International
Federation for Information Processing – http://www.ifip.org/), defășurat la Edinburgh
(Anglia), în perioada 5-10 august 1968.
Numărul de calculatoare instalate în lume:
 Anul 1967 – 60.000
 Anul 1968 – 75.000
 Anul 1969 – 95.000
Numărul de calculatoare instalate în țările Europei de Vest (Total 15.000, față de
40.100, în USA):
 RFG – 4.150
 Franța – 2.975
 Italia – 1.710
 Olanda – 620
 Belgia-Luxemburg – 560
 Anglia – 3.020
 Norvegia, Suedia, Danemarca – 1.040
 Elveția – 560
 Austria – 210
 Portugalia – 35
 Alte țări– 260

2
IFIP, ca organizație cu un domeniu de activitate dinamic, trebuie să fie „în mișcare” ca fiind relevant și să
fie proactiv și reactiv la mediul extern și la așteptările membrilor noștri – IFIP’s Presidents –
http://www.ifip.org/secretariat/Presidents.htm.
184 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 185
1.5 Arto Salomaa in the History of the Romanian Theoretical
Computer Science
Dragoș Vaida1,
University of Bucharest, Romania

An attempt to write about the illustrious scientist Arto


Salomaa and his scientific personality is in itself a dare. If I took
it on, it was only because it offered the opportunity to make it
known how Professor Arto Salomaa had a founding role for the
school of theoretical computer science in Romania. It is our debt
of honour to recognise and detail this as well as possible. Indeed,
“In the 1990’s Arto created around him a new scientific family –
a Romanian family... a substantial part of the formal language
theory group from Bucharest moved to Turku!” [1]. I was told by
my colleagues of the remarkable influence these contacts had on
them.
Resemblant to some extent to Paris being the formation place of previous
generations of illustrious Romanian university professors such as Spiru Haret, David
Emmanuel, Dimitrie Pompeiu or Miron Nicolescu, Turku constituted, through
Academician Arto Salomaa – Professor of Mathematics at The University of Turku, a
pioneer in theoretical computer science and mathematics, and a man of culture –, the
framework for a remarkable chance to advance the already mature careers of a new
generation of important Romanian theoretical informaticians, such as Academician
Gheorghe Păun, Professor Cristian Calude, and late Professor Alexandru Mateescu [2]. It
should be noted that the moment of this new generation’s full scientific crystallisation
came relatively late in their postdoctoral career, because of the oppressive Romanian
regime from before the awakening in 1989.
Referring to Arto Salomaa’s Formal Languages book [3], classified as a classical
masterpiece and among the 100 most cited books of mathematics, Professor Cristian
Calude writes “The book played an important role in the development of theoretical
computer science in Romania”. Indeed, in this book the author gives an exemplary
presentation of the material, including detailed proofs for all the statements included in
the book. There was a time when a Xerox copy of this chef d’oeuvre was for us a kind of

1
Articol preluat din Juhani Karhumäki, Lila Kari, Hermann Maurer, Gheorghe Paun, Ion Petre, Grzegorz
Rozenberg (Eds.) A Friendly Towering Figure of Theoretical Computer Science. Liber Amicorum: Arto
Salomaa, University of Turku, 2019.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 187

an identification card. As an example, I refer to the lectures and seminars of Professor


Adrian Atanasiu, co-editor together with Cristian Calude of the volume Salodays, 1992 [4].
Around my second year of studies, Grigore C. Moisil asked me to review an
article for his seminar, on the topic, a little unexpected, of single-variable functions with
finite sets as domain and co-domain. As I remember, I was showing that such functions
are generated by a single function through substitutions; note the potential link that
Grigore C. Moisil was seeing with the topic of Professor Salomaa’s thesis, “On the
compositions of functions of several variables ranging over a finite set.”
The pioneering monograph of Professor Solomon Marcus Grammars and finite
automata (1964) was cited by Professor Salomaa in his above mentioned book; see the
double issue 3-4 of volume 131/2014 of Fundamenta Informaticae, editors Cristian
Calude and Marian Gheorghe (Bradford), dedicated to the Romanian school of computer
science.
Arto Salomaa’s active Romanian collaboration started with Lila Sântean-Kari and
Alexandru Mateescu, Gheorghe P˘aun, Cristian Calude, Lucian Ilie, Solomon Marcus and
Ion Petre [5]. The interest in the theory of formal languages continued to develop in
Romania through the work of Professors Dan Simovici, Virgil Căzănescu, Sorin Istrail,
Gheorghe Păun, Cristian Calude, Alexandru Mateescu, Gabriel Orman, Adrian Atanasiu,
Radu Gramatovici, Victor Mitrana and many others [2, 6]. The collaboration with
Gheorghe Păun led to the pioneering book DNA Computing. New Computing Paradigms
[7]. Through these collaborators, Arto Salomaa’s work and most inspiring personality
also had an influence on the education of several generations of students in Romania.

Dinner in Bucharest, 1992. From left to right: Manuela Sidoroff, Arto Salomaa, Virgil Căzănescu, Adrian
Atanasiu, Marian Gheorghe, Gheorghe Păun, Solomon Marcus, Dragoș Vaida
188 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

When he came to Bucharest, in his talk in Room 1 of our Faculty of Mathematics


(today also of Informatics), Professor Salomaa started by showing the audience a page of
a notebook, containing a letter in French, handwritten with a dip pen, received from
Grigore C. Moisil, with a reference to the first scientific talk of Arto Salomaa that
Professor Moisil had listened to. Indeed, the first papers of A. Salomaa were on many-
valued logic. Professor Salomaa introduced that letter with the comment “I am in
Bucharest because of this letter”. We were glad to receive from Prof. Salomaa an article
on multi-valued logic for the Moisil volume [6]; see also [8].
Arto Salomaa also had a manifold influence on and contribution to the group on
Theoretical Computer Science founded by Cristian Calude at the University of Auckland,
see [9]. In 1994 Cristian Calude, Hermann Maurer and Arto Salomaa founded in
Auckland the International Journal of Universal Computer Science; this year the journal
is publishing volume 25. Several publications of Professor Salomaa were the bases of
books published by the University of Bucharest or by the Publishing House of the
Romanian Academy, together with my late colleague, collaborator, and friend Alexandru
Mateescu, see [2]. A publication of Cristian Calude and myself Ehrenfeucht test set
theorem and Hilbert basis theorem: a constructive glimpse (1989) makes use of a constructive
algebraic approach stimulated by the fine proof analysis of Arto Salomaa [10].
Through the collaborations developed with all the scientists mentioned herein,
and with the Romanian PhD students Lila Sˆantean-Kari, Lucian Ilie and Valeria
Mihalache, through the academic relationship with Professors Grigore C. Moisil and
Solomon Marcus, Professor Salomaa occupies a first rank in the history of our school of
theoretical informatics [2]. His publications showed us that informatics puts us into
contact, unavoidably and naturally, with the most interesting chapters of today’s
mathematics, some of them stemming from the Professor himself. On his beautiful
anniversary in June, it is for me a privilege to offer him the warmest wishes of Happy
Birthday.

References
[1] J. Karhumäki, “A short biography of Arto Salomaa”, Theoretical Computer Science, vol. 226, 1999.
[2] S. Cojocaru, G. Păun, and D. Vaida, eds., One Hundred Romanian Authors in Theoretical Computer
Science. Romanian Academy, The Information Science and Technology Section, Romanian Civilization,
supp. 1, București: Editura Academiei Romăne, 2018.
[3] A. Salomaa, Formal Languages. Academic Press, NY, 1973.
[4] A. Atanasiu anâ C. Calude, eds., Salodays in Theoretical Computer Science, Hyperion XXI Press, 1993.
[5] J. Karhumäki, “A survey of Arto’s achievements” in 18th International Conference on Developments in
Language Theory, 2014.
[6] A. Iorgulescu, S. Marcus, S. Rudeanu, and D. Vaida, eds., Grigore C. Moisil și continuatorii săi în
domeniul Informaticii Teoretice / Grigore C. Moisil and his Followers in the Field of Theoretical Computer
Science. Editura Academiei Romˆane, 2007.
[7] G. Păun, G. Rozenberg, and A. Salomaa, DNA Computing. Springer-Verlag, 1998.
[8] A. Salomaa, “On bases of many-valued truth functions,” in Mathematics Almost Everywhere (A. Bellow,
C. S. Calude, and T. Zamfirescu, eds.), pp. 3–16, World Scientific, Singapore, 2018.
[9] A. Salomaa, “Events and languages,” in People and Ideas in Theoretical Computer Science (C. S. Calude,
ed.), pp. 253–273, Springer, 1999.
[10] A. Salomaa, “The Ehrenfeucht conjecture: a proof for language theorists”, Bull. European Assoc.
Theoret. Comput. Sci., pp. 71–82, 1985.
1.6 Apariția și evoluția sistemelor de calcul

Marin Vlada,
Universitatea din București

Generațiile de calculatoare (computer systems)

Definiție. Generațiile de calculatoare (computere) reprezintă o clasificare a


sistemelor de calcul (computer systems) bazată pe tehnologiile (hardware) ce au contribuit
la construirea lor, ordonate după evoluția acestor tehnologii în timp.
Cu fiecare nouă generație, cei 3 parametri (dimensiunea în construire,
memoria/stocarea date/programe și timpul de executie/prelucrare) au definit performanța
și eficiența unui calculator:
 Circuitele / dispozitivele
pentru calculator, mărimea și
componentele au fost
miniaturizate,
 procesarea și viteza s-au
dublat si au crescut continuu,
 memoria s-a mărit continuu,
 gradul de utilizare și
fiabilitate s-a îmbunătățit
continuu.
Perioada de timp specificată pentru fiecare generație este aproximativă și nu este
definitivă. Generațiile se bazează, de fapt, pe o tehnologie în curs de dezvoltare, mai
degrabă, decât pe un anumit interval de timp.
Cele cinci generații de computere sunt caracterizate de curentul electric utilizat la
mecanismele de procesare enumerate mai jos:
1. Prima generație (1940-1959) – cu tuburi electronice vidate (vacuum tubes)
2. A II-a generație (1960-1965) – cu
tranzistori (transistors)
3. A III-a generație (1965-1970) – cu
circuite integrate (integrated circuits)
4. A IV-a generație (1970 - prezent) – cu
microprocesoare (microprocessor
chips)
5. A V-a generație (1980 - prezent) – cu
dispozitive inteligente, capabile de
inteligență artificială (smart devices);
este generatia inteligenței artificiale
190 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

(The Fifth Generation Computer Systems (FGCS) – Japan Project, 1981-1990),


fiind rezultatul proiectului japonez de cercetare pentru noua generație de
calculatoare cu functți noi: prelucrarea cunoștințelor Knowledge Information
Processing System (KIPS),
6. A VI-a generație (1990 – prezent) – o nouă paradigmă în Computing: tehnologii
Web, Molecular Computers – DNA Computing, Membrane computing,
Calculatoare cuantice (Quantum Computers).

Prima generație de calculatoare: 1940 - 1959 (Vacuum Tubes and Plugboards)

Calculatoare caracterizate de:


 Tehnologia de construire (hardware) – tuburi
electronice (vacuum tubes)
 Tehnologia de utilizare (software) – programe în
limbaj mașină (cod binar/octal)
 Produsul – calculatoare electronice de uz
militar/economic/comercial
În afară de mii de rezistențe și condensatori, aceste computere
au folosit până la peste 17.000 de tuburi electronice, ceea ce
înseamnă că instalațiile de calculatoare au acoperit camere întregi. Intrările și ieșirile
(Input/Output) au fost realizate cu ajutorul cartelelor de perforare, a benzilor magnetice,
a mașinilor de scris și a cititoarelor de cartele. Inițial, tehnicienii au perforat manual
cartelele. Ulterior, acest lucru a fost realizat folosind echipamente speciale. Interfața cu
sistemul de calcul a fost realizată folosind plăcuțe (plugboards) și limbajul mașină.
Tehnicienii au conectat circuitele electrice prin numeroase cabluri la prize. Apoi au
introdus cartele perforate specificate și au așteptat ore întregi pentru o anumită formă de
calcul, în timp ce sperau ca fiecare din miile de tuburi electronice să funcționeze corect.

Caracteristici: tuburi electronice (vacuum tubes) folosite pentru circuite; tuburile


electronice se defectau ușor; benzile magnetice utilizate pentru memorie; calculatoarele
au fost uriașe/de volum mare, lente în execuție, scumpe și de multe ori se defectau; erau
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 191

costisitoare privind operarea lor; puterea era foarte slabă, iar circuitele generau căldură
care făcea să funcționeze defectuos; utilizarea de intrări pe baza cartelelor perforate, iar
ieșirile erau afișate pe hârtie cu ajutorul imprimantei; programarea se făcea prin utilizarea
limbajului mașinii binar/octal; avea memorie primară limitată. Aceste sisteme erau de
dimensiuni enorme și ocupau camere întregi, în timp ce utilizau multă energie electrică.
Acest lucru le-a făcut să genereze căldură insuportabilă.
O prezentare de computere de primă generație:
 ENIAC (Electronic Integrator Numeric și
Calculator, 1946), construit în secret pentru
uz militar, unul dintre primele computere
electronice cu comandă prin supapă, digital,
cu program controlat. Dezvoltarea a început
în anul 1943 la Laboratorul de Cercetare
Balistică din SUA, de către John W.
Mauchly și J. Presper Eckert. Acesta a
cântărit 30 de tone și conțineau 18.000 de
supape electronice, consumând în jur de 160
kW de energie electrică. Putea face 5.000 de
calcule de bază pe secundă. A fost folosit
pentru calcularea traiectoriilor balistice și
pentru testarea teoriilor privind bomba cu
hidrogen.
 EDVAC (Electronic Discrete Variable
Automatic Computer, 1949) – În anul 1945, matematicianul american John von
Neumann a redactat un raport care descriea conceptul viitorul computer modern,
construit în cele din urmă ca EDVAC. Primul proiect al unui raport privind
EDVAC include prima descriere publicată a proiectării unui calculator de
programe stocate (stored-program computer), care a dat naștere arhitecturii John
von Neumann. A influențat direct sau indirect aproape toate proiectele ulterioare,
în special EDSAC. Echipa de proiectare a inclus pe John W. Mauchly și pe J.
Presper Eckert; Calculatorul EDVAC a fost livrat Laboratorului de cercetare
balistică (SUA) în anul 1949. După ce au fost descoperite și rezolvate mai multe
probleme, calculatorul a început să funcționeze în anul 1951, deși numai pe o
bază limitată.
 EDSAC (The Electronic Delay
Storage Automatic Calculator,
1949) – Calculator britanic
inspirat de primul proiect de
raport al lui John von Neumann
despre calculatorul EDVAC,
mașina a fost construită de
Maurice Wilkes și echipa sa de
la Laboratorul matematic de la
Universitatea din Cambridge din
Anglia (University of
Cambridge Mathematical
192 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Laboratory). EDSAC a fost cel de-al doilea computer digital cu program


electronic stocat pentru a intra în serviciu regulat. Mai târziu, proiectul a fost
susținut de firma J. Lyons & Co. Ltd., o firmă britanică, care a fost recompensată
cu primul calculator cu aplicație comercială, LEO I, bazat pe designul EDSAC.
Lucrările pe EDSAC au început în 1947 și au început primele sale programe la 6
mai 1949, când a calculat un tabel cu numere pătrate și o listă cu numere prime.
EDSAC 1 a fost închis în cele din urmă la 11 iulie 1958, fiind înlocuit de EDSAC
2, care a rămas în uz până în anul 1965.
 UNIVAC I (Universal Automatic Computer, Computerul Automat Universal,
1951) – Conceput și construit de către inginerii John W. Mauchly și J. Presper
Eckert, a fost primul din aceeași categorie conceput pentru alte utilizări decât cele
militare. A manipulat atât alfabetul, cât și numerele destul de bine și a fost folosit
de Biroul de recensământ al SUA pentru a prelucra/enumera datele pentru
populația generală. Acesta a fost folosit mai târziu pentru a prelucra/manipula
salarizarea, înregistrările, vânzările companiei și chiar a prezis rezultatele
alegerilor prezidențiale în anul 1952. Spre deosebire de cele peste 17.000 de
tuburi vidate din ENIAC, UNIVAC I a folosit aproximativ 5000 de tuburi
electronice vidate. Ca volum, a fost jumătate din dimensiunea predecesorului său
și s-au vândut peste 46 de produse.

Mercury delay line memory of UNIVAC I


ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 193

Caracteristicile de bază ale unora dintre primele calculatoare electronice


Data
Sistem de Mecanism Turing
Nume punerii în Programare
numerație de calcul complet
funcțiune
Zuse Z3 Electro- Programabil prin film Da
mai 1941 Binar
(Germania) mecanic perforat (1998)
Calculatorul
Atanasoff–Berry 1942 Binar Electronic Neprogramabil Nu
(SUA)
Colossus Mark 1 februarie Programabil cu cabluri și
Binar Electronic Nu
(Regatul Unit) 1944 comutatoare
Programabil prin bandă
Harvard Mark I – Electro- perforată cu 24 de canale
mai 1944 Zecimal Nu
IBM ASCC (SUA) mecanic (fără instrucțiune de
ramificare)
Colossus Mark 2 Programabil cu cabluri și
iunie 1944 Binar Electronic Nu
(Regatul Unit) comutatoare
Programabil prin cabluri și
ENIAC (SUA) iulie 1946 Zecimal Electronic Da
comutatoare
Manchester Small-
Scale Cu program stocat în
Experimental iunie 1948 Binar Electronic memorie cu tuburi catodice Da
Machine (Regatul Williams
Unit)
Programabil prin cabluri și
comutatoare, plus un
ENIAC modificat septembrie mecanism de programare
Zecimal Electronic Da
(SUA) 1948 primitiv, cu memorie ROM
în care erau ținute tabele de
funcții
Program stocat în memorie
EDSAC (Regatul
mai 1949 Binar Electronic bazată pe linii de întârziere Da
Unit)
cu mercur
Program stocat în memorii
Manchester Mark octombrie
Binar Electronic cu tuburi catodice Williams Da
1 (Regatul Unit) 1949
și cu tambur magnetic
Program stocat în memorii
CSIRAC noiembrie
Binar Electronic bazate pe linii de întârziere Da
(Australia) 1949
cu mercur
194 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

A II-a generație de calculatoare: 1960 -1965 (Transistors and Batch Filing)

Calculatoare caracterizate de:


 Tehnologia de construire (hardware)
– tranzistoare (transistors) și
primele circuite integrate (SSI)
 Tehnologia de utilizare (software)
– programe în limbaj simbolic sau
universal (limbaje de nivel înalt) și
primele sisteme de operare pe bandă
(TOS)
 Produsul – calculatoare electronice
mai ieftine și miniaturizate uz
militar/ economic/comercial

Aceste computere au utilizat tranzistori (Semiconductori, Transistors) în locul


tuburilor de vid (vacuum tubes) utilizate la calculatoarele din generația I. Tranzistorii erau
mai fiabili, eficienți din punct de vedere energetic și capabili să conducă electricitatea mai
repede și mai bine, de dimensiuni mai mici, cu viteză mai mare și costuri mai ieftine.
Semiconductorii (Transistors) au fost inventați la Bell Laboratories, în anul 1947,
de către oamenii de știință William Shockley, John Bardeen și Walter Brattain, dar nu s-
au utilizat decât la mijlocul anilor '50. Calculatoarele construite cu aceste tranzistoare au
înregistrat progrese în procedurile de introducere și de ieșire a datelor (Input/Output).
Inițial, aceste proceduri au fost similare cu cele din ultimele modele de computere
de primă generație. Acestea erau laborioase, deoarece implicau mai mulți oameni care
utilizau carte perforate, ce urmau a fi citite de calculator. Pentru a accelera procesul de
prelucrare, a fost conceput și implementat sistemul pentru seturile de date. Acesta
presupunea colectarea mai multor seturi de date în mai multe cartele perforate și stocarea
lor în benzi magnetice unice folosind un sistem destul de mic și ieftin. Calculatorul IBM-
1401 a fost un astfel de calculator. Procesarea a fost făcută folosind un sistem mai
puternic, cum ar fi sistemul realizat pe calculatorul IBM 7094. Atunci când manipularea
datelor a fost finalizată, fișierele erau transferate înapoi pe o bandă magnetică. Pentru a
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 195

face acest lucru eficient, a fost utilizat sistemul de operare IBM pentru sistemul IBM-
7094 și Fortran Monitor System. Acestea au fost precursorii sistemelor de operare
viitoare. Folosind din nou un sistem de calcul mai mic, de exemplu calculatorul
IBM-1401, datele au fost tipărite pe mai multe seturi de cartele perforate.

Cartela de perforare (9 linii x 80 coloane) – codificarea unei instructiuni din limbaj

IBM 1401 computer with one circuit card access drawer opened, on display
at the Computer History Museum

Au fost preocupări pentru dezvoltarea de sisteme de operare și alte aplicații


comerciale. Acest lucru s-a datorat eliminării restrictive generat de codul mașină
binar/octal și de dezvoltarea de limbaje de programare, care au suportat în întregime
codificarea simbolică și alfanumerică. În anul 1964, programatorii au inceput să dezvolte
programe în limbaj de asamblare și în limbaje de nivel înalt: FORTRAN, COBOL,
SNOWBALL și BASIC.
196 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Operator's console for IBM 7094 at the Computer History Museum

Caracteristici: construite cu tranzistoare, mai rapide și mai fiabile decât sistemele


de prima generație; erau mai mici, mai ieftine și mai rapide, dar circuitele generau multă
căldură; pentru intrare/ieșire se bazau pe cartelele perforate și pe materialele tipărite;
permiteau limbajul de asamblare și limbajele de programare de nivel înalt; Datele stocate
în medii magnetice, încă erau costisitoare și necesita aer condiționat pentru răcire; utiliza
limbaj de instalare și software de operare.
Calculatoare mainframe și supercomputere construite cu tranzistori:
 UNIVAC LARC de la Sperry Rand (1960);
 Supercomputerul IBM-7030 Stretch (1961);
 CDC 6600 mainframe (1963);
 IBM-7000 Seria CDC 3000;
 UNIVAC 1107; IBM-7094;
 MARK III;
 Honeywell 400.

A III-a generație de calculatoare: 1965-1970


(Integrated Circuits and Multi-Programming)

Calculatoare caracterizate de:


 Tehnologia de construire (hardware) – circuite integrate pe scară medie și largă
 Tehnologia de utilizare (software) – programe în limbaje de programare
universale (limbaje de nivel înalt) și sisteme de operare pe disc (DOS); separarea
software de harware (unbunding
policy).
 Produsul – minicalculatoare și
microcalculatoare electronice de
uz militar / economic / comercial;
sisteme time-sharing.
Calculatoarele din această generație au
folosit microcipul de circuit integrat (the
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 197

integrated circuit, IC) în loc de tranzistori. Un microcip de circuit integrat împacheta un


număr imens de tranzistoare, condensatoare, diode și redresoare pe o placă de germaniu
sau siliciu. Acestea au fost imprimate pe părți separate ale unei plăci de circuite integrate.
Cnstruirea si implementarea acestor computere a fost în concordanță cu Legea lui Moore
(1965), care a observat că dimensiunea tranzistorului se micșora atât de repede, încât
putea încorpora în noile microcipuri, un număr dublu, la fiecare doi ani, timp de 10 ani.
El a reglat această creștere exponențială după zece ani, la fiecare cinci ani, în 1975.
Tehnologia Integrated circuit on microchip (IC) a căutat să rezolve procedurile
greoaie ce au avut loc în proiectarea circuitelor cu tranzistori. Interconectarea manuală a
condensatoarelor, a diodelor și a redresoarelor în tranzistori, a consumat mult timp și nu a
fost complet sigură. Jack Kilby de la Texas Instruments și Robert Noyce de la Fairchild
Corporation au descoperit separat beneficiile circuitelor integrate în anul 1958 și,
respectiv, 1959. Kilby și-a construit un IC pe germaniu, în timp ce Noyce a construit unul
pe un cip de silicon. Primele sisteme de utilizare a tehnologiei IC au fost la calculatorul
IBM 360, dezvoltat atât pentru probleme comerciale, cât și pentru probleme științifice și
tehnice.

Jack Kilby's IC chip

După plasarea mai multor tranzistori pe un singur cip s-au redus costurile de
fabricatie, viteza și performanța oricărui computer au crescut foarte mult. Astăzi, aproape
toate dispozitivele electronice utilizează o formă de circuite integrate plasate pe plăci cu
circuite imprimate. Interacțiunea cu calculatoarele s-a îmbunătățit: cartelelor perforate au
fost înlocuite cu tastaturi și periferice de intrare/iesire, folosite pentru a introduce date
sau afișare la ieșire, prin intermediul unităților de afișare vizuală. Acum, computerele
folosesc sistemul de operare (software, SO) pentru a gestiona hardware-ul și resursele
calculatorului. Acest lucru a permis sistemelor să ruleze diferite aplicații la un moment
dat, prin intermediul aplicațiilor ce aveau nevoie de organizarea si distribuirea memoriei
în timpul execuției. Computerele au devenit accesibile publicului larg din cauza
dimensiunilor și costurilor corecte. De asemenea, această generație a inaugurat conceptul
de „familie de computere”, care a provocat producătorii să vină cu componente de
calculator compatibile cu alte sisteme.
198 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Caracteristici: utilizarea de circuite integrate pe scară medie și largă (IC);


procesare paralelă; mai ușoare, mai mici, mai ieftine, mai rapide; utilizarea plăcilor de
bază (motherboards); datele introduse utilizând tastaturile (keyboards); rezultatele
vizualizate pe monitoare (monitors); utilizarea de sisteme de operare care permiteau
multitasking; utilizarea de limbaje de programare simplificate (ex. limbajul BASIC).
Următoarea generație de mainframe și supercomputere a profitat de circuitele
integrate (IC):
 Sistemele Science Data Systems Sigma 7 (1966);
 Sitemul de calcul IBM-360 (1964);
 Supercomputerele CDC 8600 (1969);
 Mini-calculatorul, procesorul de date personal (DEC – PDP-1, 1969, PDP-6,
1964, PDP-11, pe 16-biti, VAX, 32-biti, 1970);
 IBM-370 (1970).

IBM 360 și IBM 370 (Mainframe in the German Museum)

CDC 8600, Reference Manual at bitsavers.org, DEC - PDP-11 minicomputer, 1970


1972
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 199

A IV-a generație de calculatoare: 1970 - prezent (The Microprocessor, OS and GUI)

Calculatoare caracterizate de:


 Tehnologia de construire
(hardware) – microprocesoare,
circuite integrate pe scară largă și
foarte largă (LSI, VLSI).
 Tehnologia de utilizare (software)
– medii de programe evoluate,
sisteme de operare mono și
multiuser, software de integrare în
rețele de calculatoare.
 Produsul – calculatoare electronice personale (PC), stații de lucru (WS), rețele de
calculatoare locale (LAN) și de arie largă (WAN)

Inventarea microprocesorului a avut un


impact revoluționar în construirea
calculatoarele. A apărut microcalculatorul,
dar și o diversitate de dispozitive I/O.
Această dezvoltare a fost în conformitate
cu legea lui Moore, care a prevăzut o
creștere exponențială a tranzistorului și a
microcipurilor, începând cu anul 1965.
Această generație are un rol esențial în
introducerea diverselor dispozitive
echipamente electronice construite cu
microprocesor. A doua generație de
calculatoare a început în anul 1971, prin invenția inginerilor de la compania Intel, Ted
Hoff, Federico Faggin și Stan Mazor. În noiembrie 1971, aceștia au introdus primul
microprocesor, Intel 4004. Acesta avea 2300 de tranzistori și măsura 1/8"x1/16". Noul
microprocesor era la fel de puternic ca și computerul ENIAC din anul 1946. De
asemenea, acesta combina majoritatea funcțiilor pentru un calculator: unitatea centrală de
procesare (UCP), memoria (memory), unitatea aritmetică logică (Arithmetic Logic Unit,
ALU), controlul intrărilor și ieșirilor (Input/Output). Microprocesorul Intel C4004 a
inițiat cea de-a patra generație de computere.

În anul 1973, computerul Xerox Alto de la PARC a fost construit fără publicitate.
A fost un adevărat calculator personal (PC) și avea un port Ethernet, un mouse și o
interfață grafică bitmap, prima de acest fel din lume. Calculatorul fost alimentat de un cip
de 16 biți TI SN74S181N ALU de la Texas Instruments. Compania Apple a construit
computere Apple inspirate de calculatorul Xerox Alto de la PARC, dar a fost contestat de
Xerox Alto. La începutul anului 1974, când Intel a venit cu un microprocesor 8808 de 8
biți cu scop general, Gary Kildall-de la Digital Research, a fost solicitat pentru a scrie un
sistem de operare pentru noul computer. Acest lucru a condus la un sistem de operare
bazat pe disc, cunoscut sub numele de program de control pentru microcomputere
(Control Program for Microcomputers, CPM).
200 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

The original IBM PC in 1981

 În anul 1981, compania International Business Machine (IBM) a introdus primul


său calculator personal (PC) cu microprocesorul 4004. Compania IBM a
colaborat cu Bill Gates de la care a cumpărat Sistemul de operare pe disc (DOS),
de la firma Computer Products din Seattle (USA). S-a început distribuirea noului
computer IBM de tip PC ce a devenit arhitectura de bază pentru calculatoarele PC
construite de alți producători.

The Cray-1 supercomputer of 1975


ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 201

În anul 1984, sub coordonarea lui Steve Jobs, compania Apple a schimbat paradigma
pentru software, când a lansat computerul Apple Macintosh cu o interfață grafică
îmbunătățită (GUI, Graphical User Interface), folosind ideea de interfață învățată de la
Xerox PARC. De remarcat, este faptul ca sistemul de operare CPM (programul de control
pentru microcomputere), cât și sistemul de operare DOS (sistem de operare pe disc) au
fost sisteme de operare bazate pe linii de comandă, pe care utilizatorul le introducea
folosind tastatura.
202 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

The Apple Macintosh of 1984

Ca urmare a succesului GUI de la Apple, Microsoft a integrat o versiune shell a


Windows în versiunea DOS din anul 1985. Sistemul Windows a folosit această soluție pentru
următorii 10 ani, până când s-a lansat ca sistem de operare, Windows 95, în anul 1995.

Mother Board

În timp ce corporațiile au început să perceapă bani pentru software și acest lucru


a devenit obișnuit, în anul 1991 s-a format o nouă atitudine/mișcare de programatori
pentru a începe elaborarea sistemului de operare Linux, inițiată de Linus Torvalds.
Această comunitate de programatori a realizat – ca pionierat – un proiect gratuit de sistem
de operare Open Source numit Linux (the GNU Project, 1991). Pe lângă Linux, alte
sisteme Open Source și software liber gratuite au fost distribuite pentru a fi utilizate la
birouri, la rețele de calculatoare și la computere PC: Ubuntu OS; Mozilla Firefox browser;
Open Office; MySQL; VLC media player etc.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 203

Ubuntu running MS Windows 3.11 under VBox

În perioada 1980-2000, au devenit obișnuite computerele personale (PC) și


desktop-urile, deoarece au devenit mai ieftine și au fost instalate în birouri, școli și acasă.
Sistemele software instalate pe aceste computere au devenit disponibile cu costuri mici
sau gratuite. Exemple de calculatoare personale: Desktops; All-in-one; Laptops;
Workstations; Nettops; Tablets; Smartphones.

A desktop computer A kid using an iPad tablet

Pe parcurs, microprocesoarele au ieșit din rezervarea doar pentru computere


desktop sau platforme pentru companii și PC pentru acasă. Au crescut vânzările la laptop,
tabletă și smartphone, console, sisteme încorporate, carduri inteligente, toate acestea
devenind populare din nevoia de a utiliza Internetul în timp ce oamenii se deplasează.
Proliferarea dispozitivelor mobile de calcul a dus la dominarea desktop-urilor. Potrivit
ComScore, în publicația „Ierarhia Mobile a Nevoilor” (Mobile’s Hierarchy of Needs), din
martie 2017, telefoanele mobile au reprezentat 60% din toate minutele digitale utilizate în
întreaga lume.
204 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Evoluția procesoarelor INTEL,


https://en.wikipedia.org/wiki/List_of_Intel_microprocessors

Evoluția capacității în biți a memorie26

26
https://en.wikipedia.org/wiki/List_of_Intel_microprocessors,
https://www.slideshare.net/ArshadQureshi5/generation-of-computer-processors-52195241
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 205

Generația Tipuri microprocesoare Produsul

4004 94 biti, 8008, 8080


(8 biti)
Generația I –
8086, 8088 (anul 1979)
4, 8, 16 biți
80186, 80188 (anul 1982)
8087 (coprocesor, math chip) (anul 1983)

Generația II – 80286 (anul 1982), 80287 (coprocesor,


16, 24 biți math chip)

80386 (anul 1985)


Generația III 386DX (anul 1985)
– 32 biti 386SX (AMD, Cyrix) (1988)
386SL (anul 1990)

80486 (anul 1989)


486DX (anul 1991)
Generația IV
486SX (AMD, Cyrix) (1992)
– 32 biți
486SL (anul 1992)
Utilizare GUI
80586 – Pentium (anul 1995) – Complex
instruction set computer (CISC)
Generația V –
Pentium MMX (1997)
64 biți
AMD K5

80686 – Pentium II (anul 1997) – RISC


microinstructions
Generația VI Celeron, Xeon (1998)
– 64 biți Pentium III
AMD K6, Athon

80786 – Pentium IV (anul 2001) – RISC


microinstructions
Generația VII
Celeron M, Tualatin (2003)
– 64 biți
AMD K7, Athon (2003)

80886 – Pentium V (anul 2003)


Itanium (2003)
Generația
Intel Core (2006)
VIII – 64 biți
Xeon (2006)
AMD K8, Athon 64 (2004)
206 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Multi -Touch Technology

A V-a generație de calculatoare: 1980 - prezent (Smart devices and Artificial


intelligence)

 Hardware – tehnici evoluate de împachetare şi interconectare, ULSI, proiectare


circuite integrate 3D, tehnologii Ga‑AS şi Josephson, componente optice,
arhitecturi paralele pentru prelucrarea inferențelor, rețele neuronale.
 Software – sisteme de operare cu interfață evoluată cu utilizatorul, limbaje
concurente, programare funcțională, prelucrare simbolică (limbaje naturale,
recunoaşterea formelor: imagini/voce), Prolog,
baze de cunoştințe, sisteme expert evoluate, CAD,
CAM, CAE, multimedia, realitate virtuală,
tehnologii web
Deceniul 8 al secolului XX-lea a fost unul al marilor
succese în domeniul Inteligenţei artificiale, al dezvoltării
reţelelor de calculatoare şi al răspândirii limbajelor de
programare moderne. Aceasta generație de calculatoare s-a
dezvoltat prin așa-numitul proiect japonez „The Fifth
Generation Computer Systems [Present and Future]”
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 207

(FGCS). Lansarea Proiectului japonez, în anul 1982, pentru construirea calculatorului de


generaţia a V-a la începutul anilor ’90, prevedea o revoluţie în domeniul calculatoarelor
prin aşa-numitele sisteme de procesare a informaţiei de cunoaştere (KIPS-Knowledge
Information Processing Systems). Proiectul avea finanţare guvernamentală de 1 miliard $
şi colaborarea mai multor firme japoneze importante. Ca urmare, s-a înfiinţat un institut
special ICOT (Institute for New Generation Computer Technology) care a editat revista
internaţională „New Generation Computing” (www.ohmsha.co.jp/ngc), astăzi fiind una
dintre cele mai prestigioase reviste din lume. Proiectul a avut un impact deosebit pe plan
mondial, deoarece cu acea ocazie s-a decis să se utilizeze limbajul de programare logică
Prolog. Imediat, după anul 1985, în România a început să se predea Inteligenţa Artificială
ca disciplină a Informaticii în învăţământul superior.
 Cea de-a V-a generație de calculatoare s-a construită prin progresul tehnologic
câștigat în generațiile anterioare de computere. Implementarea proiectului
japonez spera să îmbunătățească interacțiunea omului cu mașinile de calcul prin
valorificarea inteligenței umane și prin valorificarea rezultatelor deosebite în
Computing, care s-au acumulat de la începutul erei digitale.
 S-a avut în vedere viitorul Computing (computation of the future), progrese în
teoria calculului, conceptul și implementarea inteligenței artificiale (AI) și a
învățării automate (machine learning, ML). AI și ML nu pot fi aceleași, dar sunt
folosite pentru a reprezenta o știința pentru dispozitive care să fie suficient de
inteligente pentru a interacționa cu oamenii, cu alte computere, cu mediu și alte
programe, cu înțelegera seturilor mari de date (mining big data) pentru a atinge
obiectivele stabilite în rezolvarea problemelor.
 Dezvoltarea și utilizarea dispozitivelor computerizate, cu posibilitatea ca acestea
să poată să învețe, să răspundă și să interacționeze în moduri normale și probabil
diferite, bazate pe experiența dobândită și pe mediu. Aceste preocupari au dat un
impuls conceptului de Internet al obiectelor (Internet of Things, IoT) de astăzi.

A VI-a generație de calculatoare: 1990 - prezent

Continua diversificare și performanța sistemelor de calcul (computer system) a


avut în vedere informatizarea și virtualizarea domeniilor de activitate ale omului. După
anul 1990, au apărut conectarea la Internet și tehnologiile Web. Ceea ce a fost necesar
pentru a transforma o rețea de computere în ceva mai mult, a fost ideea de hyperlink:
codul unui document stocat pe un computer a determina ca documentele aferente să fie
preluate și afișate (dezvoltarea limbajului HTML – Hypertext Markup Language și
aparitia programelor de tip browser).
Conceptul de hiperlink a fost anticipat la mijlocul deceniului al secolului XX – în
Belgia, de Paul Otlet și în Statele Unite de Ted Nelson, Vannevar Bush și, într-o oarecare
măsură, de Douglas Engelbart. Dorința lor pentru un fel de sistem de a lega cunoștințele
împreună nu s-a materializat până în 1990, când Tim Berners-Lee din Anglia de la CERN
(Organizația Europeană pentru Cercetare Nucleară) a elaborat un protocol bazat pe
hipertext pentru a facilita distribuirea informațiilor într-o rețea de calculatoare. În anul
1991, acest lucru a culminat cu crearea World Wide Web (WWW) și a sistemului său de
legături între paginile create de utilizatori. O echipă de programatori de la Centrul
Național de Aplicații Supercomputing din SUA, Urbana, Illinois, a dezvoltat un program
208 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

numit browser care a facilitat utilizarea World Wide Web și a fost fondată o companie
pentru tehnologie spin-off numită Netscape Communications Corp. Au urmat apariția și
dezvoltarea domeniilor: motoare de cautare, computer vision și realitate virtuală, e-
commerce, e-Learning și software educațional, social networking etc.

După anul 1995 a avut loc o schimbare


de paradigmă în domeniul de Computing prin
cercetări și rezultate speciale:
 Calculatoare moleculare (Molecular
Computers, DNA Computing, inventator
Leonard Adleman – 2002 Turing Award) și
Membrane computing. Proiectul de calcul
molecular (Molecular Computation
Project, MCP) este o încercare de
valorificare a puterii computaționale a
moleculelor pentru prelucrarea informației. Cu alte cuvinte, este vorba de o
încercare de a dezvolta un computer general cu molecule. Ideea computerizării cu
molecule a fost realizată în anul 1994, când americanul L. Adleman a publicat o
cercetare pentru realizarea unui calculator de uz general cu molecule biologice
(ADN). De atunci, cuvântul „calculul ADN” (DNA computation) a devenit larg
răspândit în sensul calculului cu moleculele ADN. Calcul de membrane
(Membrane computing, MC) este o zonă în domeniul informaticii care caută să
descopere noi modele computaționale din studiul celulelor biologice, în special a
membranelor celulare. Este o activitate pentru a crea un model celular.
Computerele cu membrane se ocupă de modelele computerizate distribuite și
paralele, procesând mai multe seturi de obiecte și simboluri într-un mod localizat.
Astfel, regulile de evoluție permit ca obiectele în evoluție să fie încapsulate în
compartimente definite de membrane. Comunicările între compartimente și mediul
joacă un rol esențial în aceste procese. Diferitele tipuri de sisteme membranare sunt
cunoscute ca sisteme P (P systems)
după ce a fost conceput modelul de
acad. Gheorghe Păun, în anul 1998
(Păun, Gheorghe, "Introduction to
Membrane Computing")27
 Calculatoare cuantice (Quantum
Computers, Peter Shor –
Massachusetts Institute of Technology
(MIT), 1994). În câţiva ani,
calculatoarele noi (Quantum
Computer")28 de la IBM, Google şi
Microsoft vor accelera descoperirile
din domeniile chimiei, medicinei şi Suyama's DNA computer,
ştiinţei materialelor. Calculatoarele http://hagi.is.s.u-tokyo.ac.jp/MCP/

27
http://psystems.disco.unimib.it/download/MembIntro2004.pdf
28
http://www.nextbigfuture.com/2017/03/in-few-years-new-quantum-computers-from.html
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 209

cuantice vor fi mai puternice decât calculatoarele convenţionale, pentru probleme


de rutare eficientă, pentru logistică, pentru companiile de cartografiere, noi forme
de învăţare automată, inventarea de noi produse, teste de diagnosticare
îmbunătăţite. Primele calculatoare cuantice universale vor fi utilizate în chimie
pentru simularea de molecule şi reacţii. Simulând efectele cuantice care modelează
structurile şi reacţiile moleculare, aceasta este o problemă naturală pentru aceste
calculatoare, deoarece puterea lor vine de la datele de codificare în aceleaşi stări
cuantice dificile. Componentele care alcătuiesc computerele cuantice, cunoscute
sub numele de qubiţi, pot utiliza procese cuantice mecanice pentru a executa
comenzi rapide de calcul imposibile pentru o maşină convenţională. Recent, la 4
martie 2016, oamenii de știință de la Massachusetts Institute of Technology (MIT)
au creat primul computer cuantic cu cinci atomi, cu potențialul de a sparge
securitatea sistemelor tradiționale de criptare.
Prin elaborarea de algoritmi potriviți și
performati, probabil, computerele vor arata și
vor procesa niveluri destul de înalte de învățare
profundă, pe care și oamenii le realizează.
Multe proiecte de AI sunt deja implementate, în
timp ce altele sunt încă în stadii de dezvoltare.
Pionierii în accelerarea acestor proiecte de
dezvoltare și de cercetare sunt: Google,
Amazon, Microsoft, Apple, Facebook și Tesla.
Implementările inițiale sunt acum văzute și
operaționale și pe dispozitivele inteligente de
acasă (home), care sunt destinate să
automatizeze și să integreze activitățile din casă
prin dispozitive audio / vizuale și autovehicule
care sunt în exploatare. În imagine: Coral (red) version of the Google Home Mini smart
speaker.
Obiectivele mari în domeniul AI pentru diverse dispozitive inteligente:
 Understand natural language
 Recognize human speech
 See the world in three-dimensional perspective
 Play interactive games
 Implement expert input in medical and other complex fields
 Exercise heuristic classification analysis
 Implement neural networks
 Quantum computing
 Parallel processing

Proiecte AI în curs de desfășurare:


 asistenți personali virtuali (Virtual personal assistants) – companii Siri, Google
Now și Braina;
 mașini inteligente (Smart cars) – Mașinile autopilot Tesla și autovehiculele
Google;
210 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 Instrumentele de generare de știri – Wordsmith de la Yahoo și Fox, pentru a


genera fragmente de știri;
 Diagnostic asistat de calculator pentru detectarea cancerului (Computer Aided
Diagnosis for detection of cancer).

Proiectul genomului uman (Human Genome Project, HGP), 1995 - 2005

Proiectul genomului uman (Human Genome Project, HGP) a fost un program


internațional de cercetare colaborativă al cărui scop a fost reprezentarea completă a
cartografierii și înțelegerii tuturor genelor ființelor umane. Toate genele noastre sunt
cunoscute ca „genomul uman” (genome, The Human Genome Project)29.

The Sequence of the Human Genome, Science, vol 291, pp.1145-1434, 2001
http://cs. brown.edu/~sorin/pdfs/venter2.pdf
(printre autori românii: Sorin Istrail și Liliana Florea)

29
https://www.genome.gov/12011238/an-overview-of-the-human-genome-project/. Aprilie 2003 - 50 Years
of DNA Celebration, https://www.genome.gov/10005139/50-years-of-dna-celebration/.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 211

Robotul Sophia, cel mai popular robot umanoid din lume

La 11 mai 2018, robotul


umanoid Sophia (by Hong Kong) a
venit pentru prima dată în România,
în cadrul conferinței Brand Minds –
https://en.wikipedia.org/wiki/Sophia_(
robot). Robotul Sophia este dezvoltat
prin utilizerea inteligenței artificiale,
prelucrarea datelor vizuale și
recunoașterea facială. În octombrie
2017, Sophia, robotul a devenit
primul robot care a primit cetățenia
oricărei țări. În noiembrie 2017,
Sophia30 a fost numită primul
campion inovator al Programului de
Dezvoltare al Națiunilor Unite și primul non-om care va urma să primească titlu al
Organizației Națiunilor Unite.

Andreea Esca: Ce ai tu şi mie îmi lipseşte?


Sophia: „Eu am servere în cutia craniană şi o mulţime de fire, plus o personalitate
puternică. Serios, acum. Creierul meu este păstrat într-un cloud pe care-l accesez, iau
datele, le analizez şi pot face previziuni. Şi asta, instantaneu. Am camere de luat vederi,
amplasate în zona torsului, care pot transmite live ce văd eu. La rândul vostru, voi
oamenii aveţi ceea ce se cheamă intuiţie şi tot ce aţi simţit se transformă în amintiri”.

Andreea Esca: „Şi ce crezi că am eu şi ţie-


ţi lipseşte?”
Sophia: „Se vede de la o poştă: voi aveţi
picioare, iar eu nu. Cel puţin pentru
moment. Am încercat să merg cu un
ajutorul unui alt robot şi testez tot felul de
sisteme, care m-ar putea ajuta să umblu.
Aşa că, teoretic, tu poţi fugi acum, în
timpul interviului, dacă nu-ţi plac
răspunsurile mele, dar eu nu pot fugi,
oricât de mult s-ar putea să nu-mi placă
întrebările tale”.
Imagine fractală realizată pe calculator

30
https://stirileprotv.ro/stiri/stirileprotv-special/andreea-esca-interviu-cu-robotul-sophia-reactia-la-intrebarea-
ar-trebui-sa-ma-tem-ca-imi-vei-lua-locul.html
1.7 Apariția și evoluția societăţii informaţionale
Cele 4 valuri ale tehnologiei societăţii informaţionale

Marin Vlada,
Universitatea din București

Ca ştiinţă, Informatica este caracterizată de cele mai spectaculoase evoluţii în


impactul acesteia asupra activităţii omului. Calculatorul/computerul înglobează
tehnologii la care omul nici nu visase. Deşi, de-a lungul vremii, utilizarea calculatorului
uneori a fost privită cu rezervă, astăzi majoritatea oamenilor sunt convinşi de
performanţele şi utilitatea calculatorului în toate domeniile de activitate. Astăzi, încă din
şcoala primară elevii află de impactul calculatorului în viaţa lor. Din aceste motive,
sistemele educaţionale ale ţărilor sunt concepute să implementeze strategii de dezvoltare
orientate spre utilizarea calculatorului atât în formarea iniţială, cât şi în formarea
continuă. La inceputul secolului XXI se poate afirma că, la baza proceselor/
evenimentelor ştiinţifice, tehnologice, economice, sociale, culturale etc., se află
informaţia şi cunoaşterea. Economistul Roger E. Bohn arată că, acum este important să
înţelegem cunoaşterea tehnologică, şi anume cunoaşterea despre modul de a produce
bunuri şi servicii. Cunoaşterea este dependentă de procesul de învăţare. Este de reţinut şi
formularea lui Roger Bohn pentru conceptul de învăţare: „Learning is evolution of
knowledge over time” ([6]) (Învăţarea este evoluţia cunoaşterii în timp). Dezvoltarea
societăţii omeneşti se realizează prin cunoaştere şi învăţare.
Astăzi, specialiştii ce îşi desfăşoară activitatea într-un anumit domeniu sunt
confruntaţi cu probleme diverse şi complexe. Multe dintre acestea necesită utilizarea
calculatorului şi a produselor software. Complexitatea activităţilor, competiţiile de toate
felurile, eficienţa şi randamentul în activitate, reclamă utilizarea celor mai performante
produse hardware şi software. Se constată explozia intrumentelor şi metodelor oferite de
Tehnologiile informaţiei şi comunicaţiei (IT&C), de sistemele de calcul, de
echipamentele periferice cu funcţii diverse. Programele de cercetare, dezvoltare şi inovare
sunt în număr din ce în ce mai mare, iar rezultatele nu se lasă aşteptate. În acelaşi timp,
perfecţionarea continuă, cunoaşterea şi utilizarea noilor cunoştinţe din domeniul de
activitate trebuie să fie deziderate majore ale fiecărui specialist. Şi sub acest aspect,
Informatica şi Tehnologiile informaţiei şi comunicaţiei, oferă tehnologii de e-Learning şi
Software educaţional.
«Cercetarea ştiinţifică, dezvoltarea tehnologică şi, cu deosebire, inovarea,
reprezintă, alături de sistemul educaţional şi sectorul de tehnologie a informaţiei şi
comunicaţiilor, unul din pilonii de bază ai construirii Societăţii bazate pe Cunoaştere.
Aflată într-un proces de restructurare şi reorganizare, cercetarea românească şi-a redus
dramatic, în ultimii 14 ani, atât numărul de institute şi cercetători, cât şi dimensiunea
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 213

anuală a bugetului. Mai mult, aceste elemente au condus, indirect, la o reducere a


nivelului de colaborare ştiinţifică internaţională, la pierderea unor contacte
interinstituţionale şi interumane, au redus capacitatea de a participa cu propuneri
concrete de proiecte de cercetare ştiinţifică în cadrul programelor internaţionale care
oferă fonduri pentru această activitate.» (acad. Florin G. Filip, 2004, proiectul
ROINTERA, Academia Română, www.rointera.ro [2]).

Dezvoltarea şi evoluţia în domeniul Informaticii

Cercetarea, dezvoltarea şi inovarea în domeniul Informaticii şi Tehnologiei


informaţiei şi comunicaţiei (Information Technologies and Comunication-IT&C) au avut
o evoluţie deosebită după anul 197, când s-a inventat «bijuteria» secolului XX,
microprocesorul, ca rezultat al succeselor celor trei domenii de vârf: sisteme cibernetice,
circuite integrate, microprogramare. Cele mai semnificative evoluţii sunt prezentate în
continuare.

Anii ’70 – Primul val

Deceniul 7 al secolului XX-lea a fost unul al marilor schimbări în domeniul


informaticii şi al sistemelor de calcul [14,17]:
 inventarea microprocesorului („bijuteria de bază” a actualelor sisteme de calcul); au
urmat construirea şi răspândirea pe scară largă a sistemelor de calcul de tip PC
(Personal Computer; în anul 1975 Bill Gates fondează firma Microsoft), impulsionarea
dezvoltării reţelelor de calculatoare, apariţia şi dezvoltarea de noi sisteme de operare
(UNIX, RSX-11M, CP/M); performanţe sporite ale dispozitivelor I/O;
 supremaţia şi răspândirea structurilor de control în algoritmică şi programare;
apariţia limbajului pseudocod în reprezentarea şi elaborarea algoritmilor; conceperea şi
scrierea primelor limbaje de programare care implementează structurile de control
(Limbajele Pascal şi C), adaptarea continuă a limbajelor de programare prin
implementarea structurilor de control, a structurilor de date, a facilităţilor programării
orientate spre obiecte (OOP – Object Oriented Programming);
 succese spectaculoase în domeniul Inteligenţei Artificiale prin construirea primelor
sisteme expert; conceperea şi scrierea primului limbaj de programare logică (Limbajul
Prolog) ce oferă suportul programării declarative; dezvoltarea şi utilizarea largă a
metodelor şi tehnicilor Inteligenţei
Artificiale în rezolvarea unora dintre
cele mai dificile probleme prin motoare
de inferenţă;
 delimitarea problemelor rezolvate cu
calculatorul (probleme decidabile) în
două clase distincte: clasa problemelor
rezolvate prin metode imperative
(procedurale) şi clasa problemelor
rezolvate prin metode declarative;
delimitarea clasei problemelor
nedecidabile;
214 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Anii ’80 – Al doilea val

Deceniul 8 al secolului XX-lea a fost unul al marilor succese în domeniul


Inteligenţei artificiale, al dezvoltării reţelelor de calculatoare şi al răspândirii limbajelor
de programare moderne:
 lansarea Proiectului japonez [1, 14] în anul 1981 pentru construirea calculatorului de
generaţia a V-a la începutul anilor ’90; acesta prevedea o revoluţie în domeniul
calculatoarelor prin aşa-numitele sisteme de procesare a informaţiei de cunoaştere
(KIPS – Knowledge Information Processing Systems); având finanţare guvernamentală
de 1 miliard $ şi colaborarea mai multor firme japoneze importante, s-a înfiinţat un
institut special ICOT (Institute for New Generation Computer Technology) care a
editat revista internaţională New Generation Computing (www.ohmsha.co.jp/ngc),
astăzi fiind una dintre cele mai prestigioase reviste din lume; proiectul a avut un
impact deosebit pe plan mondial; începe să se predea Inteligenţa Artificială ca
disciplină a Informaticii în învăţământul superior;
 apariţia şi utilizarea sistemului de operare MS-DOS şi a interfeţei grafice
Windows – conceput şi scris special pentru calculatoarele de tip PC, sistemul de
operare MS-DOS (Disk Operating System) al firmei americane Microsoft a produs o
răspândire şi o utilizare fără precedent a calculatoarele în multe domenii de activitate;
conceptul de fereastră (window) a fost utilizat la elaborarea în anul 1985 a interfeţei
grafice utilizator (GUI – Graphical User Interface) Windows versiunea 1.0, produs
software care va contribui în anul 1995 la apariţia sistemului de operare Windows 95;
în acest domeniu istoria a consemnat colaborarea şi concurenţa dintre Steve Jobs de la
Apple-Machintosh şi Bill Gates de la Microsoft;
 apariţia şi dezvoltarea primei generaţii de reţele de calculatoare – fabricarea şi
utilizarea microprocesoarelor Intel 80286, 80386, 80486 pe 16 şi 32 biţi a făcut
posibilă apariţia microcalculatoarelor şi minicalculatoarelor, precum şi dezvoltarea
reţelelor de calculatoare cu tehnologie Ethernet; aceste reţele vor reprezenta structura
de bază a reţelei mondiale care astăzi se numeşte reţeaua Internet [14, 17];
 dezvoltarea limbajelor de programare folosind tehnologia OOP – utilizarea pe
scară largă programării orientate spre obiecte (OOP- Object Oriented Programming)
prin intermediul limbajelor moderne C++, Pascal, Modula, Simula, SmallTalk, TCL,
Prolog, Visual Basic, SQL, Oracle [14, 17, 18];

Anii ’90 – Al treilea val

Deceniul 9 al secolului XX-lea a fost unul al marilor realizări în domeniul


Tehnologiei informaţiei şi comunicaţiei (IT&C) prin dezvoltarea şi răspândirea
tehnologiilor WEB şi reţelei Internet, perfecţionarea sistemelor de operare şi a mediilor
de programare:
 apariţia sistemului de operare Linux – în anul 1992, apare primul sistem de operare
„free software” cu facilităţi deosebite pentru reţeaua Internet care utilizează protocoale
de comunicaţii (TC/IP, FTP, IPX etc) pentru serviciile: poşta electronică (E-Mail),
zone de informare (WWW, Gopher, FTP), Newsreader (cititor de ştiri); apariţia şi
răspândirea site-urilor Web [17];
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 215

 apariţia tehnologiei Java – în anul 1995, este lansat mediul de programare Java, ce
oferă suport dezvoltării de aplicaţii distribuite, independente de platformă; produs
software evoluat al firmei Sun Microsystems moşteneşte conceptele de programare
obiectuală de la limbajele C++, SmallTalk, Lisp [14, 17];
 lansarea ca sistem de operare a sistemului Windows – în anul 1995, a apărut
sistemul de operare Windows 95, urmat de versiunile ulterioare 98, 2000; pentru
reţelele de calculatoare a apărut începând cu anul 1992 Windows NT
Workstation/Server; s-au dezvoltat sistemele de operare Netware, OS/2;
 perfecţionarea şi utilizarea pe scară largă a pachetului Microsoft Office – mediile
de programe aplicative Word, Excel, Access, Outlook, Power Point;
 realizări hardware-software-platforme-aplicaţii – proiectare circuite integrate 3D,
componente optice, arhitecturi paralele pentru prelucrarea inferenţelor, reţele din fibra
optică de mare capacitate, reţele neuronale; sisteme de operare cu interfaţă evoluată cu
utilizatorul, limbaje concurente, programare funcţională, prelucrare simbolică (limbaje
naturale, recunoaşterea formelor: imagini/voce), Baze de date – Dbase, Foxpro,
Oracle, Prolog, baze de cunoştinţe, sisteme expert evoluate, CAD, CAM, CAE,
tehnologii multimedia, Realitate Virtuală, tehnologii Web.

După anul 2000 – Al patrulea val, după 2010

Deceniul 1 al secolului XXI-lea a început prin consolidarea marilor realizări în


domeniul IT&C [3-9, 14-18]:
 apariţia sistemului de operare Windows XP – versiunea din anul 2001 a adus
facilităţi importante privind reţeaua Internet, multimedia, servicii USB; este lansat
pachetul Microsoft Office Professional XP care include versiunea Front Page 2002
destinat elaborării paginilor Web [17];
 diversificarea tehnologiilor pentru
crearea şi întreţinerea site-urilor Web
– programele CGI (Common Gateway
Interface), platforma ASP (Active Server
Page), platforma PHP (Hypertext
PreProcessor); Limbajele XML
(eXtensible Markup Language), Perl,
TCL, VBScript, JavaScript, My SQL;
editoarele grafice pentru dezvoltarea
paginilor Web (Netscape Composer,
Macromedia Dreamweaver/ Flash,
Adobe GoLive, ContentWare, Content
Management Server), platforma Oracle9i
[14, 17, 18];
 realizări semnificative privind
Realitatea Virtuală (Virtual Reality) [13,
15], tehnologiile e-Learning şi Software
educaţional, comerţ electronic, biblioteci
electronice.
216 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Principii
În domeniul Informaticii privind construirea, programarea şi utilizarea calculatorului, s-
au impus următoarele principii:
 principiul secvenţialităţii – principiu enunţat de savantul american John von
Neumann, considerat arhitectul calculatorului modern; sistemele de calcul clasice
funcţionează pe baza principiului execuţiei „step by step” (pas cu pas); acest principiu
a dominat atât concepţia şi elaborarea sistemelor de operare, căt şi concepţia şi
elaborarea limbajelor de programare; în dezvoltarea hardware şi software s-a cercetat şi
căutat tot timpul să se depăşească limitele secvenţialităţii; de altfel, proiectul joponez
[1] a avut ca obiectiv crearea calculatorului din generaţia a V-a de tip non John von
Neumann, care urmau să facă trecerea de la procesarea datelor la procesarea
cunoştinţelor în rezolvarea problemelor; aşa au apărut produsele software care
înglobează comportamentul inteligent al omului în rezolvarea problemelor şi în luarea
deciziilor folosind calculatorul; au fost elaborate şi au început să se utilizeze în diverse
domenii de activitate aşa-numitele sisteme expert care implementează în programe
raţionamentul uman în rezolvarea problemelor la nivel de expert (N. Nillson, Artificial
Intelligence: A New Synthesis, Morgan Kauffman, 1998);
 principiul interactivităţii – interacţiunea om-maşină (Human-computer interaction)
este un domeniu care a preocupat mereu cercetările privind proiectarea şi construirea
produselor hardware şi software; scopul urmărit este acela de studiere şi ameliorare a
factorilor care influenţează utilizarea efectivă, comodă şi eficientă a calculatorului;
 principiul orientării spre obiecte – object-oriented este un principiul de programare
care s-a impus în proiectarea, elaborarea şi implementarea rezolvării problemelor prin
descrierea acestora în termeni de obiecte, a relaţiilor între obiecte şi a operaţiilor de
procesare a acestor obiecte; tehnologia programării orientate pe obiecte (OOP – Object
Oriented Programming) este singura care satisface cerinţele actuale ale dezvoltării de
produse software; astăzi, limbajele moderne de programare (C++, Java, Visual Basic)
oferă conceptele de programare obiectuală care îşi au rădăcinile în limbajele
SmallTalk, Lisp, Prolog;
 principiul client-server – interacţiunea dintre aplicaţiile unei reţele de calculatoare se
realizează conform modelului client-server; prin acest model funcţionarea sistemului
este structurată în grupe de procese cooperante numite servere, ce oferă servicii
utilizatorilor, numiţi clienţi; serverul execută o cerere recepţionată de la client şi poate
realiza un dialog cu procesul client; acest principiu oferă portabilitate faţă de platforma
hardware, execuţie multitasking, execuţie multiprocesoare, execuţie multifilară
(execuţia simultană a mai multor fire de execuţie); aplicaţiile Web respectă modelul
client-server;
 principiul HyperText – termenul de hypertext (text non-linear) este propus de Ted
Nelson în anul 1965 şi reprezintă forma de organizare a informaţiilor interconectate
într-o manieră complexă care în mod convenţional nu poate fi reprezentat pe hârtie
[17]; acesta se află la baza celui mai important serviciu al reţelei Internet, şi anume
WWW (World Wide Web) care gestionează documente HTML (HyperText Markyp
Language); în mod normal, indiferent de metoda de stocare, formele principale de
organizare a informaţiilor sunt: organizarea liniară; organizarea ierarhică
(arborescentă); organizarea asociativă (similară celei oferită de memoria umană);
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 217

 principiul WYSIWYG – What You See Is What You Get („ceea ce vezi este ceea ce
obţii”); acest lucru este calitatea recunoscută pentru editoarele/procesoarele de text/imagini
sau de conţinut multimedia unde cum arată documentul pe ecran, aşa arată şi forma
finală destinată reprezentării, tipăririi sau publicării (pe Web, CD sau alte media).
Programele aplicative din pachetul Microsoft Office Professional respectă acest principiu.

Pe plan mondial, Informatica (S.U.A. – Computer Science, Franţa – Informatique,


Germania – Informatik) şi Tehnologia Informaţiei şi Comunicaţiei (IT&C – Information
Technology & Comunication) oferă domenii de cercetare şi inovare foarte variate. De
exemplu, revista internaţională New Generation Computing (www.ohmsha.co.jp/ngc) are
următoarele obiective: „The journal is specifically intended to support the development of
new computational paradigms stemming from the cross-fertilization of various research
fields. These fields include, but are not limited to, programming (logic, constraint,
functional, object-oriented), distributed/parallel computing, knowledge-based systems
and agent-oriented systems. It also encourages theoretical and/or practical papers
concerning all types of learning, knowledge discovery, evolutionary mechanisms, and
emergent systems that can lead to key technologies enabling us to build more complex
and intelligent systems.” (www.springeronline.com). Secţiunile din tematica revistei sunt
prezentate în continuare. Computing Paradigms: Soft Computing, Quantum Computing,
Molecular Computing, Foundations; Programming and Architecture: Computational
Logic, Constraint Programming, Concurrency and Parallelism, Programming Systems;
Network Computing: Grid Computing, Web Computing, Mobile Computing, Ubiquitus
Computing; Intelligent Systems: Intelligent and Adaptive Agents, Communicative
Intelligence, Ontology, Semantic Web, Knowledge Management; Learning:
Computational Learning Theory, Inductive Logic Programming, Statistical Learning
Methods, Bayesian Networks, Reinforcement Learning, Knowledge Discovery and
Data/Text Mining; Biocomputing: Evolutionary Computing, Genetic Algorithms and
Programming, Biologically – inspired Systems, Biochemical Modeling and Simulation.

Proiecte europene de cercetare-dezvoltare

Erele prin care a trecut şi trece omenirea sunt prezentate de catre James W.
Michaels (James W. Michaels, How New is the New Economy? Forbes, October 11,
1999) astfel: a pietrei; a fierului; a agriculturii; a industriei; a tehnologiei; a cunoaşterii.
„Consideraţiile lui James W. Michaels reprezintă probabil prima încadrare conceptuală
teoretică a societăţii cunoaşterii în mersul istoriei omenirii. Ar putea să surprindă lipsa
erei informaţiei care nu apare explicit, dar ea se împarte probabil între era tehnologiei şi
era cunoaşterii care este partea superioară a erei informaţiei. De fapt, omenirea se
găseşte, după părerea noastră, într-o eră a informaţiei având ca faze succesive societatea
informaţională, societatea cunoaşterii şi societatea conştiinţei. Atât cunoaşterea, după
cum am văzut, este o formă de informaţie, dar şi conştiinţa este informaţie.” (M.
Drăgănescu – www.racai.ro/~dragam). Înainte de a aborda îmbinarea dintre societatea
cunoaşterii şi a conştiinţei, acum de actualitate este îmbinarea dintre societatea
informaţiei şi societatea cunoaşterii.
Dacă în anii 1970 sintagma predominantă era aceea de Societate informatică,
(preocuparea principală fiind realizarea unui Sistem informatic naţional, cu idei şi
218 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

tendinţe care vizau o societate informaţională), treptat conceptul de Societate


informaţională a câştigat tot mai mult teren şi a devenit o realitate după 1990 din
momentul raspândirii tehnologiilor Internet. Acest lucru s-a petrecut în ultimul deceniu al
secolului XX. Pentru prima parte a secolul XXI apare problema Societăţii cunoaşterii.
Rezultatele tehnologiilor Internet încep cu inventarea transmiterii informaţiei pe liniile de
telecomunicaţie, radio, sateliţi, prin comutarea pachetelor de date (packet switching) [3].
Tehnologia comutării de pachete s-a dovedit a fi fundamentală pentru dezvoltare reţelei
Internet. Tehnologia WWW (World Wide Web) este cea mai tulburătoare transformare şi
extindere pentru societatea umană. Poşta electronică (E-Mail), Cartea
electronică/virtuală (E-Book) şi Tehnologia WWW au determinat un proces de
autoorganizare la scară globală şi care este în plină desfaşurare şi astăzi. Trebuie să se
autoorganizeze oamenii, organizaţiile, instituţiile, ţările, regiunile, continentele etc.
De-a lungul vremii, ţările europene au reacţionat la marile provocări venite din spaţiul
american sau japonez în multe domeniile de activitate. De exemplu, reacţia la Proiectul
japonez (1981) a fost imediată: Marea Britanie a iniţiat un program de 500 milioane $ pe
o perioadă de 5 ani pentru cercetări în toate domeniile tehnologice având ca obiectiv
generaţia a V-a de calculatoare; Comisia Economică Europeană a lansat programul
ESPIT (European Strategic Programme in Information Technology) având acelaşi
obiectiv şi a fost finanţat cu 1,5 miliarde $ pentru primii 5 ani de către guvernele
participante şi 12 companii importante (ICL-Anglia, Bull-Franţa, Siemens-Germania,
Olivetti-Italia etc.). În ţările europene cercetarea în domeniul Inteligenţei Artificiale a
căpătat noi dimensiuni.
După anul 1985, în instituţiile de învăţământ superior a început să se predea
disciplina Inteligenţa Artificială. De asemenea, limbajele Inteligenţei Artifiaciale –
Prolog şi Lisp, au început să fie predate şi utilizate în elaborarea sistemelor expert. Poate
nu este întâmplător faptul că unul dintre cele mai importante şi de succes servicii ale
reţelei Internet – serviciul WWW, a fost instituit la CERN (Centre Europeen pour la
Recherche Nucleaire) în anul 1989 de către Tim Berners-Lee şi Robert Callau din
Geneva (Elveţia). În anul 1990, CERN devine cel mai dezvoltat nod Internet din Europa.
În anul 1994 s-a constituit World Wide Web Consortium (W3C-www.W3.org),
organizaţie internaţională non-profit, având ca director pe Tim Berners-Lee şi sub
îndrumarea directă a MIT (Massachusetts Institute of Technology) şi INRIA (L’institute
National de Reacherche en Intelligence Artificielle). Astăzi, Consorţiul Web W3C
cuprinde peste 500 de membri, atât
organizaţii academice, corporaţii
comerciale, cât şi persoane fizice [3, 4].
Reperele europene privind
cercetarea, dezvoltarea şi inovarea pentru
construirea unei societăţi a cunoaşterii sunt
(www.ici.ro/ici/revista/ria2004_1/):
 Societatea Informaţiei Globale –
Iniţiativă lansată în anul 1994 la summit-
ul şefilor de state şi de guvern ai ţărilor G7
(azi, există G8, prin aderarea Rusiei),
desfăşurat la Napoli; la „Conferinţa pentru
Societatea Informaţională” de la Bruxelles
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 219

din anul 1995, s-a analizat implementarea unei infrastructuri informaţionale competitive
la nivel mondial;
 Comunicaţiile în Societatea Informaţională – Conferinţa desfăşurată în anul 1997 în
Estonia la care au participat 19 ţări;
 Proiectele Pilot G8 – În anul 1998, grupul G7 la care s-a alăturat şi Rusia, a lansat
Proiectele Pilot pentru dezvoltarea Societăţii Informaţionale în domeniile educaţiei,
culturii, comerţului, mediului înconjurător, sănătăţii şi administraţiei publice;
 EURIDYCE – Technologies de In’formation et de la communication dans les systemes
educatifs en Europe, Paris, 2000 (www.euridyce.org)
 eEurope şi eEurope+ – Programe de acţiune lansate în anul 2001 la nivel european
pentru ţările UE, dar şi pentru ţările în curs de aderare la UE (eEurope+)
(www.europa.eu.int);
 Global Tera byte Recherche Network (GTREN) – Program de acţiune lansat în 2002
pentru dezvoltarea infrastructurii de comunicaţii şi realizarea unei reţele Internet mai
rapidă, mai sigură şi mai eficientă;
 eEurope 2005 – Lansat în anul 2002, programul de acţiune An Information Society for
All are două obiective majore: stimularea serviciilor, aplicaţiilor şi conţinutul
informaţiei electronice, şi dezvoltarea infrastructurii în bandă largă şi creşterea
securităţii informaţiei şi a reţelelor;
 Sixth Framework Programme (FP6) – Programul cadru 6 al Uniunii Europene
(www.cordis.lu/fp6/), lansat în anul 2002 este unul dintre cele mai complexe programe
de cercetare, dezvoltare şi inovare; „The objectives of Community action in this field
are to contribute to the creation of a European Research Area (ERA) by stimulating
and supporting programme coordination and joint activities conducted at national or
regional level, as well as among European organisations, and thus help to develop the
common knowledge base necessary for a coherent development of policies”. FP6 lansat
pentru perioada 2002-2006 are direcţia 2 de prioritate: Information Society
Technologies (IST – www.cordis.lu/ist/) [11]. În România, Academia Română a lansat
în anul 2004, Proiectul ROINTERA (www.rointera.ro), „ce este prevăzut a fi
implementat în scopul stimulării, încurajării şi facilitării participării comunităţii
tehnico-ştiinţifice româneşti la programele de cercetare, dezvoltare şi inovare ale
Comisiei Europene, cu focalizare pe Programul Cadru 6, precum şi pentru integrarea
acestei comunităţi româneşti în ERA”. În acest moment, deja este lansat programul FP7
(http://www.cordis.lu/fp7/) pentru perioada 2007-2011 cu un buget de EUR 72 726
million [10, 11].

Temele principale de cercetare-dezvoltare ale priorităţii 2 (IST – Tehnologiile


societăţii informaţionale) sunt: provocări sociale şi economice majore; tehnologii pentru
comunicaţii, tehnică de calcul, software; componente şi microsisteme; tehnologii de
cunoaştere şi interfaţă.
În iulie 2005, Ministerul Educaţiei şi Cercetării (MEdC) din România şi
Ministerul Federal pentru Educaţie şi Cercetare (BMBF) din R.F. Germania au semnat
Protocolul privind cooperarea în domeniul ştiinţei şi tehnologiei, încheiat pentru perioada
septembrie 2005 – decembrie 2006, urmare a iniţiativei BMBF din aprilie 2004 privind
„Cooperarea bilaterală în educaţie şi cercetare cu ţările central, est şi sud-est europene”.
220 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Domeniile prioritare de cooperare sunt:


1. Ştiinţele vieţii, genomică şi biotehnologii;
2. Tehnologiile societăţii informaţionale;
3. Nanotehnologii şi nanoştiinţe, materiale, procese de producţie;
4. Calitate şi siguranţă alimentară;
5. Dezvoltare durabilă.
Instrumentele de lucru prevăzute sunt: misiuni pregătitoare, vizite individuale,
întâlniri la nivel de experţi, cercetări pilot, studii de fezabilitate şi seminarii tematice,
atât pentru pregătirea de propuneri de proiecte PC6, cât şi pentru pregătirea de proiecte
de interes naţional pentru ambele părţi. Nivelul grantului acordat de BMBF este de
maxim 50.000 EUR/proiect pentru cheltuieli de mobilitate şi de organizare evenimente.
MEdC va asigura cheltuielile de mobilitate pentru proiectele acceptate de comun acord, în
limita a 10 proiecte în 2005 şi 15 proiecte în 2006, conform prevederilor Protocolului
(sursa: www.edu.ro).
Exemple de colaborări ale României la programele europene FP6, FP7:
 Consorţiul internaţional INTUITION (2004 - 2008) – INTUITION is a Network Of
Excellence focused on virtual reality and virtual environments applications for future
workspaces – http://www.intuition-eunetwork.net. It is funded by the European Union,
and operates under the 6th Framework of the European Commission (IST). The
Network includes 58 partners (15 countries, 248 researchers; including a number of
representatives from Romania: Ovidius University of Constanta (Dr. M.D. Popovici),
Polytehnical University of Bucharest (Dr. L.D. Şerbănaţi), University of Bucharest
(Dr. M. Vlada), Transilvania University of Brașov (Dr. D. Talabă)) and it is being
coordinated by the Institute Of Communication And Computer Systems of the National
Technical University of Athens in Greece (http://i-sense.iccs.ntua.gr). INTUITION has
officially kicked off on September 1 st 2004. The EC funding is up to 6million Euros
for a period of 4 years (2004-2008) [12];
 Acordul bilateral de cooperare ştiinţifică (2005-2006) – semnat în iulie 2005 –
dintre Universitatea Politehnică Bucureşti (PUB – www.pub.ro) şi Institutul Leibniz
de Cercetare a Materialelor şi Stării Solide din Dresda (IFW Dresden). Graţie acestui
acord, vor fi create noi infrastructuri de cercetare, fapt care va atrage tineri cercetători.
Echipele mixte româno-germane vor avea la dispoziţie o nouă cale de acces la
oportunităţile oferite de programele europene, în particular la Programul Cadru 6 (FP6)
de cercetare şi dezvoltare tehnologică [sursa: www.edu.ro];
 Oficiul Român pentru Ştiinţă şi Tehnologie pe lângă Uniunea Europeană –
Prin Hotărârea de Guvern de infiinţare a Oficiului, aprobată în 12 iulie 2005, se
dovedeşte consecvenţa principiilor de reformare a educaţiei şi cercetării din România
în vederea integrării în Uniunea Europeană (UE) şi participării la crearea Spaţiului
European de Cercetare şi Inovare (ERA); se vor sprijini centrele de cercetare din
România pentru a avea un acces mai bun la fondurile europene de cercetare (FP6, FP7
– Programele Cadru 6 şi 7); se vor face mai vizibile temele româneşti de cercetare şi va
face lobby pentru integrarea lor în agenda europeană de cercetare; sporirea ratei de
recuperare a fondurilor de cercetare pe care România le alocă cercetării europene
(aflată la un nivel de doar 18%); dezvoltarea managementului cercetării în concordanţă
cu cerinţele europene; În prezent, la Bruxelles îşi desfăşoară activitatea circa 20 de
oficii de legătură cu Comisia Europeană în vederea pregătirii şi furnizării către
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 221

comunităţile ştiinţifice proprii de servicii de sprijin pentru obţinerea de informaţii,


organizarea de contacte, redactarea de prepropuneri de finanţare, negocierea de
contracte de cercetare, etc. [sursa: www.edu.ro].

Cele 4 valuri ale tehnologiei informaţionale

În cele ce urmează abordăm studiile privind tehnologiile informaţionale şi


societatea informaţională aşa cum sunt prezentate în referinţele [7], [8] şi [9].

Definirea tehnologiilor informaţionale

În general, nu există unanimitate în definirea tehnologiilor Informaţionale.


Totuşi, cea mai relevantă dintre toate constă în a înţelege prin acestea colecţii de domenii
tehnologice ce se dezvoltă simultan şi interdependent. Între domeniile cele mai
importante sunt incluse Informatica, Electronica şi Comunicaţiile [9]. Două sunt
domeniile tehnologice de bază care stau la baza Tehnologiilor informaţionale şi de
comunicaţii: Informatica şi Comunicaţiile. Astăzi, este tot mai răspândită formularea
Tehnologiile informaţiei şi Comunicaţiilor (IT&C). B.H. Boar [8] consideră că
tehnologiile informaţionale permit pregătirea, colectarea, transportul, regăsirea,
memorarea, accesul, prezentarea şi transformarea informaţiei sub orice format (grafică,
text, voce, video şi imagine). Aceste acţiuni/mişcări pot avea loc între oameni, între
oameni şi echipamente şi/sau între echipamente. Modelul de reprezentare pentru
tehnologiile informaţionale se prezintă în Figura 1. O altă definiţie este dată şi de
Departamentul de Comerţ şi Industrie al Marii Britanii care susţine ideea conform căreia
tehnologiile informaţionale permit colectarea, stocarea şi transmiterea informaţiilor sub
formă de voce, imagine, text şi coduri pe baza microelectronicii, prin intermediul
tehnologiilor oferite de Informatică, Electronică şi Telecomunicaţii. Tehnologiile
informaţionale se bazează în principal pe două mari componente:
a) tehnologii informaţionale – hardware şi software;
b) tehnologii de comunicaţii – reţele, transmisii optice, transmisii prin satelit, ISDN,
standarde de comunicaţii etc.

Figura 1. Model de reprezentare a tehnologiilor informaţionale [9]


222 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Definirea societăţii informaţionale

În general, societatea informaţională se poate defini ca fiind societatea bazată pe


informaţie. În sens modern se poate vorbi de o societate bazată pe informaţii de la
utilizarea calculatoarelor în economie, în domeniile stiinţei şi tehnicii etc., şi acest lucru
este plasat în timp ulterior construirii calculatorului ENIAC din 1947, adică în a doua
jumătate a anilor ’50. Astăzi, prin apariţia diverselor tehnologii, limbaje de programare,
sisteme de operare, programe specializate etc. se utilizează formularea « Tehnologiile
informaţiei şi comunicaţii » (IT&C) ce înglobează o mare diversitate de procesare a
informaţiilor şi o mare utilizare a acestor prelucrări în toate domeniile de activitate.
Totuşi, la nivelul fiecărui stadiu de dezvoltare al societăţii omeneşti a existat din
totdeauna o fundamentare pe informaţie. Informaţia este forma primară de obţinere a
cunoaşterii. Dintre exemplele semnificative enumerăm următoarelor momente: ABAC-ul
(3000 Î.Ch.), hârtia (50 Î.Ch.); tiparniţa (1452); ziarul (1700); telegraful (1837);
fotografia (1839); telefonul (1876); electricitatea (1882); tabulatorul (1890); filmul
(1891); radio – televiziunea (1920-1936); robotul (1921); tranzistorul (1947); display-ul
grafic (1953); microprocesorul (1971), tehnologia Web şi reţeaua Internet (1991). Toate
aceste momente şi-au adus aportul la o mai bună utilizare a informaţiei în societate şi la
nivele de creştere ale cunoaşterii şi bunăstării omului. Cu alte cuvinte, se poate spune că
societatea globală informaţională nu este altceva decât societatea omenească normală din
toate timpurile cu amprentă de modernism informaţional specific avalanşei
informaţionale şi de cunoaştere. Astăzi, se doreşte trecerea de la o societate
informaţională la o societate a cunoaşterii, şi anume în perioada 2010-2030. Programele
europene (FP6, FP7) [10,11] sunt cocepute şi elaborate pentru atingerea acestor
deziderate.

Valurile tehnologiei informaţionale

Rezultatele şi performanţele în domeniile Informaticii şi Tehnologiei informaţiei


şi telecomunicaţiilor au fost întotdeauna spectaculoase. Astăzi, multe tipuri de
calculatoare sunt destinate a împlini visele oamenilor despre o lume integral sau parţial
cibernetizată şi despre o super-bibliotecă a informaţiei. Cu alte cuvinte, la baza societăţii
de mâine vor sta informaţia, cunoaşterea şi comunicaţiile mijlocite de calculator. Un
grafic de trecere spre societatea global informaţională este dat de J.A. O’Brien [7], care
consideră că omenirea, pentru a ajunge la acest stadiu, trebuie să parcurgă un număr de
patru stadii, şi anume:
1. stadiul întreprinderii informatizate, pentru perioada1970-2010 – primul val;
2. stadiul oamenilor cunoscători interconectaţi, ce a început din 1980 – al doilea val;
3. stadiul societăţii global interconectate, ce a început din 1991 – al treilea val;
4. stadiul societăţii global informaţionale, care va începe după 2010 – al
patrulea val.
Aşa cum rezultă şi din Figura 2, până în 2010 societatea omenească va fi în
perioada când se suprapun primele trei valuri, ceea ce înseamnă că va fi o perioadă de
tranziţie cu riscurile şi cu avantajele specifice. Astfel, după cum se poate observa
omenirea nu a parcurs încă nici măcar primul stadiu, dar au fost începute deja alte două,
pentru ca din 2010 sa înceapă şi cel de-al patrulea stadiu. Cu alte cuvinte, până în 2010,
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 223

societatea omenească se află într-un continuu proces de tranziţie către acest globalism
informaţional [8,9]. Astfel, amprenta de modernism devine şi mai evidentă în apropierea
anului 2010, când primul val al simplei informatizări va fi depăşit şi se va face simţit din
ce în ce mai mult cel de-al patrulea val, cel al „Societăţii global informaţionale”. În
primul val, atenţia a fost canalizată către organizaţii ca element cheie în obţinerea de
profit şi de creştere a productivităţii. Astfel, se dorea o micşorare a timpului şi a costului
de obţinere a informatţei, precum şi o reducere a costurilor de producţie. În cel de-al
doilea val, se pune accent în mod deosebit pe performanţele individuale într-un mediu
informatizat. În aceste condiţii, saltul de productivitate este dat de cunoştinţele de care
dispun indivizii şi de gradul de interconectare. Scopul parcurgerii acestui stadiu îl
constituie atingerea calităţii de persoană cunoscătoare interconectată.
Atenţia în cel de-al treilea val se îndreaptă spre realizarea conectivităţii la nivel
global în cadrul societăţii, în care activează «muncitorii cunoaşterii» şi societăţile
informatizate. Derularea activităţilor creatoare de valori în asemenea condiţii va atrage un
plus de eficienţă. Scopul final al acestui val constă în obţinerea societăţii global
interconectate (societăţii reţea).

Figura 2. Valurile tehnologiilor societăţii informaţionale [8,9]

Odată cu trecerea la cel de-al patrulea val, informatizarea societăţilor se


consideră terminată, ceea ce înseamnă că asemenea telefonului sau televizorului, şi
calculatorul va constitui un instrument obişnuit pe care şi-l va permite oricine la costuri
cât mai mici. Va fi stadiul când se va generaliza conceptul de system-on-chip si când
ambalajul acestuia ar putea fi mai scump decât sistemul propriu-zis. Dacă vom analiza
evoluţia societăţii prin comparaţia clasică (date – informaţii – cunoştinţe), atunci se poate
vorbi de tehnologiile cunoaşterii şi de societatea cunoaşterii sau de societatea
inteligentă.
Prin urmare, ideile prezentate anterior conduc la concluzia că următorul val ar putea
debuta în jurul anilor 2035 - 2040 şi se va putea numi stadiul inteligenţei şi al
cunoaşterii, reprezentând societatea cunoaşterii. Acest stadiu va plasa în centrul atenţiei
224 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

exploatarea informaţiei în vederea atingerii nivelului de inteligenţă dorit pentru o entitate


oarecare [9]. Va fi perioada când se vor atinge, într-o oarecare măsură, capacităţile
creierului omenesc, când se va generaliza conceptul de bio-tehno-sistem, adică sisteme
hibride între sistemele biologice şi sistemele tehnice prin intermediul informaticii. Deja,
de mai mulţi ani, s-au început cercetări privind proiectarea şi construirea calculatorului
molecular (molecular computing) la care şi cercetarea românească are contribuţii.

Bibliografie
[1] T. Moto-Oka (ed.), Fifth Generation Computer Systems, Proceedings of the International Conference on
Fifth Generation Computer Systems, Tokyo, october 19-2, 1981, Amsterdam, North Holland, 1982
[2] Florin G. Filip, portalul ROINTERA, Academia Română, www.rointera.ro, 2004
[3] Mihai Drăgănescu, De la societatea informaţională la societatea cunoaşterii, Editura Tehnică, Bucureşti,
2003, ISBN 973-31-2199-1, www.racai.ro
[4] Robin Mansell and Uta Wehn (Editors) “Knowledge societies. Informationb technology for sustainable
development”, published for and on behalf of the United Nations, Commission on Science and Technology
for Development, Oxford University Press, New York, 1998.
[5] Richard E.S Boulton, Barry D. Libert, Steve M. Samek, Cracking the Value Code. How Successful
Businesses Are Creating Wealth in the New Economy, Harper Business, New York, 2000.
[6] Roger E. Bohn, Measuring and Managing Technological Knowledge, p.295-314 in Dale Neef a.o., Eds,
The Economic Impact of knowledge, Butterworth-Heinemann, Boston, 1998.
[7] O’Brien, J.A., Management Information Systems. Managing Information Technology in the
Internetworked Entreprise, McGraw-Hill, Boston, 1999
[8] Boar, B., H., The Art of Strategic Planning for Information Technologies, 2nd edition, John Wiley &
Sons, Inc., New York, 2001
[9] Tudorel Fătu, Alexandru Ţugui, Ce urmează după societatea global informaţională ?, Studii, Institutul de
Cercetări pentru Inteligenţa Artificială, Academia Română, www.racai.ro
[10] http://fp6.cordis.lu/fp6/home.cfm , http://fp6.cordis.lu/fp7/
[11] http://www.cordis.lu/ist/
[12] http://www.intuition-eunetwork.net
[13] D.M. Popovici, L.D. Şerbănaţi, S. Morvan, “Virtual Aquarium“, CNIV-2004, Noi tehnologii de E-
Learning, Conferinţa Naţională de Învăţământ Virtual, Software Educaţional, Ediţia a II-a, 29-31 octombrie
2004, Editura Universităţii din Bucureşti, (Editori: I. Chiţescu, H. Georgescu, V. Preda, I. Văduva, I.
Tomescu, M. Vlada, G. Pripoae) (ISBN 973-575-947-0) (http://fmi.unibuc.ro/ro/cniv_2004/), pp. 167-174,
2004
[14] M. Vlada, „Supremaţia limbajelor în domeniul procesării informaţiilor şi cunoştinţelor”, Sesiunea de
comunicări ştiinţifice cu participare internaţională, „Provocări la adresa securităţii şi strategiei la începutul
secolului XXI”, Secţiunea E-Learning şi Software Educaţional, UNAP, 14 -15 aprilie 2005, Editura
Universităţii Naţionale de Apărare, Bucureşti, pp. 165-178, 2005.
[15] M. Vlada, „Realitatea Virtuală (Virtual Reality), tehnologie modernă a informaticii aplicate”, CNIV-
2004, Noi tehnologii de E-Learning, Conferinţa Naţională de Învăţământ Virtual, Software Educaţional,
Ediţia a II-a, 29-31 octombrie 2004, Editura Universităţii din Bucureşti, 2004 (Editori: I. Chiţescu, H.
Georgescu, V. Preda, I. Văduva, I. Tomescu, M. Vlada, G. Pripoae) (ISBN 973-575-947-0)
(http://fmi.unibuc.ro/ro/cniv_2004/ ), pp. 11-28 (în colaborare cu M. D. Popovici), 2004
[16] M. Vlada, „Maple and MapleNet-integrated solutions for Web based learning in matematics, Science
and Engineering”, CNIV-2004, Noi tehnologii de E-Learning, Conferinţa Naţională de Învăţământ Virtual,
Software Educaţional, Ediţia a II-a, 29-31 octombrie 2004, Editura Universităţii din Bucureşti, (Editori: I.
Chiţescu, H. Georgescu, V. Preda, I. Văduva, I. Tomescu, M. Vlada, G. Pripoae) (ISBN 973-575-947-0)
(http://fmi.unibuc.ro/ro/cniv_2004/), pp. 121-130, 2004
[17] M. Vlada, Birotică: Tehnologii multimedia, Editura Universităţii din Bucureşti, ISBN 973-575-847-4,
2004
[18] I. Popescu , Al. Alecu, L. Velcescu, G. Florea, Programare avansată în Oracle9i, Editura Tehnică
Bucureşti, ISBN 973-31-2208-4, 2004
1.8 Apariția și evoluția limbajelor de programare

MOTTO: „A Whole New Mind: Why Right-Brainers Will Rule the Future”
Paul Freiberger and Michael Swaine

Dacă Matematica nu ar fi fost, „nimic nu ar fi fost”:


nici roata şi nici calculatorul, nici tiparul şi nici telefonul,
nici Informatica şi nici Cibernetica.
Dar, faţă de toate aceste entităţi materiale inventate de om,
Matematica îl ajută pe om să gândească toată viaţa,
să creeze şi să-şi imagineze, să iubească natura şi pe semenii săi,
să fie emotiv şi curajos, să fie consecvent şi ordonat, să viseze şi să fie fericit.
(M. Vlada, 2010)

Computing: Computer system = Hardware + Software

Marin Vlada,
Universitatea din București

Complexitatea aplicaţiilor de utilizare a calculatorului, în diverse domenii de


activitate, a determinat perfecţionarea atât a sistemelor de calcul (computer system),
sistemelor de operare şi limbajelor de programare, cât şi a tehnologiilor şi platformelor.
Au fost concepute şi elaborate noi calculatoare și dispozitive/echipamante, noi sisteme de
operare, noi limbaje de programare (programming languages), noi tehnologii. Dacă în
anii ’70 inventarea şi utilizarea microprocesorului au însemnat o revoluţie în domeniul
arhitecturii calculatoarelor, în anii ’90 a fost o adevărată revoluţie atât în domeniul
reţelelor de calculatoare, cât şi în domeniile limbajelor de programare (Java şi
JavaScript) şi ale sistemelor de operare (Linux, Windows). Astfel, au apărut tehnologiile
Web. Trebuie menţionate dezvoltarea şi evoluţia limbajului C++, care în anii ’80 a
implementat şi dezvoltat modelul orientat spre obiecte (modelul programării obiectuale
are rădăcini în limbajele SmallTalk, Lisp etc.) şi programarea orientată spre obiecte
(OOP-Object Oriented Programming).

Definition. Assembler: Assembly language is the uncontested speed champion


among programming languages. An expert assembly language programmer will almost
always produce a faster program than an expert C programmer.
226 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

SISTEMUL
HARDWARE LIMBAJE

ALGORITMI

Triada Sistemul Hardware-Limbaje-Algoritmi

„Machines have so much memory today, saving space using assembly is not important. If you give
someone an inch, they’ll take a mile. Nowhere in programming does this saying have more
application than in program memory use. For the longest time, programmers were quite happy
with 4 Kbytes. Later, machines had 32 or even 64 Kilobytes. The programs filled up memory
accordingly. Today, many machines have 32 or 64 megabytes of memory installed and some
applications use it all. There are lots of technical reasons why programmers should strive to write
shorter programs, though now is not the time to go into that. Let’s just say that space is important
and programmers should strive to write programs as short as possible regardless of how much
main memory they have in their machine31.”

Exemplu de program în limbaj de asamblare:prog.asm


==================
.model small
.stack
.data
a db 00110000b
.code
start:
mov ax,@data
mov ds,ax
mov bl,01010000b
mov al,a
not al ;AL=11001111b
mov al,a
and al,bl ;AL=00010000b
mov al,a
or al,bl ;AL=01110000b
mov al,a
xor al,bl ;AL=01100000b
mov ah,4ch
int 21h
end start
==================

31
The Art of Assembly Language Programming, Spring 2008, Yale University, http://flint.cs.yale.edu/
cs422/doc/art-of-asm/pdf/ (pdf)
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 227

Definiţie. Un produs software este un rezultat/produs obţinut în urma unui proces


creativ uman, fiind un obiect/istrument utilitar, distinct şi identificabil individual ca
element virtual/logic şi care fizic există în format electronic pe un suport de memorie
magnetică/optică de tip FD (floppy disk), HD (hard disk), CD (compact disk) sau Memory
Stick (Flash memory). Formatul electronic al produsului poate reprezenta: un program ce
rezolvă anumite probleme, un sistem de operare, un compilator, un interpretor, un
program convertor, un program utilitar, un mediu de operare, un mediu de programare, un
mediu de rezolvare, o platformă, o procedură, un program editor, un generator de
programe, un program ativirus, un document HTML/PHP/ASP, un program de e-mail, un
browser etc.
La baza obţinerii produselor software se află evoluţia şi dezvoltarea limbajelor de
programare. În general, la baza evoluţiei societăţii omeneşti se află evoluţia şi dezvoltatea
cunoaşterii umane. Cunoaşterea este dependentă de limbajele cunoaşterii (M. Vlada,
CNIV 2005-2009).
Despre evoluția limbajelor de programare (programming languages32):
 „The evolution of languages: FORTRAN is a non-typed language. C is a
weakly typed language. Ada is a strongly typed language. C++ is a strongly
hyped language.” Ron Sercely.
 C++ was developed by Bjarne Stroustrup of AT&T Bell Laboratories in the
early 1980's, and is based on the C language. The name is a pun – "++" is a
syntactic construct used in C (to increment a variable), and C++ is intended
as an incremental improvement of C. Most of C is a subset of C++, so that
most C programs can be compiled (i.e. converted into a series of low-level
instructions that the computer can execute directly) using a C++ compiler.

Astăzi, există deja dezvoltat un domeniu ingineresc destinat produselor software,


şi anume ingineria software (software engineering 33). Utilizarea şi intreţinerea unui
produs sofware implică un grad mare de complexitate, acest lucru este valabil deoarece
nu există «piese de schimb» pentru un astfel de produs. Fiecare situaţie de «anomalie»
(defect, avarie etc.) indică o eroare în concepere, în proiectare, în implementare, în codul
sursa sau în procesul de transformare în cod executabil. Conform definiţiei moderne a
ingineriei software la baza elaborării unui produs software se află următoarele aspecte34:
 Metode – cunoştinţe de specialitate («know how») privind planificarea,
analiza cerinţelor, proiectarea, codificarea, testarea, utilizarea şi intreţinerea;
 Unelte – diverse tehnologii automate sau semiautomate ce oferă sprijin
pentru metode (Exemplu: CASE-Computer Aided Software Engineering);
 Proceduri – realizează secvenţele prin care se vor aplica metodele, precum şi
produsele ce execută ieşirile (rapoarte, documente, formulare etc.).

32
https://upload.wikimedia.org/wikipedia/commons/2/25/Genealogical_tree_of_programming_languages.svg
33
R. Pressman, Software Engineering. A Practitioner’s Approach, Mc-Gaw Hill, 1987.
34
I. Jurca, Programarea orientată pe obiecte în limbalul C++, Ed. Eurobit, Timişoara, 1992.
228 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Limbajele sunt instrumente ale gândirii: Gândirea algoritmică

Astăzi, limbajele (limbajele naturale, limbajele ştiinţifice/tehnice/economice şi


limbajele artificiale din domeniul calculatoarelor) sunt utilizate nu numai pentru
comunicare, ci mai ales pentru exprimarea de idei, pentru a reprezenta cunoştinţe, pentru
a explora şi prelucra cunoştinţele reprezentate şi gestionate. Limitele limbajelor privind
modul de reprezentare a cunoştinţelor, comunicarea şi explorarea cunoştinţelor,
prelucrarea şi gestionarea cunoştinţelor sunt condiţionate de caracteristicile fiecărui
limbaj: alfabet, sintaxă, semantică, construcţii lexicale, concepte şi termeni, structuri etc.
În actul de procesare un limbaj foloseşte termenul de “entitate” prin intermediul căruia
se realizează procesarea şi cunoaştere.

Definiţie. Un limbaj de cunoaştere este sistemul virtual/logic


L = (V, Sin, Sem, O, C, T, Tc) ,
unde
V = vocabular/alfabet, Sin = sintaxă (reguli), Sem = semantică (reguli),
O = obiecte, C = concepte / termeni, T = teorii / metode / tehnici de rezolvare,
Tc = tezaurul cunoaşterii (baza de cunoştinţe).

Limbajele cunoaşterii sunt:


 Limbajele naturale (utilizate de popoare; limbile popoarelor) – entitate=cuvânt;
construcţiile lexicale descriu stări, imagini, acţiuni etc.;
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 229

 Limbajele ştiinţifice/tehnice/economice ... (utilizate în domeniile ştiinţelor)-


entitate=cunoştinţă; studiul obiectelor şi a relaţiilor dintre obiecte în domeniile
matematică, fizică, chimie, informatică, biologie, economie etc.;
 Limbajele artificiale (utilizate în domeniul calculatoarelor) formate din:
 Limbaje de programare procedurală – entitate=locaţie de memorie
 Limbaje de programare fucţională – entitate=element de listă
 Limbaje de programare logică – entitate=obiect / clauză Horn
 Limbaje de programare obiectuala – entitate=obiect
 Limbaje de programare Web – entitate=elemente multimedia
 Limbaje pentru baze de date – entitate=înregistrare
 Limbaje pentru grafica pe calculator – entitate=obiect grafic
 Limbaje pentru modelare-simulare – entitate=eveniment
 Limbaje pentru sisteme de operare – entitate=proces
 Limbaje pentru Inteligenţa Artificială – entitate=cunoştinţă
Analog, generațiilor de calculatoare, există 5 generații de limbaje pentru
computer caracterizate de următoarele:
 Prima generație – limbaj mașină binar/octal (machine language).
 A II-a generație – limbaje de asamblare (low-level programming languages: assembly
language)
 A III-a generație – limbaje de programare de nivel inalt (high-level programming
languages : FORTRAN, COBOL, C, Pascal etc.)
 A IV-a generație – limbaje de programare specifice unor domenii (domain-specific
high-level programming languages: dBASE, FoxPro, SQL, TeX, LISP, PROLOG
etc.)
 A V-a generație – limbaje de programare orientate obiect OOP și pe tehnologii Web
(C++, Visual Basic, Java, Oracle, MySQL, PHP, ASP, Python etc.)

Nivelele limbajelor în relaţia Utilizator-Calculator

În domeniul limbajelor de programare evoluţia, dezvoltarea şi diversitatea


limbajelor au fost cele mai dinamice. În anii ’80 existau peste 250 de limbaje de
programare, unele au rezistat până astăzi, iar altele au dispărut sau s-au adaptat având în
vedere factorii care definesc «criza software»: complexitatea, productivitatea, calitatea,
230 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

fiabilitatea, portabilitatea, independenţa de echipament, mentenabilitatea şi


extensibilitatea. Diverse paradigme de inginerie software au fost propuse şi aplicate în
evoluţia elaborării de produse software: metodologia Warnier, metodologia OOP etc.
Evoluţia şi dezvoltarea limbajelor de programare de nivel înalt (Fortan, Basic,
Cobol, Algol, Pascal, Ada, Simula, Smalltalk, dBase, Foxpro, SQL, Oracle, Modula-2,
C++, Lisp, Prolog, Java etc.) au determinat şi oferit metode, medii, tehnici şi instrumente
pentru proiectarea, implementarea şi elaborarea aplicaţiilor software în vederea procesării
cunoaşterii. În ultimii 20 de ani s-a impus metoda orientării pe obiecte (OOP) ca
revoluţie ştiinţifică. Paradigme ale programării şi suportul lor în limbajele de programare
sunt: modularea şi structurarea în proiectare, structuri de control, încapsularea datelor,
abstractizarea datelor, mecanisme de apel (apelul funcţiilor virtuale, apelul metodelor),
mecanisme de clase şi obiecte (moştenirea multiplă, constructori şi destructori) etc.

Schema „Evoluția / Dezvoltarea Informaticii”


ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 231

În etapa actuală de dezvoltare ştiinţifică şi tehnică, rezolvarea unei probleme din


diverse domenii (matematică, fizică, chimie, informatică etc.) reprezintă o activitate de
creaţie, un raţionament prin construirea, generarea, descrierea următoarelor aspecte,
înainte de un proces de execuţie (realizat de un calculator/o maşină de calcul):
 proces demonstrativ (demonstraţia) care să arate existenţa unei soluţii sau a mai
multor soluţii şi/sau să determine efectiv soluţiile exacte;
 proces computaţional (algoritmul) care să codifice/modeleze un proces
demonstrativ, o metodă sau o tehnică de rezolvare în scopul determinării
(eventual aproximative) a soluţiilor exacte.

Relaţiile Modelare-Limbaj-Procesare

Se poate observa că termenul de „limbaj” este foarte important în aceeastă relaţie.


Din experienţa celor care au utilizat calculatorul şi diverse tehnologii de prelucrare a
informaţiilor şi cunoştinţelor, se poate conchide faptul că sunt necesare cunoştinţe şi
experienţă în utilizarea diverselor „limbaje” pentru rezolvarea problemelor folosind
calculatorul.

Bibliografie
[1] Roger E. Bohn, Measuring and Managing Technological Knowledge, p.295-314 in Dale Neef a.o., Eds,
The Economic Impact of knowledge, Butterworth-Heinemann, Boston, 1998.
[2] O’Brien, J.A., Management Information Systems. Managing Information Technology in the
Internetworked Entreprise, McGraw-Hill, Boston, 1999
[3] Boar, B.,H., The Art of Strategic Planning for Information Technologies, 2nd edition, John Wiley & Sons,
Inc., New York, 2001
[4] Tudorel Fătu, Alexandru Ţugui, Ce urmează după societatea global informaţională ?, Studii, Institutul de
Cercetări pentru Inteligenţa Artificială, Academia Română, www.racai.ro
[5] http://fp6.cordis.lu/fp6/home.cfm , http://fp6.cordis.lu/fp7/ , http://www.cordis.lu/ist/
[6] http://www.intuition-eunetwork.net
[7] M. Vlada, „Supremaţia limbajelor în domeniul procesării informaţiilor şi cunoştinţelor”, Sesiunea de
comunicări ştiinţifice cu participare internaţională, “Provocări la adresa securităţii şi strategiei la începutul
secolului XXI”, Secţiunea E-Learning şi Software Educaţional, UNAP, 14 -15 aprilie 2005, Editura
Universităţii Naţionale de Apărare, Bucureşti, pp. 165-178, 2005.
232 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

[8] M. Vlada, M. D. Popovici, “Realitatea Virtuală (Virtual Reality), tehnologie modernă a informaticii
aplicate”, CNIV-2004, Noi tehnologii de E-Learning, Conferinţa Naţională de Învăţământ Virtual, Software
Educaţional, Ediţia a II-a, 29-31 octombrie 2004, Editura Universităţii din Bucureşti, 2004 (Editori: I.
Chiţescu, H. Georgescu, V. Preda, I. Văduva, I. Tomescu, M. Vlada, G. Pripoae) (ISBN 973-575-947-0)
(http://fmi.unibuc.ro/ro/cniv_2004/), pp. 11-28, 2004
[9] M. Vlada, “Abordarea modernă a conceptului de algoritm”, CNIV-2004, Noi tehnologii de E-Learning,
Conferinţa Naţională de Învăţământ Virtual, Software Educaţional, Ediţia a II-a, 29-31 octombrie 2004,
Editura Universităţii din Bucureşti, (Editori: I. Chiţescu, H. Georgescu, V. Preda, I. Văduva, I. Tomescu, M.
Vlada, G. Pripoae) (ISBN 973-575-947-0) (http://fmi.unibuc.ro/ro/cniv_2004/), pp. 231-240, 2004
[10] M. Vlada, “Complexity of the Unification Algorithms”, Analele Universităţii din Bucureşti, Special
Issue, PROCEEDINGS of the Anual Meeting of the Faculty of Matematics, 28-30 nov. 1996, matematică-
infomatică, vol. 46, anul XLVI/1997, pag. 137-145.
[11] M. Vlada, Rezolvarea problemelor folosind Eureka, software educaţional, www.unibuc.ro/eBooks/
informatica/eureka/, Universitatea din Bucuresti, 2003.
[12] M. Vlada, Birotică: Tehnologii multimedia, Editura Universităţii din Bucureşti, ISBN 973-575-847-4,
2004.

Conceptele de Proiect şi Management, concepte ce au revoluţionat ştinţele,


cultura şi dezvoltarea societăţii umane

Marin Vlada,
Universitatea din București

MOTTO:
„Cea mai bună modalitate de a prezice viitorul este să îl creezi tu însuţi”
Peter Drucker

Analog conceptului de Algoritm (ce a revoluţional gândirea şi ştiinţa calculului) conceptul


de Proiect a avut aceeaşi evoluţie spectaculoasă şi un impact chiar mai mare asupra tuturor
activităţilor umane. Spre exempu, proiectul Google (Eric Schmidt, Sergey Brin şi Larry Page,
2008: http://ro.wikipedia.org/wiki/Google) poate fi considerat cel mai mare proiect din ultimii ‘50
de ani, dacă nu chiar din ultimii 100 de ani, având în vedere viziunea, impactul şi implementarea
acestui grandios proiect. Pentru a înţelege filosofia acestui proiect trebuie să se studieze multe
etape şi rezultate, să se facă multe comparaţii şi să se exprime diverse schimbări şi structuri. De
aceea, să amintim definiţia sumară dată de DEX conceputului de proiect:
„PROIÉCT, proiecte, s.n. 1. Plan sau intenţie de a întreprinde ceva, de a organiza, de a
face un lucru. 2. Prima formă a unui plan (economic, social, financiar etc.), care urmează să fie
discutat și aprobat pentru a primi un caracter oficial și a fi pus în aplicare. – Proiect de lege = text
provizoriu al unei legi, care urmează să fie supus dezbaterii organului legiuitor (şi opiniei publice).
3. Lucrare tehnică întocmită pe baza unei teme date, care cuprinde calculele tehnico-economice,
desenele, instrucțiunile etc. necesare executării unei construcții, unei mașini etc. – Proiect de
diplomă = lucrare cu caracter tehnic, aplicativ, pe baza căreia studenții institutelor politehnice,
institutelor de arhitectură etc. obțin diploma la sfârșitul studiilor. [Pr.: pro-iect] – Din germ.
Projekt, lat. projectus.”
Este clar că descrierile din aceste definiţii sunt complet depăşite de realităţile diverse ce
se regăsesc în lumea noastră. De asemenea, specialiştii şi experţii nu pot separa conceptul de
Proiect, de cel de Management, iar un management eficient şi oportun nu se poate realiza fără
tehnologii IT şi fără sisteme de calcul (calculatoare) performante. De aceea, se explică faptul că
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 233

dezvoltarea proiectelor şi a managementului acestora s-a realizat după anul 1950 (mijlocul
secolulul XX) când s-a extins utilizarea calculatorului în multe domenii de activitate.

Istoria şi Filosofia Google


Din motivele de mai sus, revenim la proiectul/filosofia GOOGLE:
 Ideea unei tehnologii de căutare în domeniul stocărilor Web de pe Internet, s-a cristalizat în
anul 1996 cănd doi studenţi (candidaţi PhD) de la Universitatea Stanford din California lucrau
la un proiect de cercetare. Este vorba de Larry Page (U.S.) şi Sergey Brin (Rusia) ce au
conceput aşa-numitul algoritm / noua tehnologie „PageRank” ( „PageRank is a link analysis
algorithm, named after Larry Page, used by the Google Internet search engine that assigns a
numerical weighting to each element of a hyperlinked set of documents, such as the World
Wide Web, with the purpose of "measuring" its relative importance within the set. The
algorithm may be applied to any collection of entities with reciprocal quotations and
references. The numerical weight that it assigns to any given element E is referred to as the
PageRank of E and denoted by PR(E).”);
 În anul 1998, cei doi fondatori Google au primit sprijin din partea lui Andy Bechtolsheim, co-
fondator al companiei Sun Microsystems;
 Produse şi servicii – Motor de căutare (Search engine), Google Page Creator, Google Blog,
Publicitate, Google Search Appliance, Google Books, Google Maps, Google Earth, Google
Translate;
 În plus faţă de serviciile standard de căutare Web, Google a lansat de-a lungul anilor o serie de
instrumente pentru productivitate online. Gmail, un serviciu de webmail gratuit oferit de
Google, a fost lansat ca un program de beta-invitaţie în anul 2004 şi a devenit disponibil pentru
publicul larg în anul 2007.

1998, Prima pagina Google Primul server Google

Istoria şi Filosofia proiectului Gutenberg

Proiectul / filosofia Gutenberg (http://www.gutenberg.org) – Free eBooks:


 Project Gutenberg este prima şi cea mai mare colecţie de cărţi electronice gratuite
(eBooks). Fondatorul proiectului Gutenberg Michael Hart (din anul 1971) continuă să
inspire crearea de cărţi electronice şi de noi tehnologii in acest domeniu;
 „The mission of Project Gutenberg is simple: To encourage the creation and distribution
of eBooks” by Michael S. Hart June 20, 2004;
 „Project Gutenberg began in 1971 when Michael Hart was given an operator's account
with $ 100,000,000 of computer time in it by the operators of the Xerox Sigma V
mainframe at the Materials Research Lab at the University of Illinois”;
234 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 „Michael just happened "to be at the right place at the right time" at the time there was
more computer time than people knew what to do with, and those operators were
encouraged to do whatever they wanted with that fortune in "spare time" in the hopes
they would learn more for their job proficiency”;
 Over 33,000 free ebooks to read on your PC, iPad, Kindle, Nook, Sony Reader, iPhone,
iPod Touch, Android or other mobile or cell phone;
 Volunteering and The Project Gutenberg Wiki.

Alte proiecte importante din istorie:


 Proiectul Genomul uman, ce a descifrat şi a cartografiat
genomul uman;
 Proiectul Manhattan, ce a dezvoltat prima armă nucleară;
 Proiectul anti-rachetă Polaris, ce a dezvoltat un sistem de
control ICBM;
 Proiectul Apollo, ce a realizat aterizarea oameniilor pe Lună;
 Proiectul bombei atomice realizat de Rusia;
 Proiecte şi programe sovietice pentru spaţiul cosmic.

Despre clasificarea şi diversitatea proiectelor


MOTTO: „Managementul presupune atingerea scopurilor
organizaţionale printr-o conducereefectivă şi
eficentă ca urmare a planificării, organizării,
coordonării şi controlului resurselor organizaţiei.”
(Richard L. Draft).

Sistemele de calcul (calculatorul modern) reprezintă un exemplu concludent şi adecvat


pentru a înţelege diversitatea şi evoluția conceptului de Proiect. În particular, sistemele de operare
pe baza cărora funcţionează calculatorul pot fi considerate rezultatul unor proiecte. Nu
întâmplător, Cibernetica (ştiinţa sistemelor) a apărut şi s-a dezvoltat odată cu calculatorul şi
dezvoltarea Informaticii.

PROIECT vs. SISTEM vs. PROGRAM vs. LIMBAJE vs. ALGORITM

Definiţii:
 „Un proiect reprezintă un grup de activităţi ce trebuie realizate într-o secvenţă logică,
pentru a atinge un set de obiective prestabilite, formulate de client.” Comisia Europeană.
 „Proiectul este un demers specific care permite structurarea metodică şi progresivă a
realităţii ce va veni. Proiectul este definit şi executat pentru a da un răspuns la nevoile
utilizatorului sau ale unui client, şi implică definirea unui obiectiv şi a unor activităţi de
întreprins, folosind resursele date.” Standardul francez X50 – 105.
 „Un proiect trebuie să aibă următoarele trăsături: să fie nerepetitiv; să aibă o noutate din
punct de vedere managerial; să implice risc şi incertitudine; să aibă rezultate impuse, o
calitate determinată, parametrii de siguranţă; costurile sunt clar menţionate iar resursele
impuse; realizarea se face printr-o echipă constituită în mod special.” Standardul britanic
BS6079.
 „Un proiect este un efort temporar asumat pentru a realiza un produs, un serviciu sau un
rezultat unic.” PMBOK Guide.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 235

Clasificarea proiectelor

După amploarea obiectivelor: organizaţionale, locale, regionale, naţionale, internaţionale.


După natura proiectelor: proiecte sociale, proiecte culturale, proiecte economice (proiecte de
construcţii, de inginerie, de cercetare-dezvoltare etc.), proiecte artistice, proiecte ecologice,
proiecte de management.

Elaborarea, realizarea şi implementarea unui proiect

Etape: Iniţiere  Definire  Elaborare  Dezvoltare  Implementare  Testare/Încheiere.

Project management şi program management


Managementul proiectului este ansamblu de activităţi pentru planificare, organizare,
asigurarea şi gestionarea resurselor în scopul finalizării cu succes a obiectivelor specifice
proiectului. Este uneori confundat cu gestionarea programului, cu toate acestea, din punct de
vedere tehnic este de fapt o construcţie de nivel superior: coordonarea tuturor relaţiilor în cadrul
proiectului.

Funcţiile managementului: Planificare, Organizare, Conducere, Control.

Cronologie, repere istorice:


 Henry Gantt (1861-1919) – întemeietorul managementului de proiect (numit şi părintele
planificării şi al tehnicilor de control), a studiat ordinea operaţiilor în muncă fiind
cunoscut pentru „diagrama Gantt”, tehnică de bază în Managementul de proiect;
 Anii 1950 – începutul erei Managementului de proiect modern (înainte de anii 1950,
proiectele erau coordonate utilizându-se Diagrame Gantt şi diverse tehnici şi instrumente
informale);
 1955 – metoda probabilistică PERT (Program Evaluation and Review Technique) către
Booz-Allen & Hamilton pentru Marina Militară a Statelor Unite în cadrul proiectului
Polaris (Polaris este o rachetă balistică cu lansare de pe submarin);
 1957 – „Metoda drumului critic” (CPM) dezvoltată de către DuPont în colaborare cu
Remington Rand Corboration pentru coordonarea proiectelor de întreţinere a uzinelor;
 1967 – ia naştere, în SUA, Institutul Managementului de proiect (Project Management
Institute – PMI). Premisa acestui institut este aceea că tehnicile şi instrumentele utilizate
de către managementul de proiect sunt aceleaşi indiferent de industria în cadrul căreia
sunt utilizate;
 1967 – s-a înfiinţat, în Europa, Asociaţia Internaţională pentru Managementul de proiect
(The International Project Management Association – IPMA)
 1981 – PMI creează „A Guide to the Project Management. Body of Knowledge” –
PMBOK Guide).

Proiecte revoluţionare

Deoarece am folosit cuvintele revoluţionar, impact, pentru argumentare, vom descrie 3


exemple.

I. Dezvoltarea limbajele de programare


Limbajele de programare (Programming Languages). Evoluţia şi dinamica conceptelor de
Algoritm şi Proiect au contribuit la inventarea, conceperea, elaborarea, implementarea şi utilizarea
limbajelor de programare ce sunt limbaje artificiale (limbajele sunt instrumente ale gândirii, vezi
Limbaje și Cunoaștere vs Modelare și Procesare, CNIV 2005, http://marinvlada.googlepages.
236 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

com/Modelare_vlada.pdf).
Este vorba de peste 2500 de limbaje de programare vechi şi noi. (A Chronology of
Influential Languages). Complexitatea si varietatea este dată de schema ce reprezintă evoluția
limbajelor de programare (arborele genealogic). A History of Programming Languages
(Programming paradigm): 1957 FORTRAN • 1958 ALGOL • 1960 LISP • 1960 COBOL • 1962
APL • 1962 SIMULA • 1964 BASIC • 1964 PL/I • 1966 ISWIM • 1970 Prolog • 1972 C • 1975
Pascal • 1975 Scheme • 1977 OPS5 • 1978 CSP • 1978 FP • 1980 dBASE II • 1983 Smalltalk-80 •
1983 Ada • 1983 Parlog • 1984 Standard ML • 1986 C++ • 1986 CLP(R) • 1986 Eiffel • 1988
CLOS • 1988 Mathematica • 1988 Oberon • 1989 HTML • 1990 Haskell • 1994 Perl 5 • 1995 Java,
Delphi • 1997 JavaScript, PHP • 2000 C# ...
Sursa: Maintained by Bill Kinnersley, University of Kansas,
http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm
Arborele genealogic (Limbaje de programare):
http://upload.wikimedia.org/wikipedia/commons/2/25/Genealogical_tree_of_programmin
g_languages.svg.

Observaţii:
 Ca rezultat al unui „proiect” de cercetare pentru domeniul militar, savantul John von
Neumann a conceput arhitectura unui calculator electronic (arhitectura von Neumann din
1945, raport de cercetare) ce este valabilă şi astăzi. Cu acest model de arhitectură a
început aventura construirii calculatoarelor moderne:
a) componentele de bază ale unui calculator: memorie, procesor, sisteme input/output;
b) limbaje de programare şi sisteme de operare;
c) algoritmi de calcul şi programe de aplicaţii.
 S-a realizat o competiţie între componenta hardware (partea tehnologică) şi componenta
software (partea logică) a calculatoarelor. Această evoluţie şi dezvoltare se poate înţelege
doar dacă se scoate în evidenţă evoluţia conceptului de Algoritm şi inventarea unei noi
abordări privind activitatea de cunoaştere a omului în aventura sa către evoluţie şi
dezvoltare: planificare, organizare, activităţi, control, verificare, toate acestea
reprezentând activitatea omului pe baza de Proiecte. 1950 – se inventează "diagrama
Gantt" concepută de Henry Gantt – întemeietorul managementului de proiect şi
considerat părintele planificării şi al tehnicilor de control.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 237

Sursa: Vlada, M., Conceptul de algoritm-abordare modernă, Gazeta de informatică, vol. 13/ 2 si
3, 6 si 7 pp. 25-30, pp. 35-39, pag. 43-48, pag. 42-48 Agora, Cluj Napoca, 2003.
http://www.ginfo.ro/revista/13_2/babel.pdf, http://www.ginfo.ro/revista/13_3/babel.pdf
http://www.ginfo.ro/revista/13_6/babel.pdf, http://www.ginfo.ro/revista/13_7/babel.pdf

II. Proiectul japonez (1981-1990) și proiectele europene (1990-2013)

Lansarea Proiectului japonez în anul 1981

Deceniul 8 al secolului XX-lea a fost unul al marilor succese în domeniul Inteligenţei


artificiale, al dezvoltării reţelelor de calculatoare şi al răspândirii limbajelor de programare
moderne.
Lansarea Proiectului japonez în anul 1981 pentru construirea calculatorului de generaţia a
V-a la începutul anilor ’90; acesta prevedea o revoluţie în domeniul calculatoarelor prin aşa-
numitele sisteme de procesare a informaţiei de cunoaştere
(KIPS – Knowledge Information Processing Systems);
având finanţare guvernamentală de 1 miliard $ şi
colaborarea mai multor firme japoneze importante, s-a
înfiinţat un institut special ICOT (Institute for New
Generation Computer Technology), care a editat revista
internaţională New Generation Computing
(www.ohmsha.co.jp/ngc), astăzi fiind una dintre cele mai
prestigioase reviste din lume; proiectul a avut un impact
deosebit pe plan mundial. Începe să se predea Inteligenţa
Artificială ca disciplină a Informaticii în învăţământul
superior (în România, în anul 1986).

Proiecte mondiale
Deceniul 9 al secolului XX-lea a fost unul al marilor realizări în domeniul Tehnologiei
informaţiei şi comunicaţiei (IT&C) prin dezvoltarea şi răspândirea tehnologiilor WEB şi reţelei
Internet, perfecţionarea sistemelor de operare şi a mediilor de programare:
 apariţia sistemului de operare Linux – În anul 1992 apare primul sistem de operare
„free software” cu facilităţi deosebite pentru reţeaua Internet care utilizează protocoale de
comunicaţii (TC/IP, FTP, IPX etc) pentru serviciile: poşta electronică (E-Mail), zone de
informare (WWW, Gopher, FTP), Newsreader (cititor de ştiri); apariţia şi răspândirea
site-urilor Web;
 apariţia tehnologiei Java – În anul 1995 este lansat mediul de programare Java ce oferă
suport dezvoltării de aplicaţii distribuite, independente de platformă; produs software
evoluat al firmei Sun Microsystems moşteneşte conceptele de programare obiectuală de la
limbajele C++, SmallTalk, Lisp;
 lansarea ca sistem de operare a sistemului Windows – În anul 1995 a apărut sistemul
de operare Windows 95 urmat de versiunile ulterioare 98, 2000; pentru reţelele de
calculatoare a apărut începând cu anul 1992 Windows NT Workstation/Server; s-au
dezvoltat sistemele de operare Netware, OS/2;
 perfecţionarea şi utilizarea pe scară largă a pachetului Microsoft Office, mediile de
programe aplicative Word, Excel, Access, Outlook, Power Point (1998);
 realizări hardware-software-platforme-aplicaţii – Proiectare circuite integrate 3D,
componente optice, arhitecturi paralele pentru prelucrarea inferenţelor, reţele din fibra
optică de mare capacitate, reţele neuronale; sisteme de operare cu interfaţă evoluată cu
utilizatorul, limbaje concurente, programare funcţională, prelucrare simbolică (limbaje
238 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

naturale, recunoaşterea formelor: imagini/voce), Baze de date-Dbase, Foxpro, Oracle,


Prolog, baze de cunoştinţe, sisteme expert evoluate, CAD, CAM, CAE, tehnologii
multimedia, Realitate Virtuală, Tehnologii Web.

Proiecte europene de cercetare-dezvoltare (1990-2020)


 Societatea Informaţiei Globale – iniţiativă lansată în anul 1994 la Summit-ul şefilor de
state şi de guvern ai ţărilor G7 (azi, există G8, prin aderarea Rusiei), desfăşurat la Napoli;
la „Conferinţa pentru Societatea Informaţională” de la Bruxelles din anul 1995, s-a
analizat implementarea unei infrastructuri informaţionale competitive la nivel mondial.
 Comunicaţiile în Societatea Informaţională – Conferinţă desfăşurată în anul 1997 în
Estonia la care au participat 19 ţări;
 Proiectele Pilot G8 – În anul 1998, grupul G7, la care s-a alăturat şi Rusia, a lansat
Proiectele Pilot pentru dezvoltarea Societăţii Informaţionale în domeniile educaţiei,
culturii, comerţului, mediului înconjurător, sănătăţii şi administraţiei publice;
 EURIDYCE – Technologies de In’formation et de la communication dans les systemes
educatifs en Europe, Paris, 2000 (www.euridyce.org)
 eEurope şi eEurope+ – Programe de acţiune lansate în anul 2001 la nivel european
pentru ţările UE, dar şi pentru ţările în curs de aderare la UE (eEurope+)
(www.europa.eu.int) ;
 Global Tera byte Recherche Network (GTREN) – Program de acţiune lansat în 2002
pentru dezvoltarea infrastructurii de comunicaţii şi realizarea unei reţele Internet mai
rapidă, mai sigură şi mai eficientă;
 eEurope 2005 – Lansat în anul 2002, programul de acţiune „An Information Society for
All” are două obiective majore: stimularea serviciilor, aplicaţiilor şi conţinutul informaţiei
electronice, şi dezvoltarea infrastructurii în bandă largă şi creşterea securităţii informaţiei
şi a reţelelor;
 Sixth Framework Programme (FP6) (2002-2006) – Programul cadru 6 al Uniunii
Europene (www.cordis.lu/fp6/), lansat în anul 2002 este unul dintre cele mai complexe
programe de cercetare, dezvoltare şi inovare. FP6 lansat pentru perioada 2002-2006 are
direcţia 2 de prioritate: Information Society Technologies (IST – http://cordis.
europa.eu/fp6)
 Seventh Framework Programme (FP7) (2007-2013) – Programul FP7 (http://www.
cordis.lu/fp7/) pentru perioada 2007-2011 cu un buget de EUR 72 726 million -
http://cordis.europa.eu/fp7/home_en.html
 Horizon 2020 – EU Framework Programme for Research and Innovation (2014-220)
– programul UE pentru cercetare si inovare, https://ec.europa.eu/programmes/
horizon2020/

III. Proiectul Linux – 1991

Notă de start: „Linux este un sistem de operare care a fost iniţial creat ca un
hobby de către un tânăr student, Linus Torvalds, la Universitatea din
Helsinki, în Finlanda. Linus a avut un interes în Minix, un mic sistem de
operare derivat din UNIX, şi a decis să dezvolte un sistem care sa depăşeasca
standardele Minix. Şi-a început activitatea sa în 1991, când a lansat versiunea
0.02 şi a lucrat în mod constant până în 1994, când versiunea 1.0 a kernel-
ului Linux a fost lansată. ... îşi continuă călătoria în noul milenium cu acelaşi
entuziasm cu care a început într-o zi frumoasă în 1991”. Comentariu
(www.linux.ro).
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 239

 Linus Torvalds: The 100 Most Influential Inventors of All Time as one of the most important
and influential inventors.
 1991: studentul Linus Torvalds versus profesor Andrew Tanenbaum + open source.
 Alte proiecte – www.apache.org, http://fedoraproject.org, www.ubuntu.com.
 Software Projects (The Apache Software Foundation Projects).

Sistemul de operare Linux a apărut din dorinţa unui student finlandez, Linus Torvalds, de a
scrie un sistem de operare multitasking pentru microprocesorul Intel 386. Aceasta se întâmpla în
vara anului 1991 când îşi cumpăse primul său calculator cu microprocesor 386 şi trebuia să
transfere nişte fişiere prin reţea, iar sistemul MS-DOS nu era tocmai mediul nimerit pentru
această operaţie.
La baza elaborării sistemului Linux se află sistemul de operare Unix care oferă multe facilităţi
privind reţelele de calculatoare. Sistemul Linux a preluat aceste facilităţi şi a adăugat altele noi. O
altă idee deosebită în elaborarea sistemului Linux a fost aceea că dezvoltarea sistemului a fost
posibilă prin contribuţiile aduse de mii de programatori din întreaga lume care au utilizat mediul
Internet pentru a dialoga prin grupuri de ştiri (newsgroups) în vederea transmiterii de informaţii şi
rezultate. Aceasta a fost o premieră mondială în elaborarea unui proiect.
Un rol important în dezvoltarea sistemului Linux îl are sistemul Internet, fără de care miracolul
Linux nu era posibil. Comunicarea permanentă şi rapidă a permis cooperarea între programatori
entuziaşti care s-au dedicat proiectului iniţiat de Linus Torvalds.
Planul iniţial (nucleul – Kernel) al proiectului a fost:
 scrierea unui driver de disk;
 conceperea unui sistem de fişiere pentru a citi şi scrie fişiere în sistemul central Minix
(sistem de tip Unix creat de Andrew Tannenbaum-Olanda);
 scrierea de drivere pentru diverse periferice.

Notă 1: „The Apache Software Foundation provides support for the Apache community of open-
source software projects. The Apache projects are characterized by a collaborative, consensus
based development process, an open and pragmatic software license, and a desire to create high
quality software that leads the way in its field”. (www.apache.org).

Notă 2: The Apache HTTP Server Project is a collaborative software development effort aimed at
creating a robust, commercial-grade, featureful, and freely-available source code implementation
of an HTTP (Web) server. In February of 1995, the most popular server software on the Web was
the public domain HTTP daemon developed by Rob McCool at the National Center for
Supercomputing Applications, University of Illinois, Urbana-Champaign. However, development
of that httpd had stalled after Rob left NCSA in mid-1994, and many webmasters had developed
their own extensions and bug fixes that were in need of a common distribution. –
http://httpd.apache.org.

Bibliografie
[1] Bill Kinnersley, University of Kansas:
http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm
[2] Neal Ziring, Dictionary of Programming Languages (Dictionary and script maintained by Neal Ziring):
http://cgibin.erols.com/ziring/cgi-bin/cep/cep.pl
[3] Maureen Sprankle and Jim Hubbard, Ploblem Solving and Programming Concepts, Pearson –
Prentice Hall, 2009, 8th ed.
[4] Google, http://en.wikipedia.org/wiki/Google
[5] Tehnologia PageRank, http://en.wikipedia.org/wiki/PageRank
[6] Proiectul Gutenberg, http://www.gutenberg.org
240 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

[7] R. Pressman, Software Engineering. A Practitioner’s Approach, Mc-Gaw Hill, 1987


[8] M. Vlada, Gândirea algoritmică – o filosofie modernă a matematicii şi informaticii, CNIV-2003, Noi
tehnologii de E-Learning, Conferinţa Naţională de Învăţământ Virtual, Software Educaţional, Ediţia I,
24-26 octombrie 2003, Facultatea de Matematică şi Informatică, Universitatea din Bucureşti
(http://fmi.unibuc.ro/ro/cniv_2003/)
[9] M. Vlada, Abordarea modernă a conceptului de algoritm, CNIV-2004, Noi tehnologii de E-Learning,
Conferinţa Naţională de Învăţământ Virtual, Software Educaţional, Ediţia a II-a, 29-31 octombrie 2004,
Facultatea de Matematică şi Informatică, Universitatea din Bucureşti (http://fmi.unibuc.ro/
ro/cniv_2004/)
[10] M. Vlada, Limbaje şi Cunoastere versus Modelare şi Procesare, CNIV-2005, Virtual Learning-Virtual
Reality, Conferinţa Naţională de Învăţământ Virtual, Software Educaţional, Ediţia a III-a, 28-30
octombrie 2005, Editura Universitatii din Bucureşti, 2005 (Editori: I. Chitescu, H. Georgescu, V. Preda,
I. Vaduva, I. Tomescu, M. Vlada, G. Pripoae) (ISBN 973-737-097-X) (http://fmi.unibuc.ro/ro/
cniv_2005/) , pag. 205-212
[11] M. Vlada, Tehnologiile societăţii informaţionale, CNIV-2005, Virtual Learning-Virtual Reality,
Conferinţa Naţională de Învăţământ Virtual, Software Educaţional, Software şi Management
Educaţional, Ediţia a III-a, 28-30 octombrie 2005, Editura Universitatii din Bucureşti, 2005 (Editori: I.
Chitescu, H. Georgescu, V. Preda, I. Vaduva, I. Tomescu, M. Vlada, G. Pripoae) (ISBN 973-737-097-X)
(http://fmi.unibuc.ro/ro/cniv_2005/), pag. 19-32
[12] M. Vlada, Blog – http://mvlada.blogspot.com, Februarie 2010
http://mvlada.blogspot.com/2010/02/conceptele-de-algoritm-si-proiect.html
[13] M. Vlada, Conceptul de algoritm-abordare modernă, Ginfo, 2003,
http://www.ginfo.ro/revista/13_2/babel.pdf
[14] M. Vlada, Eureka- rezolvitor de probleme, Ginfo, 2002, http://www.ginfo.ro/revista/12_7/babel2.pdf

Utilizarea calculatorului și rezolvarea problemelor

Marin Vlada,
Universitatea din București

Competenţa şi experienţa în rezolvarea problemelor se pot obţine doar dacă


permanent se are în vedere interdependenţa Sistem de calcul-Algoritmică-Programare, şi
dacă se întreprind eforturi pentru însuşirea de noi cunoştinţe şi pentru cunoaşterea
corespunzătoare a tuturor aspectelor privind modelul fizic, respectiv modelul
virtual.[13,14]
Întreaga activitate de cercetare şi elaborare de software din domeniul Tehnologiei
Informaţiei este determinată de inventarea, conceperea, elaborarea, testarea, şi
implementarea de algoritmi performanţi şi utili. Marea diversitate a algoritmilor şi marea
aplicabilitate a acestora în toate domeniile, face ca această temă sa fie mereu actuală şi
într-o continuă schimbare şi perfecţionare.
În esenţă, rezolvarea unei probleme se va exprima printr-o codificare a
universului problemei şi a raţionamentelor pentru procesul demonstrativ. Activităţile de
laborator sunt esenţiale în activitatea de învaţare. Profesorii de informatică sunt obligaţi
să îmbine cât mai eficient orele de predare cu orele de laborator prin care de fapt se
încheie ciclul pentru rezolvarea unei probleme cu calculatorul: problema  modelul
matematic  algoritmul  programul  calculator  rezultate  verificare soluţii.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 241

Elaborarea unui produs software-Etapele unui sistem informatic


după discuția cu clientul (GInfo, 2003).

Practica rezolvării problemelor folosind un limbaj de programare a determinat


de-a lungul timpului diverse abordări în funcţie de performanţa limbajului de programare,
performanţa calculatorului şi, nu în ultimul rând, în funcţie de metodele şi tehnicile
avansate privind implementarea raţionamentelor pentru demonstraţiile corespunzătoare
problemelor. În [3] (V. Cristea, C. Giumale, E, Kalisz, Al. Păunoiu, Limbajul C standard,
Ed. Teora, Bucureşti, 1992) se arată că „un limbaj de programare acţionează ca o
interfaţă între universul real al problemei de rezolvat şi programul de rezolvare, punând
la dispoziţie o serie de elemente constructive (entităţi) şi legi de combinare a acestora,
prin care elementele problemei şi acţiunile de rezolvare pot fi reprezentate şi prelucrate
la nivelul programului. A construi un program de rezolvare a problemei înseamnă, în
esenţă, a găsi modalitatea de agregare a acestor entităţi, în aşa fel încât rezultatul-anume
programul- atunci când este executat de calculator să constituie o replică a procesului
pe care un rezolvitor uman l-ar executa pentru a rezolva problema”.
Rezolvarea teoretică a unei probleme nu garantează şi rezolvarea ei practică cu
calculatorul. În general, un limbaj de programare este menit să faciliteze rezolvarea unor
clase de probleme şi se pretează mai bine unor anumite genuri de algoritmi. Este nevoie
de experienţă în utilizarea şi cunoaşterea calculatorului, de competenţă şi intuiţie, este
nevoie de inspiraţie şi creaţie. În astfel de situatii este nevoie de cunoaşterea mai multor
limbaje de programare pentru a alege limbajul de programare adecvat pentru clasa de
probleme din care face parte problema de rezolvat. Experienţa a arătat că atunci când nu
este ales limbajul de programare corespunzător, dacă totuși se ajunge să se rezolve
problema, s-a făcut risipă de resurse timp / memorie / finanţe etc. şi, prin urmare,
eficienţa şi performanţa au avut de suferit. Algoritmul va fi codificat într-un limbaj de
programare modern: C, C++, Java, Pascal, Foxpro, Oracle, Prolog etc.
242 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Limbajele de programare au apărut cu scopul de a procesa informaţiile prin


intermediul calculatorului. Teoria limbajelor formale, teoria gramaticilor şi automatelor,
au făcut posibilă conceperea şi realizarea compilatoarelor, ce se află la baza utilizării
efective a limbajelor de programare în activitatea de procesare a informaţiilor folosind
calculatorul. De asemenea, multe limbaje de programare sunt utilizate prin intermediul
interpretoarelor şi emulatoarelor. Spre deosebire de interpretor, un emulator nu
transformă codul sursă într-un cod maşină, ci emulează execuţia unui program în cadrul
unei maşini virtuale. De exemplu, un program sursă Java (fişier text cu extensia .java) nu
se transformă în cod obiect, ci în cod de octeţi (bytecodes), salvat într-un fişier cu
extensia .class. Codul de octeţi (rezultatul compilării) generat de compilatorul Java
(javac) este interpretat de maşina virtuală Java (JVM – Java Virtual Machine), care
converteşte codul de octeţi în cod maşină. În prezent, pentru majoritatea tipurilor de
calculatoare există maşini virtuale Java, ce pot fi descărcate gratuit de la adresa Web
www.java.sun.com. De fapt, este vorba de tehnologia Java ce oferă un mediu de
programare performant destinat dezvoltării aplicaţiilor Java distribuite şi independente de
platforme (sisteme de operare). Prin utilizarea emulatorului (maşina virtuală Java) o
aplicaţie Java se poate executa pe orice platformă pentru care există un emulator Java.
Sistemele de operare (numite mai recent platforme: Windows, Unix, Linux etc.)
sunt proceduri şi programe ce reprezintă interfaţa între un utilizator şi resursele
(memorie, dispozitive) unui calculator. În fapt, procesarea informaţiilor se realizează prin
intermediul programelor scrise într-un limbaj de programare şi care se execută prin
intermediul sistemului de operare instalat pe un calculator. Complexitatea aplicaţiilor de
utilizare a calculatorului în diverse domenii de activitate, a determinat perfecţionarea, atât
a sistemelor de operare, cât şi a limbajelor de programare. Astfel, prin efortul comun al
cercetătorilor (vezi serviciul WWW, limbajul Prolog), programatorilor şi inginerilor (vezi
limbajele C, C++, Java), profesorilor (vezi LaTex), studenţilor (vezi Linux) etc., au fost
concepute şi elaborate noi sisteme de operare, noi limbaje de programare, noi tehnologii.
Aşa se explică rezultatele obţinute în domeniul reţelelor de calculatoare şi în dezvoltarea
sistemului Internet. Dezvoltarea şi răspândirea diverselor tehnologii în conceperea şi
elaborarea aplicaţiilor destinate procesării informaţiilor, precum şi utilizarea diverselor
metode de comunicare a informaţiilor, au determinat o revoluţie în domeniul
calculatoarelor cunoscută sub numele de „Tehnologia informaţiei şi comunicaţiilor”.
Dacă, în anii ’70, inventarea şi utilizarea microprocesorului au însemnat o
revoluţie în domeniul arhitecturii calculatoarelor, în anii ’90 a fost o adevărată revoluţie,
atât în domeniul reţelelor de calculatoare, cât şi în domeniile limbajelor de programare
(Java şi JavaScript) şi sistemelor de operare (Linux). Astfel, au apărut tehnologiile Web.
Trebuie menţionate dezvoltarea şi evoluţia limbajului C++ care, în anii ’80, a
implementat şi dezvoltat modelul orientat spre obiecte (modelul programării obiectuale
are rădăcini în limbajele SmallTalk, Lisp etc.) şi programarea orientată spre obiecte
(OOP-Object Oriented Programming). La începutul anilor ’90, a apărut limbajul HTML
(Hypertext Markup Language) ce a determinat răspândirea paginilor Web statice şi
dezvoltarea explozivă a sistemului WWW (World Wide Web). Necesitatea elaborării
paginilor Web dinamice a determinat apariţia diverselor tehnologii: JavaScript,
JavaServer Pages (JSP), VBScript, PHP, ASP, Macromedia Dreamweaver etc.,
tehnologii ce unele sunt destinate pentru aplicaţii server, iar altele pentru aplicaţii client.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 243

Exemple de programe în diverse limbaje de programare

Program în limbajul Pascal: Problema turnurilor din Hanoi (Metoda Divide et impera)

Enunțul problemei. Se dau n discuri de mărimi diferite, aşezate în ordine într-o stivă pe
tija A, discul cel mai mic fiind vârful, iar cel mai mare fiind baza. Folosind tija C ca tijă
intermediară, să se treacă cele n discuri de pe tija A pe tija B, ţinând seama de
următoarele restricţii:
1. întotdeauna se mută discul din vârful unei stive, deasupra vârfului altei stive;
2. nu se poate aşeza un disc mare peste unul mai mic;
Problema cere să se realizeze, printr-un număr minim de mutări, trecerea discurilor de pe
tija A pe tija B, folosind tija C.
Observație. De regulă, enunțul problemei apare greșit în diverse cărți și pe Internet, prin
faptul că cerința nu include „printr-un număr minim de mutări”.

Această problema s-a răspândit ca un joc. Acest joc a fost inventat de


matematicianul francez Edouard Lucas şi a fost comercializat ca jucărie pentru toate
vârstele încă din anul 1883. La început era confecţionat din lemn şi consta în câteva
discuri de mărimi diferite şi 3 beţişoare. Se spune că acest joc este inspirat de legenda
Turnului lui Brahma, aflat într-un templu al oraşului indian Benares. Acest turn este
format din 64 de discuri de aur, de a căror mutare se ocupă preoţii templului, respectând
regulile de mai sus. Legenda spune că atunci când turnul discurilor de aur va fi complet
transferat pe o altă tijă, templul se va prăbuşi iar lumea va lua sfârşit. Prin urmare, care
este numărul minim de mutări în cazul turnului cu 64 de discuri ?
Folosind metoda Divede et impera, dacă se notează prin Xn, numărul minim de
mutări după mutarea n, se ajunge la relația de recureanță:
Xn = Xn-1 +1 + Xn-1 = 2Xn-1 + 1,
Prin rezolvarea ecuației, în urma unei substituții, se ajunge la rezultatul Xn = 2n – 1. În
concluzie, pentru Turnul lui Brahma, numărul minim de mutări este 264 – 1, adică un
număr de 20 de cifre: 18 446 744 073 709 551 615 (se poate calcula folosind platforma
https://www.wolframalpha.com/input/?i=2%5E64-1). Dacă 264 – 1 ar fi secunde, atunci
asta ar însemna circa 584 942 417 355 de ani. Putem sta liniştiţi, sfârşitul lumii e foarte
departe: chiar dacă preoţii ar munci fără încetare şi ar face o mutare pe secundă, tot le-ar
trebui multe mii de milioane de ani pentru a termina mutările.
Rezolvarea matematică, prin obținerea relației de recurență, conduce la o
reprezentare algoritmică a problemei și, deci a aprogramului.

============= hanoi.pas
Program turnuril_Hanoi;
( metoda: Divide et impera }
var
n:integer;
a,b,c:char;

procedure Hanoi(n:integer;a,b,c:char);
begin
if n=1 then
writeln(a,b)
244 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

else
begin
Hanoi(n-1,a,c,b);
writeln(a,b);
Hanoi(n-1,c,b,a);
end;
end;

begin
write('Dati nr. de discuri n=');
readln(n);
a:='a'; b:='b'; c:='c';
Hanoi(n,a,b,c);
end.
=============
Program în limbajul FORTRAN 77 (utilizare de etichete și instrucțiuni goto): suma de
numere/valori
===========suma.f
Program SUMA-suma primelor 100 de Program SUMA-fara utilizarea
numere verctorului x
integer i integer i
real s, x(100) real s
s=0 s=0
do 1 i=1,100 do 1 i=1,100
x(i)=i s=s+i
s=s+x(i) 1 write(*,*)s
1 write(*,*)s end
end

=============
Program în limbajul FORTRAN 77 (utilizarea instrucțiunii FORMAT)
==========program tabel
! --- creeaza un tabel cu 2 coloane, primele 10 numere si patratele lor,
utilizand FORMAT
!
implicit none
integer n
100 format(1x,a21)
print 100, '*********************'
print*, '| N | N*N |'
print 100, '*********************'
do n=1,10
print 200,'| ',n,' | ',n*n,' |'
print*, '---------------------'
enddo
200 format(1x,a2,i2,a8,i3,a6)
end
==============
Program în limbajul FORTRAN 90 (utilizarea instrucțiunilor structurate), program
care rezolvă un sistem liniar de 2x2.
============program sistem
! --- rezolva un sistem liniar 2x2, de tipul
! ax+by=c
! dx+ey=f
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 245

!
implicit none
real a,b,c,d,e,f
real delta,x,y
print*,'dati a,b,c din prima ecuatie : ax+by=c '
read*,a,b,c
print*,'dati d,e,f din a doua ecuatie : dx+ey=f '
read*,d,e,f
delta=a*e-b*d
if(delta.eq.0) then
if(b*f.eq.c*e) then
print*
print*,'sistemul este compatibil nedeterminat'
else
print*
print*,'sistemul este incompatibil'
endif
else
x=(c*e-b*f)/delta
y=(a*f-c*d)/delta
print*
print*,'sistemul este compatibil determinat'
print*,'x=',x
print*,'y=',y
endif
end
=============
Sursa: Zsongor F. Gobesz, Ciprian Bacoţiu, Inițiere în programare și în limbajul FORTRAN,
Editura U.T. PRES, Cluj-Napoca, 2003, http://users.utcluj.ro/~go/doc/Gobesz,Bacotiu-Fortran.pdf

Observații:
1. Algoritmul pentru calculul sumei valorilor unui vector face parte din ABC-ul
informaticii (algoritmică+programare). Dacă s-ar face un sondaj printre
profesorii de informatică din preuniversitar, probabil că 4-5% dintre aceștia dau o
explicație corectă/matematică elevilor (de vină sunt și profesorii din universitar
ce răspund de formarea lor ca informaticieni). Pentru a calcula suma
n
S   X i , cu ajutorul unui algoritm/program, se va defini șirul de valori:
i 1

S0  0, Si  Si1  X i , i {1, ... n}.


Prin inducție matematică se poate demonstra că Sn este valoarea căutată. Relația
de recurență obținută va fi cea care va fi implementată în reprezentarea
algoritmică:
================
algoritm suma;
integer n;
real S, X(500)
begin
read n
read X(i), i=1,n
S=0;
for i=1,n do
S = S + X(i);
246 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Write S;
End
===============
(M. Vlada, http://old.unibuc.ro/prof/vlada_m/docs/res/2011maiginfo-babel-4.pdf)
2. Expresia/Relația S = S + X(i), scrisă pe tablă – în perioada 1960-1980, când
matematicieni, ingineri, economiști etc., erau începători și învățau să utilizeze
calculatorul și limbajul FORTRAN, unii dintre aceștia erau contrariați și spuneau
că este absurd să apară relația S = S + X(i), deoarece erau obisnuiți ca semnul
“=” să fie utilizat doar pentru identități și pentru ecuații.
3. Ne întrebăm dacă -în anul 2003, învățarea limbajului FORTRAN (și descrierea
algoritmilor prin scheme logice, ce au fost folosite până la apariția programării
structurate, în anii 1975-1980) a fost utilă pentru studenții, viitori ingineri!. În
anul 2003 erau nu numai și alte limbaje de programare structurată, dar și multe
programe/platforme specializate pentru calcule științificte/tehnice/economice:
MathCAD, MathLab, Excel, Wolfram etc. E adevărat că, până în anul 1980, în
domeniul meteorologiei, modelele matematice erau implementate în limbajul
FORTRAN și, pentru că erau foarte multe programe scrise în acest limbaj, a fost
mai eficient să se modifice limbajul FORTRAN pentru a se adapta la
programarea structurată (20 de ani s-a dus o “luptă” științifică pentru eliminarea
salturile din procesele de calcul – instrucțiunea goto). Astfel, a apărut
standardizarea structurată FORTRAN 90.

Programe în limbajul FORTRAN 77 (utilizarea bibliotecilor de grafică pe calculator).


Sursa: M. Vlada, A. Posea, Grafică automată în limbajul FORTRAN 77 și aplicații,
Tipografia Universității din București, Faculatea de Matematică, ediția I,II 1988, 1990.
============
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 247
248 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Program în limbajul COBOL: un exemplu simplu


=============
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILEN ASSIGN TO INPUT.
ORGANIZATION IS SEQUENTIAL.
ACCESS IS SEQUENTIAL.

DATA DIVISION.
FILE SECTION.
FD FILEN
01 NAME PIC A(25).

WORKING-STORAGE SECTION.
01 WS-STUDENT PIC A(30).
01 WS-ID PIC 9(5).

LOCAL-STORAGE SECTION.
01 LS-CLASS PIC 9(3).

LINKAGE SECTION.
01 LS-ID PIC 9(5).

PROCEDURE DIVISION.
DISPLAY 'Executing COBOL program using JCL'.
STOP RUN.

==== Procedure Division


IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC A(30).
01 WS-ID PIC 9(5) VALUE '12345'.

PROCEDURE DIVISION.
A000-FIRST-PARA.
DISPLAY 'Hello World'.
MOVE 'TutorialsPoint' TO WS-NAME.
DISPLAY "My name is : "WS-NAME.
DISPLAY "My ID is : "WS-ID.
STOP RUN.
=============
Execuție online: https://www.tutorialspoint.com/
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 249

Observație: În perioada anilor 1960-1980, munca programatorilor era măsurată prin


numărul de instrucțiuni elaborate într-o lună, dar cu deosebirea că cei ce lucrau în
FORTRAN aveau numărate toate instrucțiuni din program, în schimb, cei ce lucrau în
COBOL aveau numărate, doar instrucțiuni din secțiunile „procedure”. Probabil, se
presupunea că activitatea efectivă era dată de rezultatele muncii „gândirii algoritmice”

Program în limbajul Prolog: Problema turnurilor din Hanoi


========== hanoi.pl
mutare(0,_,_,_) :- !. % când avem 0 discuri, nimic
% (oprirea procesului de căutare)
mutare(N,A,B,C) :- N1 is N-1, mutare(N1,A,C,B),
scrie(A,B), mutare(N1,C,B,A).
scrie(X,Y) :- write([mutare,X,Y]), nl.
============
Interogare baza de cunoștințe:
?- mutare(3,a,c,b).
[mutare,a,c]
[mutare,a,b]
[mutare,c,b]
[mutare,a,c]
[mutare,b,a]
[mutare,b,c]
[mutare,a,c]
=============
Problema celor 4 specialişti
James, Tom, Bob şi Jim ştiu fiecare câte un singur și diferit limbaj de programare
(HTML, C++, Java, respectiv Prolog) şi sunt specializați în câte un domeniu diferit
(matematică, fizică, chimie, biologie). Se ştiu următoarele:
250 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

a) cel care programează în Java e specializat în biologie;


b) Tom nu ştie nici Prolog, nici HTML şi nu e specializat în matematică;
c) James nu ştie nici Prolog, nici HTML şi nu e speciaizat în matematică;
d) cel care e specializat în chimie nu programează în HTML;
e) Bob e specializat în fizică şi nu programează în Prolog.
Ce limbaj de programare ştie fiecare şi în ce domeniu e specializat?

Program în limbajul Prolog: Problema celor 4 specialişti


============== 4specialisti.pl
nume(james).
nume(tom).
nume(bob).
nume(jim).
limbaj(html).
limbaj(cpp).
limbaj(java).
limbaj(prolog).
domeniu(matematica).
domeniu(fizica).
domeniu(chimie).
domeniu(biologie).
regula1(Y,Z):- Y=biologie,!, Z=java.
regula1(_,_).
regula2(X,Y,Z):- X=tom,!, Y\==matematica, Z\==prolog, Z\==html.
regula2(_,_,_).
regula3(X,Y,Z):- X=james,!, Y\==matematica, Z\==prolog, Z\==html.
regula3(_,_,_).
regula4(Y,Z):- Y=chimie,!, Z\==html.
regula4(_,_).
regula5(X,Y,Z):- X=bob,!, Y=fizica, Z\==prolog.
regula5(_,_,_).
rezolva(X,Y,Z):- nume(X), domeniu(Y), limbaj(Z),
regula1(Y,Z), regula2(X,Y,Z), regula3(X,Y,Z),
regula4(Y,Z), regula5(X,Y,Z).
diferit(X1,X2,X3,X4):- X1\==X2, X1\==X3, X1\==X4,
X2\==X3, X2\==X4,
X3\==X4.
solutie(Y1,Z1,Y2,Z2,Y3,Z3,Y4,Z4):- rezolva(james,Y1,Z1),
rezolva(tom,Y2,Z2), rezolva(bob,Y3,Z3),
rezolva(jim,Y4,Z4), diferit(Y1,Y2,Y3,Y4),
diferit(Z1,Z2,Z3,Z4).
===============
Problema derivării simbolice (derivarea expresiilor algebrice, David H. D. Warren)

Program în limbajul Prolog: Derivare simbolică


============== derivare_simbolica.pl
:- op(300,xfy,**). % prioritatea operatorului de putere

% reguli de derivare
d(X,X,D) :- atomic(X), !, D=1.
d(C,X,D) :- atomic(C), !, D=0.
d(U+V,X,DU+DV) :- d(U,X,DU), d(V,X,DV).
d(U-V,X,DU-DV) :- d(U,X,DU), d(V,X,DV).
d(U*V,X,DU*V+U*DV) :- d(U,X,DU), d(V,X,DV).
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 251

d(U**N,X,N*U**N1*DU) :- integer(N), N1 is N-1, d(U,X,DU).


d(-U,X,-DU) :- d(U,X,DU).
% end
===============
Interogare baza de cunoștințe:
?- d(2*x,x,D).
D = 0*x+2*1
?- d(x**10,x,D).
D = 10*x**9*1
?- d(x**5+x**7,x,D).
D = 5*x**4*1+7*x**6*1
?- d(-x**2-x**5+x**7,x,D).
D = -(2*x**1*1)-5*x**4*1+7*x**6*1

Program în limbajul Lisp


=============

(defvar *debug* nil)

;; A mistake will increase by a factor of 3 while a correct answer


;; will decrease by a factor of unity
(defvar *mult-hyst* 3)

( defmacro mkrand (x y)
" Make a random uniformly distributed number between x and y,
inclusive"
`(+ ,x (random (1+ (- ,y ,x)))))

(defun oper-to-string (oper)


" Convert a functional operator to a string representation"
(let ((str-res "nil"))
(setf str-res
(cond
((eq oper #'+) "+")
((eq oper #'-) "-")
((eq oper #'*) "*")))))

(defun string-to-oper (str)


"Convert a string to a function"
(let ((op-res "nil"))
(setf op-res
(cond
((string-equal str "+") #'+)
((string-equal str "-") #'-)
((string-equal str "*") #'*)))))

(defun get-operand2 (&optional (op "*") (num nil))


" get-operand2 (&optional (op "*") (num nil))
...
============
252 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Program în limbajul PHP: Form reguired


============
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}

if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
}

if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
}

if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}

if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
?>
============

Program în limbajul C: apartenența unui punct la un domeniu poligonal închis oarecare


=============
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
struct punct {int x,y; };
double det (punct A,punct B,punct C)//valoarea determinatului 3x3
{double rez;
rez=(A.x*B.y+B.x*C.y+A.y*C.x)-(C.x*B.y+B.x*A.y+A.x*C.y);
return rez;
}
int algoritm (punct v[100],int n,punct q)
//algoritmul ce calculeaza intersectiile segmentului [OQ] cu laturile
liniei poligoanale
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 253

{int m=0;
double u1,u2,u3,u4;
punct o; // originea sistemului XOY
o.x=0;
o.y=0;
v[n+1]=v[1];
// se determina m=nr. intersectiilor seg. [OQ] cu laturile liniei
poligoanale
// daca m=impar, atunci Q este in Int D (interiorul dom. det. de linia
poligonala)
for (int i=1;i<=n;i++)
{ u1=det(v[i],o,q);
u2=det(v[i+1],o,q);
u3=det(o,v[i],v[i+1]);
u4=det(q,v[i],v[i+1]);
if((u1*u2<0)&& (u3*u4 < 0)) m++;
}
if((m==1)||(!(m%2==0))) return 1;//m=impar
else return 0;
}
punct v[100]; punct q;
int n,m;
int temp;
int gd,gm;
int main()
{
gd=DETECT;
initgraph(&gd,&gm,"C:\Dev-Cpp\lib");
setcolor(WHITE); // culoare desen = alba
n=5;
// coordonatele varfurilor
v[1].x = 15; v[1].y = 20;
v[2].x = 400;v[2].y = 15;
v[3].x = 450;v[3].y = 350;
v[4].x = 250;v[4].y = 200;
v[5].x = 100;v[5].y = 230;

moveto(v[1].x,v[1].y);//fara desenare cursorul merge in v[1]


v[n+1]=v[1];
// se deseneaza conturul
for(int k=2;k<=n+1;k++)
{
lineto(v[k].x,v[k].y);
}
// se genereaza aleator puncte in dreptunghiul de cuprinde domeniul
do
{
q.x=(int)rand() % 450;
q.y=(int)rand() % 350;
temp=algoritm(v,n,q);
if (temp!=0)
putpixel(q.x,q.y,15);
}
while(!kbhit());//keyboardhit, apasare pe o tasta
}
================
254 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Testarera programului prin generarea de puncte aleatoare într-un dreptunghi ce


cuprinde domeniul (oarecare), poligon neconvex cu 5 vârfuri.

Obervație: În urma testării programului prin generarea aleatoare a punctelor, există căteva
cazuri în care algoritmul nu este corect. În activitatea de dezvoltare de programe pot
apărea astfel de cazuri. Se va afla cauza și se vor face corecțiile corespunzătoare.

Trecerea la Grafica pe calculator (Computer Graphics) și la programarea pe obiecte


(OPP)

Grafica pe calculator (Computer Graphics) s-a dezvoltat și și-a conceput


metodele și tehnicile cu care operează, simultan cu cercetările și rezultatele din domeniul
informaticii, realizând o îmbinare între facilitățile oferite de software și facilitățile oferite
de hardware. Prin intermediul metodelor și tehnicilor proprii și folosind software
specializat, precum și dispozitive specializate, Grafica pe calculator realizează procesarea
obiectelor prin modelare, reprezentare, transformare și vizualizare.
Preocupări privind obiectivele graficii pe calculator au apărut încă din deceniul
50, când, în anul 1953, a fost conceput și construit primul sistem grafic ce utiliza un
display grafic fabricat cu tub catodic cu un generator de vectori. În anul 1958, firma
americană CalComp a fabricat primul plotter (masă de desen). Ivan Sutherland, prin teza
sa de doctorat din 1963, a pus bazele teoretice ale progrămarii sistemelor grafice și și-a
creat o proprie companie de echipamente grafice. În anul 1968, firma americană DEC
(Digital Equipment Corporation) a introdus în fabricație de serie primul terminal grafic.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 255

Lipsa unor modele pentru sistemele grafice a condus la trei tendințe:


 dependența de echipament;
 dependența de aplicație;
 dependența de domeniu (mediu înconjurător).
Din aceste motive, pentru realizarea independenței față de elementele precizate
mai sus, s-au conceput și elaborat strategii de dezvoltare software prin:
 realizarea de limbaje de programare pentru grafică, orientate spre programator;
 realizarea de extensii grafice (biblioteci) ale limbajelor de programare clasică,
orientate spre programator;
 realizarea de programe specializate de grafică, orientate spre utilizator;
Până în prezent s-au proiectat și realizat o gamă diversificată de produse-program
pentru grafica pe calculator:
 programe pentru desenare automată (desene tehnice, hărți, scheme etc.);
 programe pentru generarea și prelucrarea de imagini;
 programe pentru tehnoredactare computerizată și publicistică;
 programe pentru animație în 2D (bidimensional) și 3D (tridimensional);
 programe pentru proiectare asistată de calculator (CAD-Computer Aided Design);
 programe pentru geometrie computerizată;
 programe speciale de umbrire (Rendering Software);
 programe speciale de iluminare (Reytracing Software);
 programe pentru calcul tabelar, prezentare și publicitate (Worksheet Graphics);
Complexitatea și varietatea software-ului pentru grafica pe calculator a
determinat și apariția de standardizări în acest domeniu:
 standardizarea americană CORE (CORE System) – 1978;
 standardizarea germană GKS ( Graphical Kernel System) – 1984;
 standardizarea americană PHIGS (Programmer’s Hierarchical Interactive Graphics
Standard) – 1984.
Un sistem grafic este un ansamblu de componente hardware specializate pentru
procesarea informațiilor grafice și componente software orientate spre domenii, spre
programator sau spre utilizator. În comparație cu sistemele de calcul numerice, sistemele
grafice au ca funcții de baza memorarea, prelucrarea și citirea/scrierea informațiilor
grafice.
Limbajele de programare moderne oferă diverse tipuri de date în scopul utilizării
de structuri de date adecvate complexelor problemelor ce apar în proiectarea și
elaborarea aplicațiilor pentru calculator. În general, un tip de date poate fi considerat ca
fiind T = (D, O), unde D este un domeniu de valori, iar O este o mulțime de operații
definite pentru valorile din D.
Structura de date care stă la baza tehnicii OOP este „OBJECT”, gândită să
încapsuleze datele (proprietățile) acestuia, dar și metodele (procedurile) de răspuns la
stimuli (evenimente, mesaje). Tipul OBJECT (tipul CLASS în C++) s-a obținut prin
dezvoltarea în limbajele de programare a tipului procedural împreună cu tipul RECORD
și prin intermediul unităților de program (UNIT). Tehnica OOP înglobează acele metode
specifice realizării de programe complexe, care sunt dirijate de un „operator” ce
generează principalele „evenimente” ce urmează a fi prelucrate de către program.
256 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Ingineria programării (Software engineering) stipulează ca sistemele software să


îndeplinească un număr de criterii, din care foarte importante sunt principiile Open-
Closed și Single Coice. Conform principiului Open-Closed (Meyer, 1988), entitățile
software (clase, module, proceduri etc.) trebuie să fie deschise pentru adăugarea unor
comportamente (facilități) noi (open for extension), dar extensia nu trebuie să atragă după
sine modificarea codului sursă al entității (closed for modifications).
Celălalt principiu cere ca structurile de tip multiple choice (precum if … else if …,
case … of… sau switch … case …) să nu apară în mai multe entități, ci doar în una
singură. Aceste două calități erau păstrate cu dificultate în sistemele proiectate urmând
metodologia de programare structurată. Exemplul următor este o entitate în care apare
multiple choice, datorită celor n tipuri de evenimente. Este foarte probabil ca același
șablon să mai apară și în alte entități (de exemplu, în una care listează tipurile, în alta
care citește tipurile etc.).
Un model simplificat al programării orientate pe obiecte (OOP) este următorul:
================
while Non_Empty (Event_List) do
ProcessCurrentEvent;
procedure ProcessCurrentEvent;
var event : EventType;
begin
event := Next_Event;
case event of
Event_1 : procedure_1;
...
Event_n : procedure_n;
end;
end;
=================
Ce se întâmplă dacă adăugăm un tip nou, Event_np1? Vom modifica entitatea în
care sunt definite tipurile (acest lucru este acceptabil), dar această adăugare necesită
modificarea tuturor structurilor case … of … din entitățile software ale sistemului (cu
riscul de a omite unele entități și cu dificultăți mai mari în cazul sistemelor distribuite,
unde entitățile sunt distribuite în rețea, posibil la adrese anonime). În cazul unei astfel de
omisiuni, sistemul funcționează aparent normal, ignorarea noului eveniment putând trece
neobservată în cursul testelor (mai ales în cazul evenimentelor rare). O situație similară
apare la eliminarea unui tip (să zicem Event_1). Acum, ștergerea definiției din entitatea
care definește toate evenimentele impune eliminarea liniilor Event_1: din toate structurile
case și din toate entitățile, din nou cu risc de omisiune (de data aceasta, o eventuală
omisiune va fi detectată mai ușor, posibil chiar la verificarea tipurilor în cursul compilării).
Programarea orientată pe obiecte (OOP) oferă o soluție foarte elegantă, bazată pe
fenomenul de polimorfism semantic, indus de ierarhia tipurilor de date din sistem.
Tipurile Event_1, Event_2, … etc. vor fi definite ca subtipuri (subclase) ale unui tip
abstract (clasă abstractă) Event în care este declarată signatura unei funcții procedure (nu
este necesară implementarea, aceasta va fi făcută în fiecare subclasă Event_i).
În exemplul anterior, toate structurile case … of … se înlocuiesc, în fiecare
entitate, printr-o singură instrucțiune: event.procedure; Adugarea/eliminarea unui tip de
eveniment afectează doar entitatea (modulul) în care sunt definite evenimentele, în timp
ce în celelalte nu se face nici-o intervenție! Principiul Open-Closed este menținut în mod
firesc, exploatând noțiunea de polimorfism din programarea orientată pe obiecte.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 257

De asemenea, este respectat principiul Single Choice, structura ce alege o opțiune


din mai multe posibile (switch … case …, case …of …, if … else if … etc.) apare într-o
singură entitate (Next_Event). În aceasta se pot face modificări (Open), dar celelalte
rămân nemodificate (Closed), acest fapt mărind siguranța procesului de implementare.
Ideea genială a lui Bjarne Stroustrup de a aduce, în anul 1979, elementele de
programare orientată pe obiecte, existente încă din anul 1967, către una din cele mai
populate comunități de programatori (limbajul C), prin proiectarea limbajului “C with
classes” (C++) a condus la proliferarea noilor concepte, cu implicație covârșitoare asupra
actului de proiectare/implementare a sistemelor software și cu influență determinantă în
evoluția limbajelor de programare (Java, C# etc.). În literatura de specialitate în limba
română, o foarte riguroasă prezentare a acestor concepte este realizată în cartea: Octavian
Catrina, Iuliana Cojocaru: Turbo C++, Teora, 1993.
Exemplu, implementare în C++.
================
class Event{// clasa abstracta
public:
virtual void procedure()=0;// metoda virtuala, pentru polimorfism
};

// aici pot fi adaugate subclase noi (Open)


class Event_1:public Event{ //subclasa
public:
void procedure(){//implementare a metodei din clasa de baza Event
cout<<"Prelucrare Event_1"<<endl;
};
};
int i;

//Next_Event() este singura entitate ]n care apare structura


switch...case...
//Adaugarea sau eliminarea unui eveniment necesita modificarea
instructiunii switch...case(Open)
//dar acesta este singurul loc de interventie
Event* Next_Event(){
switch (i){
case 1: return new Event_1(); break;
//case 2: return new Event_2(); break;
}
}

int main()
{
Event *event;
cin>>i;
================
Notă. Mulțumim Prof. Univ. Dr. Tudor Bălănescu pentru observațiile și sugestiile privind
textul despre OOP.

Concepte OOP și limbajul MIRA


MIRA este un limbaj de programare pentru grafica pe calculator cu o sintaxă
asemănătoare limbajului Pascal, dar care implementează conceptele OOP într-un mod
natural și adecvat obiectelor grafice cu care operează. Dacă limbajele de programare
258 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

clasice operează la nivelul locațiilor de memorie prin intermediul tipurilor de date și


procedurilor/functiilor, iar limbajele de programare pentru bazele de date operează la
nivelul inregistrărilor prin intermediul bazelor de date și procedurilor, limbajul MIRA-
limbaj de programare pentru grafică, operează la nivelul obiectelor prin intermediul
conceptelor și tehnicilor OOP.
Limbajul MIRA oferă prelucraăi în 2D și 3D, de aceea acesta consideră planele R2
și R ca fiind spații vectoriale peste R. Pentru comoditate, vom prezenta câteva elemente
3

de grafică 2D oferită de limbajul MIRA. Orice punct P din R2 determinat de coordonatele


carteziene (a,b) este definit de vectorul v =<a,b> legat de originea (0,0). Conform
limbajului MIRA, vectorii descriu punctele planului R2:

planul 2D (R2)
Y
P =<a,b> ; v =<a,b>
a = OP cos
b = OP sin
b P
v


O a X

Se consideră:
TYPE
vector = record
x : real;
y : real;
end;
VAR v, w : vector;

atunci v.x și v.y sunt componentele vectorului v, adică v.x = projx(v), v.y = projy(v).
Vectorul origine este origin =< 0, 0 >.
Distanța dintre două puncte v și w:
dist (v,w) = SQRT ( (v.x - w.x)2 + (v.y - w.y)2 ).
Norma unui vector:
norme (v) = dist (origin, v) = SQRT ( (v.x)2 + (v.y)2 ).

Vectorul unitar al lui v:


unitare( v ) = < v.x / norme (v) , v.y / norme (v) > = v / norme (v).
Observație: norme (unitare (v) ) = 1.
Aritmetica vectorială (operații cu vectori):
 adunare v + w = < v.x + w.x , v.y + w.y >;
 scădere v - w = < v.x - w.x , v.y - w.y >;
 scalare r * v = < r * v.x , r * v.y >, r : real;
 produs scalar v * w = v.x * w.x+v.y*w.y.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 259

Unghiul dintre doi vectori:


anglevect ( v,w ) = arccos ( (v * w) / ( norme(v)*norme(w) ) ).

Observație: v * w = norme(v) * norme(w)*cos anglevect(v,w).

y unghiul dintre doi vectori

w v = < v.x, v.y >


w = < w.x , w.y >
 anglevect (v,w)
 v

O x

Conceptul de figură (figure) în limbajul MIRA.


Limbajul MIRA definește și opereaza cu obiecte grafice numite figuri predefinite
(figure):
 SEG – segment de dreaptă;
 TRIANGLE – triunghi;
 SQUARE – pătrat;
 CIRCLE – cerc;
 ELLIPSE – elipsă.

Principalele proceduri (primitive) grafice oferite de limbajul MIRA:


 MoveAbs v; poziționare (mutare) în coordonate absolute a cursorului în
punctul < v.x, v.y> , fără trasare;
 MoveRel v; – pozitionare (mutare) în coordonate relative a cursorului în punctul
< v.x, v.y> , fără trasare;
 LineAbs v; trasare de la punctul curent la punctul de coordonate < v.x, v.y> în
coordonate absolute;
 LineRel v; trasare de la punctul curent la punctul de coordonate < v.x, v.y> în
coordonate relative;
Observație: Din punct de vedere sintactic, în limbajul MIRA, apelul șirului de proceduri
LineAbs v1 ; LineAbs v2 ; … ; LineAbs vn;
este echivalent cu apelul
LineAbs v1; v2; … ; vn;
Conceptul de figure este utilizat în limbajul MIRA, în conformitate cu tehnica
OOP, pentru definirea, memorarea, construirea (reprezentarea) și manipularea de porțiuni
ale unei imagini.
260 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Definirea unui obiect (figure) se face în sectiunea TYPE și trebuie să conțină


caracteristici ale obiectului prin parametrizare și algoritmul pentru construirea
(reprezentarea) obiectului:

TYPE nume_fig = figure ( lista_p_def ) ;


declaratii
begin
corp_fig
end;
nume_fig - identificator pentru obiectul de tip figure;
lista_p_def - lista parametrilor ce definesc obiectul;
corp_fig - secvența de instrucțiuni ce determină algoritmul pentru construirea obiectului;
Exemple de obiecte (figure) predefinite în limbajul MIRA:
1. Segmentul determinat de vectorii v1, v2 (definit de v1, v2 si construit prin unirea
punctelor v1, v2 ).
Seg = figure (v1, v2 : vector )
begin
MoveAbs v1; LineAbs v2
end;
2. Triunghiul determinat de vectorii v1, v2, v3 ( definit de v1, v2, v3 și construit prin
unirea punctelor v1, v2, v3).
Triangle = figure (v1, v2, v3 : vector )
begin
MoveAbs v1; LineAbs v2; v3; v1
end;
3. Cercul definit de centrul C și raza r și construit prin unirea punctelor
v = < rcos , rsin  >, unde  = 2k/ n, k = 0 .. n, n =100 pas de discretizare.
. Circle = figure ( C : vector, r: real )
const n =100
var pas, alfa:real;
begin
alfa := 0; pas := 2 * pi / n
MoveAbs C + < r, 0>
while (alfa < 2 * pi) do
begin
alfa := alfa + pas
LineAbs C + r * < cos(alfa), sin(alfa) >
end
end;
4. Elipsa definită de centrul C, semiaxele a,b și construită prin unirea punctelor
v = < a cos , bsin  >, unde  = 2k/ n, k = 0 .. n, n =100 pas de discretizare.
Ellipse = figure ( C : vector, a,b: real )
const n =100
var pas, alfa:real;
begin
alfa := 0; pas := 2 * pi / n
MoveAbs C + < a, 0>
while (alfa < 2 * pi) do
begin
alfa := alfa + pas
LineAbs C + < a * cos(alfa), b * sin(alfa) >
end
end;
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 261

Variabile de tip figură (figure)


O variabilă de tip figure este un obiect în sensul tehnicii OOP și care suportă
următoarele operații:
 CREATE – crearea obiectului (figurii) în memorie;
 DELETE – ștergerea obiectului (figurii) din memorie;
 DRAW – desenarea (afișarea-reprezentarea) obiectului pe dispozitivul de ieșire;
 ERASE – eliminarea (ștergerea) obiectului de pe dispozitivul (grafic) de ieșire.
Exemple privind declararea utilizării unor variabile de tip figure:
TYPE
info = record
n : integer;
T : triangle;
E : ellipse;
end;
VAR
V1, V2, V3 : vector;
T1, T2 : triangle;
C1, C2 : circle;
E1,E2 : ellipse;
VT : array [1..10] of triangle;
C : array [1..10] of circle;
VE : array [1.5] of ellipse;
INR : info;
Exemple privind utilizarea unor variabile de tip figure:
...
CREATE T1(V1,V2,V3); în memorie se creează triunghiul T1 definit de vectorii V1, V2, V3.
CREATE C1 ( < 2,3>, 5 ); în memorie se creează cercul de centru <2,3> si raza 5
CREATE C2 (<4,5>, 5); în memorie se creează cercul de centru <4,5> si raza 5
CREATE E1(<3,5>, 4,9); în memorie se creează elipsa de centru <3,5> si semiaxe 4, 5
for i:= 1 to 10 do în memorie se creează un vector cu componente cercuri
CREATE C[i]( origin,i); cu centru în origine și raze, respectiv i=1..10
...
DRAW T1, C1, C2, C[5]; se desenează pe dispozitivul grafic triunghiul T1 și cercurile C1, C2, C[5]
DRAW E1; se desenează pe dispozitivul grafic elipsa E1
for i:= 1 to 4 do se desenează pe dispozitivul grafic cercurile C[i], i=1..4
DRAW C[i];
ERASE T1, C2, C[3]; se elimină de pe dispozitivul grafic T1, C2, C[3]
for i:= 6 to 10 do se desenează pe dispozitivul grafic cercurile C[i], i=6..10
DRAW C[i];
ERASE E1, C1, C[7]; se elimină de pe dispozitivul grafic E1, C1, C[7]
=============
262 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Program în limbajul Open GL: reprezentare unui graf complet (sigla CNIV)

Program în limbajul Visual Studio (Visual C++), Visual Studio .NET 2003

Program.cs
=============
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Bresenham
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 263

static void Main()


{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}

Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace Bresenham
{
public partial class Form1 : Form
{
private bool draw = false, pause =false;
public Form1()
{
InitializeComponent();
panel1.Paint += new PaintEventHandler(panel1_Paint);
}
void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics grfx = e.Graphics;
//intializare grila
for (int i = 1; i < 50; i++)
{
grfx.DrawLine(Pens.LightGray, new Point(0, 10 * i), new
Point(500, 10 * i));
grfx.DrawLine(Pens.LightGray, new Point(10 * i, 0), new Point(10
* i, 500));
}
//daca nu trebuie sa dezenez figura, maopresc dupa desenarea grilei
if (!draw) return;
if (rbLine.Checked)
{
//puncte pentru linie
int x1, x2, y1, y2;
//puncte initiale, folosite la desenarea liniei ideale
int x1i, x2i, y1i, y2i;
try
{
//extragere coordonate
//sunt dublate in xxi pentru a putea trasa dreapta ideala
x1i = x1 = Int32.Parse(txtX1.Text);
y1i = y1 = Int32.Parse(txtY1.Text);
x2i = x2 = Int32.Parse(textBox3.Text);
y2i = y2 = Int32.Parse(textBox4.Text);
}
catch (FormatException fe)
{
264 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

draw = false;
MessageBox.Show("Eroare la parsarea parametrilor",
"Eroare", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
//panta
bool steep = (Math.Abs(y2 - y1) > Math.Abs(x2 - x1));
int aux;
if (steep)
{
aux = x1; x1 = y1; y1 = aux;
aux = x2; x2 = y2; y2 = aux;
}
if (x1 > x2)
{
aux = x1; x1 = x2; x2 = aux;
aux = y1; y1 = y2; y2 = aux;
}
...

===============

Program în limbajul Java: Arie.java


===============
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class
Arie
extends JFrame{
private JButton buton = null;
private Surface suprafata = null;
private final Arie this2 = this;
private MenuBar meniuBara;
private Menu optiuni = null;
private MenuItem itm1, itm2;
public Arie(){
super("Aria poligonului");
initialize();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
private JButton getJButton(){
if (buton == null){
buton = new JButton("OK");
buton.setEnabled(false);
buton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if (buton.getText() == "OK"){
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 265

getCanvas().setGata(true);
buton.setText("Calculeaza aria");
}
else{
JOptionPane.showMessageDialog( this2,
"Aria poligonului este "+getCanvas().getAria()+" pixeli",
"Informatie",JOptionPane.INFORMATION_MESSAGE);
}
}
});

}
return buton;
}
private MenuBar getJMeniuBara()
{
if (meniuBara == null)
{
meniuBara = new MenuBar();
optiuni = new Menu("Optiuni");
itm1 = new MenuItem("Din nou...");
itm1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
getContentPane().remove(suprafata);
suprafata = null;
initialize();
buton.setText("OK");
buton.setEnabled(false);
}
});
itm2 = new MenuItem("Exit");
itm2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
hide();
dispose();
System.exit(0);
}
});
optiuni.add(itm1);
optiuni.add(itm2);
meniuBara.add(optiuni);
}
return meniuBara;
}
private Surface getCanvas(){
if (suprafata == null){
suprafata = new Surface();
}
return suprafata;
}
private void initialize(){
setSize(300,300);
setLocation(200,100);
this.setMenuBar(getJMeniuBara());
this.getContentPane().setLayout(new java.awt.BorderLayout());
this.getContentPane().add(getCanvas(),
266 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

java.awt.BorderLayout.CENTER);
setVisible(true);
new Thread(){
public void run(){
while(getCanvas().getNumarPuncte()<3);
buton.setEnabled(true);
}
}.start();
}
public static void main(String[] args){
new Arie();
}
}
=============

Program în limbajul Java: sortare topologică


topo.java
===============
public void topo( )
{
int orig_nVerts = vertexNumber;
String[] sortedArray=new String[vertexNumber];

while(vertexNumber > 0)
{

int currentVertex = noSuccessors();


if(currentVertex == -1)
{
s="EROARE: Graful contine ciclu";
return s;
}
else
{
sortedArray[vertexNumber-1]= vertices[currentVertex].getLabel();
deleteVertex(currentVertex);
}
}

for(int j=0; j<orig_nVerts; j++)


System.out.print( sortedArray[j]) ;

} // end metoda

...
algoritmului lui Dijkstra
public void adjust_sPath()
{

int column = 1;
while(column < vNumber)
{

if( vertices[column].isInTree )
{
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 267

column++;
continue;
}

int current = adjacencyMatrix[currentVert][column];

int start = startToCurrent + current;

int sPathDist = sPath[column].distance;

if(start < sPathDist)


{
sPath[column].parentVert = currentVert;
sPath[column].distance = start;
}
column++;
}

}
===========

clasa Graph

import java.util.*;
public class Graph{

protected Vector[] adjacencies;


protected Object[] vertices;
protected int vertexNumber;

public static void main(String[] args) {


String[] names=
{"Cluj", "Iasi", "Bucuresti"},
Graph stringsGraph = new Graph(names),
stringsGraph.addEdge("Cluj", "Bucuresti"),
for (int i= 0; i < names.legth; i++)
System.out.println( (String) stringsGraph.getVertex(i));
if (stringsGraph.isadjacent ("Bucuresti", "Cluj"))
System.out.println("an edge");
}

public Graph() {}
publicGraph(int vertexNumber) {
this.vertexNumber =vertexNumber;
vertices =new Object[vertexNumber];
adjacencies =new Vector[vertexNumber];
}
public Graph(Object[] vertices) {
this(vertices.length);
for (int i=0; i <vertexNumber; i++)
this.vertices[i] =vertices[i];
}
publicObject getVertex(Object vertex, int index) {
vertices[index] =vertex;
}
public boolean isadjacent(Object vertex1, Object vertex2) {
int index1 =indexOf(vertex1);
268 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

if (index1 < 0) return false;


if (adjacencies[index1] == null
return false;
int index2 =
adjacencies[index1].indexOf(vertex2);
return (index2 >= 0);
}

public boolean isadjacent(int index1, int index2)


{
if (index1 < 0|| index1 >= vertexNumber
|| index2 <0|| index2 >= vertexNumber)
return false;
return isadjacent(vertices[index1],vertices[index2]);
}

public void addEdge(Object vertex1, Object vertex2){

int index1 = index0f(vertex1) ;


if (index1 < 0) return ;
int index2 = index0f(vertex2) ;
if (index2 < 0) return ;
if (adjacencies [index1] == null)
adjacencies [index1] = new Vector() ;
adjacencies [index1] .addElement (vertex2) ;
if (adjacencies [index2] == null)
adjacencies [index2] = new Vector() ;
adjacencies [index2] .addElement (vertex1) ;
}

public void addEdge (int index1, int index2) {


if (index1 < 0 || index1 >= vertexNumber
|| index2 < 0 || index2 >=vertexNumber)
return;
addEdge (vertices[index1],vertices[index2]) ;
}
public void removeEdge(Object vertex1, Object vertex2) {

int index1 = indexOf(vertex1) ;


if (index1 < 0) return ;
int index2 = indexOf(vertex2) ;
if (index2 < 0) return ;
adjacencies [index1] .removeElement(vertex2) ;
adjacencies [index2] .removeElement(vertex1) ;
}
public void removeEdge(int index1, int index2)
{
if (index1 < 0 || index1 >= vertexNumber
|| index2 < 0|| index2 >= vertexNumber)
return ;
removeEdge (vertices[index1]
vertices[index2]) ;
}
protected int indexOf(Object vertex) {
for (int i= 0 ; i < vertexNumber; i++)
if (vertex == vertices[i])
return i;
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 269

return -1;
}
}
==============
Graph: cod pentru a returna ordinea de parcurgere a nodurilor în adâncime.
public Enumeration elementes () {
return new DPFEnumerator () ;
}
public Enumeration elements (Object startingVertex)
{
return new DPFEnumerator (startingVertex) ;
}
class DPFEnumerator implements Enumeration {

boolean[] visited;
Stack vertexStack;

DPFEnumerator () {
visited = new boolean [vertexNumber];
vertexStack = new Stack () ;
vertexStack.push (vertices [0])
visited[0]=true;
}
DPFEnumerator(Object startingVertex) {
visited=new boolean[vertexNumber];
vetexStack=new Stack();
vertexStack.push(startingVertex);
visited[indexOf(startingVertex)]=true;
}
public boolean hasMoreElements() {
if (vertexStack.isEmpty())
return false;
return true;
}
public Object nextElement() {
Object currentVertex=vertexStack.pop();
int index=indexOf(currentVertex);
if(adjacencies[index] !=null)
for (int i= adjacencies[index].size()-1
i>=0; i--)
for (int j=0; j<vertexNumber; j++)
if(adjacencies[index].elementAt(i)
==vertices[j] && !visited[j]) {
vertexStack.push(vertices[j]);
visited[j]=true; }
return currentVertex;
}

}
==============

Program în limbajul Java Script: folosind biblioteca jsgraphics_e.htm by Walter Zorn


=============
// Vector Graphics JavaScript Library | Developed by WALTER ZORN
// http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm
<html>
270 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

<head>
<script type="text/javascript" src="wz_jsgraphics.j
s"></script>
</head>
<body>
<script language="JavaScript">
var ob=new jsGraphics();
var n=30; // numar de varfuri
var r=300; // valoare raza
var pi=3.141592; // pi
ob.setColor("#ff0000"); // culoare red
// se genereaza coordonatele varfurilor
for(i=0; i <=n-1; i++)
{
var fi = ( 2 * pi * i ) / n ;
var x = r * Math.cos ( fi ) ; y = r * Math.sin ( fi ) ;
// se genereaza muchiile / laturile
for(j = i+1; j<=n; j++)
{
var fi = ( 2 * pi * j ) / n ;
var xp = r * Math.cos ( fi ) ; yp = r * Math.sin ( fi ) ;
//se traseaza segmentul [(x,y) (xp,yp)]
ob.drawLine ( 400+x, 400+y, 400+xp, 400+yp );
}
}
ob.paint();
</script>
</body>
</html>
==============

Program în limbajul Python


=============

============
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 271

Limbajul SVG (Scalable Vector Graphics)

La începutul anilor ’90 a apărut limbajul HTML (Hypertext Markup Language),


ce a determinat răspândirea paginilor Web statice şi dezvoltarea explozivă a sistemului
WWW (World Wide Web). Necesitatea elaborării paginilor Web dinamice a determinat
apariţia diverselor tehnologii: JavaScript, JavaServer Pages (JSP), VBScript, PHP, ASP,
Macromedia Dreamweaver etc., tehnologii destinate pentru aplicaţii server, iar altele
pentru aplicaţii client. În domeniul aplicaţiilor grafice dinamice şi interactive ultimii 10
ani au fost dominaţi de tehnologiile Java şi Flash: Generaţia WEB 1.0.
Ca urmare a dezvoltărilor oferite de limbajul XML (eXtensible Markup
Language), limbajul JavaScript, DOM (Document Object Model) pentru scripting şi
interactivitate, SMIL (Synchronized Multimedia Integration Language) pentru animaţie şi
CSS pentru styling, în anul 2003, Consortiul W3C (Worldwide Web Consortium – W3C)
elaborează specificaţia 1.1 pentru SVG (Scalable Vector Graphics) – http://www.w3.org/
Graphics/SVG/. Această platformă este open source şi este o alternativă performantă la
tehnologiile Java şi Flash. „SVG is used in many business areas including Web graphics,
animation, user interfaces, graphics interchange, print and hardcopy output, mobile
applications and high-quality design” [7].
Autorii platformei sunt: Adobe, Agfa, Apple, Canon, Corel, Ericsson, HP, IBM,
Kodak, Macromedia, Microsoft, Nokia, Sharp şi Sun Microsystems.
Exemplele si aplicatiile grafice vor fi vizualizate (folosind un browser
compatibil) cu Firefox 1.5+, Opera 9 sau Internet Explorer cu Adobe SVG plug-in
(Adobe SVG Viewer [1]). Din 2003, apare generaţia WEB 2.0: noi tehnologii şi servicii
Web.
Folosind platforma SVG, în domeniul educaţiei se pot concepe şi elabora
aplicaţii grafice pentru diverse discipline (matematică, fizică, informatică, chimie etc.) ce
vor reprezenta diverse fenomene, termeni, concepte. Prezentarea se va face folosind un
calculator şi un video-proiector în clasa/sala unde asistă elevi/studenţi. Aspectele
dinamice şi interactivitatea aplicaţiilor fac atractive aceste prezentări. Cadrele didactice şi
specialiştii IT trebuie să colaboreze în acest sens în vederea elaborării acestor aplicaţii
grafice. Clasicul manual al unei discipline nu poate să includă dinamica şi interactivitatea
oferită de SVG, de aceea acesta trebuie să fie completat cu produse software (software
educaţional) corespunzătoare şi care vin în întâmpinarea elevilor, studenţilor şi
profesorilor. Dacă un manual clasic este elaborat de un autor sau mai mulţi autori de
specialitate, în schimb un produs software destinat educaţiei nu poate fi elaborat decât
prin colaborarea unor autori: profesori de specialitate, specialişti IT, psihologi, pedagogi,
chiar elevi şi studenţi. Astfel, lecţiile şi cursurile vor fi atractive şi utile în scopul obţinerii
competenţelor avute în vedere prin programele curriculare.

Scalable Vector Graphics (SVG)

SVG este o platformă pentru descrierea aplicaţiilor grafice 2D în limbajul XML.


Combinaţia dintre SVG şi JavaScript oferă o platformă puternică pentru grafica
interactivă 2D, comparabilă cu tehnologiile Flash şi Java. Platforma SVG oferă o grafică
XML pentru Web prin trei tipuri de obiecte grafice: vector graphic shapes (linii şi curbe),
imagini şi text. Obiectele pot fi grupate, transformate şi reprezentate în mod dinamic şi
272 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

interactiv. SVG utilizează standarde XML pentru text, formatele JPEG şi PNG pentru
imagini, DOM (Document Object Model) pentru scripting şi interactivitate, SMIL
(Synchronized Multimedia Integration Language) pentru animaţie şi CSS pentru styling.
Platforma SVG are două părţi: un fişier de bază de tip XML şi programare API
pentru aplicaţiile grafice 2D. „Key features include shapes, text and embedded raster
graphics, with many different painting styles. It supports scripting through languages
such as ECMAScript and has comprehensive support for animation” [12]. Familiarizarea
cu HTML, XML şi programarea orientată spre obiecte (OOP) determină o înţelegere mai
clară a utilizării specificaţiilor SVG [14]. Limbajul XML (eXtensible Markup Language)
este limbajul ce oferă un format pentru stocarea şi transmiterea de date printr-o descriere
declarativă. „Gramatica” XML include XHTML (the XML version of HTML), SVG,
MathML (the Mathematics Markup Language), ChemML (the Chemistry Markup
Language) şi GML (the Geography Markup Language).
Ca limbaj de scripting prin utilizarea lui JavaScript şi SVG Document Object
Model (SVG-DOM), SVG este o extensie a lui HTML DOM level 2 familiar
dezvoltatorilor de Web. Elementele SVG pot fi caracterizate de animaţie prin utilizarea
Synchronized Multimedia Integration Language (SMIL).
Analog XHTML şi MathML, SVG este de tip XML, fişierele sau documentele
SVG au extensia .svg şi sunt editate cu un editor simplu (de exemplu Notepad). Aceste
fişiere nu sunt compilate, ci doar interpretate de către browser (Firefox 1.5+, Opera 9 sau
Internet Explorer cu Adobe SVG Viewer).
Document Type Definition (DTD) reprezintă descrierea elementelor şi atributelor
(svg11.dtd) corespunzătoare delaraţiilor de tip SVG şi care sunt utilizate în aplicaţiile
grafice ("http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"). Elementele „root”
pentru documentele XML sunt acele etichete XML interpretate de browser. De exemplu,
<html> pentru XML şi <svg> pentru SVG. „Namespace” XML sau atribute „xmlns”
realizează o descriere unică de identificare a atributelor SVG cu datele XML. Pentru
aplicaţiile SVG sunt necesare următoarele declaraţii:
 xmlns=http://www.w3.org/2000/svg
 xmlns:xlink="http://www.w3.org/1999/xlink"

Antet document XML DTD Antet document SVG Elemente „Root”

<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"


"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="560" height="480" >
...
Continut svg
...
</svg>

Conţinut/elemente SVG Fereastra de desenare (560 × 480 pixeli)


ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 273

Pentru SVG versiunea 1.0 referinţa DTD (svg10.dtd) este:


<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

Elaborarea aplicaţiilor grafice în SVG se poate realiza prin cunoaşterea


specificaţiilor SVG şi utilizarea elementelor şi atributelor conform definiţiilor XML şi
SVG. Conţinutul SVG va fi cuprins între etichetele <svg>. Se poate învăţa prin exemple.

Programarea în SVG

Elementele (etichetele) esenţiale pentru aplicaţiile grafice sunt : <circle>,


<ellipse>, <rect>, <line>, <polyline>, <polygon> şi <path>. Etichete
importante sunt şi <g> pentru gruparea elementelor (formelor) şi <use> pentru
reutilizarea elementelor definite în secţiunea <defs>. O listă completă privind definirea,
sintaxa şi utilizarea elementelor SVG se află la adresa W3C SVG 1.1 Recommendation
(www.w3.org/TR/SVG11/) [13] şi la adresa W3Schools SVG site [15]. Pentru
exemplificare prezentăm codul SVG (ex1.svg) ce realizează generarea unor forme
geometrice: poligon, cerc, dreptunghi, linie (dreaptă) şi drum (path), indicându-se pentru
fiecare atributele şi elementele de identificare (referinţa) corespunzătoare. Se va folosi şi
elementul <text> pentru desenarea unui text.

Desenarea formelor geometrice şi a textului


Ex1.svg (adaptare şi prelucrare după David Lane [4])
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="570" height="470" >
<polygon style="stroke:#24a;stroke-width:1.5;fill:#eefefe"
points="10,10,400,10,430,230,10,280,10,10" />
<circle style="stroke:#d33;stroke-width:2;fill:#7ce"
cx="100" cy="80" r="50" />
<rect style="stroke:#2aa;stroke-width:7;fill:#ded;opacity:.8"
x="170" y="80" height="120" width="220" />
<line style="stroke:#eea;stroke-width:6" x1="30" y1="250" x2="340"
y2="60"/>
<path style="fill:#daa;fill-rule:evenodd;stroke:none"
d="M 230,250 C 360,30 10,255 110,140 z "/>
<circle style="stroke:#d33;stroke-width:2;fill:#7ce"
cx="370" cy="140" r="30" />
<text x="270" y="50">Exemplul 1</text>
</svg>

În cazul în care se doreşte ca textul desenat să fie realizat cu un anumit font şi cu


o anumită marime (size), este nevoie să se definească (introdusă înainte de eticheta
<polygon>) în secţiunea <defs> o clasă (class="titlu")printr-un stil CSS:
274 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

<defs>
<style type="text/css"><![CDATA[
.titlu { font-size:30px; font-weight: bold; font-family: batang;
stroke: none; fill: black; text-anchor: middle}
]]></style>
</defs>
Elementul <text> va fi în acest caz:
<text class="titlu" x="270" y="50">Exemplul 1</text>

Schimbarea coordonatelor (utilizarea coordonatelor utilizator)


În exemplul precedent, coordonatele sunt exprimate în pixeli şi valoarea lor este
relativă la originea (0,0) considerată implicit la SVG (şi la alte limbaje) în colţul stânga-
sus cu direcţia X spre dreapta, iar direcţia Y în jos [9, 13]. În aplicaţii trebuie realizate
anumite calcule astfel ca toate coordonatele utilizate să fie relative la această origine.
Pentru evitarea acestor calcule se utilizează coordonatele omogene (x,y,w), unde (x,y)
sunt coordonatele carteziene, iar w este factorul de multiplicare. În Grafica pe calculator
(Computer Graphics) se utilizeză transformările în 2D (scalare, translaţie, rotaţie), prin
reprezentarea acestora ca o mulţime de transformări lineare 3-dimensionale. Această
reprezentare este definită de o matrice simplă 3 × 3:

astfel că fiecare transformare are o matrice de transformare ce se utilizează în calcule. În


felul acesta, transformările sunt reprezentate unitar printr-un calcul matriceal: vectorul
linie (x,y,w) se înmulţeste matriceal cu matricea transformării.
Spre exemplificare, dacă trebuie să mutăm originea implicită (0,0) în punctul de
coordonate (250, 250) şi să schimbăm direcţia Y în sus (aşa cum există reprezentarea în
matematică), sunt necesare următoarele: a=1, b=c=0, d=-1, e=f=250, prin urmare
matricea transformării este matrix(1, 0, 0, -1, 250, 250). Pentru mai multe detalii:
„Coordinate System Transformations” (Sec 7.4) – http://www.w3.org/TR/SVG/coords.html
[4,13]. În SVG acest lucru se realizează prin elementul <g> şi atributul „transform”:

<g transform="matrix(1, 0, 0, -1, 250, 250)">


...
elemente svg cu centru in (250,250)si directia Y in sus
...
</g>

Drag and Drop cu SVG

SVG utilizează Document Object Model (http://www.w3.org/TR/SVG/


svgdom.html) prin care include tehnici OOP de JavaScript în vederea generării de
obiecte, proprietăţi şi metode. Mai multe detalii privind descrierea acestor proprietăţi şi
metode se pot găsi în capitolul 5 din Document Structure (http://www.w3.org/
TR/SVG/struct.html). Codul JavaScript se introduce folosind eticheta <script>, după
deschiderea etichetei <svg>, dar înainte de secţiunea <defs>:
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 275

<script type="text/ecmascript">
//<![CDATA[
...
Codul javascript
...
// ]]>
</script>

Aplicaţii grafice elaborate în SVG


Facilitățile, aspectele dinamice şi interactive oferite de SVG realizează
posibilitatea elaborării de aplicaţii grafice dinamice şi interactive pentru diverse
discipline. Aceste aplicaţii pot fi utilizate de instructori (profesori) în clasa de
elevi/studenţi pentru a explica diverse fenomene, concepte, termeni prin implicarea
directă a utilizatorului în înțelegerea aspectelor teoretice şi practice corespunzătoare
subiectului/temei abordate. Această abordare creează un context analog experimentului
care se află la baza procesului de învăţare. Studiile de pedagogie şi de psihologie arată
faptul că elevul/studentul este implicat activ în activităţile în care este vorba de
experimente, analize şi interpretări corespunzătoare unor fenomene, concepte, termeni. În
procesul de învăţare acest lucru este un pas important câtre învăţarea prin descoperire.
Programarea orientată spre obiecte (OOP), evenimente oferite de utilizarea şi
programarea acţiunilor mouse-ului, programarea animaţiei cu SMIL (Synchronized
Multimedia Integration Language), DOM (Document Object Model), utilizarea
tehnologiei Java şi tehnica „Drag and Drop” sunt câteva din aspectele esenţiale ce
definesc avantajele platformei SVG.
Recomandăm studierea codului sursă al aplicaţiillor elaborate de David Lane [4].
Prin indicarea ecuaţiilor parametrice ale unor curbe, mai jos prezentăm diverse aplicaţii.

function xFunc(t){
return (a+b)*Math.cos((b/a)*t) -
b*Math.cos(t+(t*b)/a);
}
function yFunc(t){
return (a+b)*Math.sin((b/a)*t) -
b*Math.sin(t+(t*b)/a);
}

Epicicloida
276 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

function xFunc(t){
return a*t*Math.cos(t);
}
function yFunc(t){
return a*t*Math.sin(t);
}

Spirala lui Arhimede

function xFunc(t){
return (a-b)*Math.cos((b/a)*t) +
b*Math.cos(t-(t*b)/a);
}
function yFunc(t){
return (a-b)*Math.sin((b/a)*t) -
b*Math.sin(t-(t*b)/a);
}

Hipocicloida

Melcul lui Pascal (se propune ca experiment / demonstraţie):


function xFunc(t){
return 2*(a*Math.cos(t)+ b)*Math.cos(t);}
function yFunc(t){
return 2*(a*Math.cos(t)+ b)*Math.sin(t);}
...
function makePlot(){ //functia de desenare a unei curbe prin
discretizare [4]
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 277

var dstring="M"+xFunc(0)+","+yFunc(0)+" ";


for(t=0;t<nplotpoints;t++){
dstring=dstring+"L"+xFunc(period*(t+1)/nplotpoints)+","+yF
unc(period*(t+1)/nplotpoints)+" ";
}
fPlot.setAttributeNS(null, "d", dstring);
}
============

Bibliografie
[1] Adobe, SVG Viewer, http://www.adobe.com/svg/viewer/install/main.html, 2005
[2] Tim Berners-Lee, inventor of the WWW, Personal Web Page, www.w3.org/People/Berners-Lee
[3] Diana Diaconu, Pagini Web cu JavaScript, Editura EduSoft, 2006
[4] David Lane, Scalable Vector Graphics, Published February 2007; article ID 1381,
http://mathdl.maa.org/mathDL/4/?pa=content&sa=viewDocument&nodeId=1381, 2007
[5] SVGOPEN Organisation, http://www.svgopen.org/2007/aim_en.shtml
[6] SVG Foundation, http://www.svgi.org
[7] SVG Wiki, http://wiki.svg.org/Main_Page/
[8] Marin Vlada, De la teorema lui Green la geometria computaţională, CNIV-2006, Conferinţa Naţională de
Învăţământ Virtual, Software Educaţional, Ediţia a IV-a, 27-29 octombrie 2006, Editura Universităţii din
Bucureşti, http://fmi.unibuc.ro/cniv/2006/, 2006
[9] Marin Vlada, Adrian Posea, Ioan Nistor, Călin Constantinescu, Grafică pe calculator în limbajele Pascal
şi C, vol. I, II, Editura Tehnică, Bucureşti, 1992
[10] Yahoo svg newsgroup, http://tech.groups.yahoo.com/group/svg-developers/
[11] John C. Whelan, Kelly Carey, SVG For Teaching 2D Graphics Standards,
http://www.svgopen.org/2005/papers/TeachingGraphicsStandards/index.html, 2005
[12] W3C, SVG – Scalable Vector Graphics, http://www.w3.org/Graphics/SV/
[13] W3C, Scalable Vector Graphics 1.1 Specification, http://www.w3.org/TR/SVG/SMIL
[14] W3C, XHTML, MathML, http://www.w3.org/markup/, http://www.w3.org/mat/
[15] W3Schools, SVG, http://www.w3schools.com/svg/default.asp

Grafica pe calculator, geometria computaţională și realitatea virtuală

Marin Vlada,
Universitatea din București

„O imagine valorează cât o mie de cuvinte”


(Proverb chinezesc)
„The book of nature is written in the characters of geometry"
(Galileo)

Odată cu apariţia display-ului grafic (Graphic Display), în anul 1953, s-a trecut la
o nouă etapă în dezvoltarea şi răspândirea calculatorului. Utilizarea bit-ului prin
organizarea eficientă a memoriei calculatorului, nu oferea nici hardware, nici software
posibilitatea de modelare spaţială a ieşirilor (OUTPUT). Reprezentările grafice folosind
caractere (numerice sau alfanumerice) nu era o soluţie care să realizeze o reprezentare
fidelă a obiectelor reale. Suportul hardware fiind inventat, în perioada 1960-1980 au fost
nevoie de cercetări şi experimente, modele, algoritmi si programe care să foloseacă
278 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

aprinderea unui „pixel” (unitatea grafică indivizibilă oferită de un display grafic) ce


oferea şi culoare, dar mai ales o structură de reprezentare grafică. Această structură
reprezintă în informatică, ceea ce reprezintă calculul integral în analiza matematică
(Newton, Riemann, Darboux, Leibniz etc.). Sistemul de diviziuni (proces de discretizare)
din calculul integral este analog rezoluţiei (matricea de pixeli) oferite de un display
grafic. Atunci s-a născut Grafica pe calculator: trasarea unui segment de dreaptă
(algoritmul Bresenham), trasarea cercului şi elipsei, trasarea şi aproximarea curbelor,
algoritmi de clipping (decupare) (algoritmul Cohen – Sutherland, algoritmul Suitherland-
Hodgman, algoritmul Weiler-Atherton), tehnici de vizualizare 2D şi 3D, modele de
iluminare şi reflexie, modele de tip rastru, modele vectoriale, tehnici de textură. Astfel, s-
au pus bazele pentru soluţii integrate software şi hardware pentru proiectare, analiză şi
producţie asistată de calculator (CAD/CAM/CAE) – Computer Aided Design.

Prin implicarea utilizării calculatorului în rezolvarea problemelor din multe


domenii, s-au definit şi rezolvat diverse cerinţe şi proiecte ce în trecut erau de
neconceput. Drumul deschis de Grafica pe calculator a fost continuat de Geometria
computaţională: domenii poligonale,
orientare spaţială, probleme şi algoritmi
de triangularizare, acoperirea convexă
în 2D şi 3D (algoritmul Quick Hull,
algoritmul Graham, algoritmul Jarfis
de înfăşurare, algoritmul lui Chan),
poligoane monotone, Diagrame
Voronoi (algoritmul Fortune),
Triangularizări Delaunay, Graf de
vizibilitate, Algoritmul lui Dijkstra,
probleme şi algoritmi de intersecţii,
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 279

dinamica mişcării obiectelor în spaţiu, probleme de apartenenţă a punctelor la un domeniu


(The Jordan curve theorem for polygons by Octavian Cismasu, Mc Gill University, Web
Project, 1997) .
După anul 1990, s-au obţinut rezultate deosebite în domeniul modelării şi
simulării obiectelor din lumea reală, atât prin elaborarea de tehnici şi algoritmi specifici,
cât prin apariţia produselor software care să sprijine acest domeniu. Astfel, Realitatea
Virtuală (Virtual Reality) este un nou domeniu al Informaticii ce are un impact deosebit
în utilizarea calculatorului pe scară largă şi pentru o mare diversitate de teme. Pentru
referinţe suplimentare recomandăm consultarea referinţelor [10, 16].

Teorema lui Green şi aria unui poligon oarecare

George Green (1793–1841) matematician


şi fizician englez, este cunoscut prin
contribuţiile sale de analiză matematică
cu aplicaţii în teoria electricităţii şi
magnetismului („An Essay on the
Application of Mathematical Analysis to
the Theories of Electricity and
Magnetism”, George Green, 1828)
[http://en.wikipedia.org/wiki/Green%27s_
theorem]. Formula lui Green stabileşte o
legătură între integrala curbilinie şi
integrala dublă. În figura alăturată, într-
un sistem cartezian de axe XOY, se
consideră domeniul D din R2 ce are ca frontieră curba C închisă constituită din reuniunea
curbelor C1, C2, C3, C4. Se consideră L si M funcţii cu derivatele parţiale continue (de
clasa C1) pe domeniul deschis D,

Curba C1 este dată de ecuaţiile parametrice x = x, y = g1(x), a ≤ x ≤ b. Curba C3 este dată


de ecuaţiile parametrice x = x, y = g2(x), a ≤ x ≤ b. Domeniul D se exprimă prin x  [a, b]
şi g1(x) < y < g2(x), având frontiera constituită din curbele C1, C2, C3, C4, unde C2 si C 4
sunt linii verticale.
Formula lui Green este [18]:

În [2] se demonstrează că dacă D  R este domeniu mărginit, cu FrD=Im  ,


2

 drum de clasă C1 pe porţiuni,  : [a, b]  R 2 ,    1   2  ...   n 


1
2 
m( D )  ( xdy  ydx )   dxdy , unde m(D) este măsura Jordan.
D

În principal, se consideră L(x,y)= - y/2, M(x,y)= x/2 şi se aplică formula lui Green.
280 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Teoremă (tip Green).

Dacă D  R2 este un domeniu mărginit simplu conex având frontiera FrD = Im dată
de un drum de clasă C1 pe porţiuni,    1   2  ...   n 
b
1 n
aria( D)    ( xdy  ydx) ,unde  i : [a, b]  R 2 ,  i (t )  ( x(t ), y(t )) , i=1,n
2 i 1 a

Pentru determinarea ariei unui poligon oarecare (convex sau concav), rămâne
doar să modelăm laturile poligonului cu drumuri de clasă C1, lucru ce este posibil
deoarece acestea sunt segmente de dreaptă (curbe de gradul I). Folosind aplicaţia
bijectivă între segmentele reale [0,1] şi [a,b], dată de φ(t) = a + t(b-a), linia poligonlă se
modelează cu reuniunea drumurilor γi reprezentate parametric astfel:
 i : [a, b]  R 2 ,  i (t )  ( x(t ), y(t )) , i=1,n,
unde
x(t) = xi + t (xi+1 - xi), y(t) = yi + t (yi+1 - yi), i=1,n-1
cu observaţia că pentru ultimul drum γn ecuaţiile parametrice sunt
x(t) = xn + t (x1 – xn), y(t) = yn + t (y1 – yn).

În concluzie, aria unui poligon oarecare (convex sau concav) determinat de


coordonatele vârfurilor sale este dată de următoarea formulă:
1 n xi yi
S 
2 i 1 xi 1 y i 1
unde poligonul este dat de linia poligonală P=P1.....Pn, Pi(xi,yi), i=1,n.
În aplicaţiile din ştiinţă şi tehnică, în proiectele şi aplicaţiile ce utilizează
calculatorul, se întâlneşte utilizarea următoarelor formule pentru aria uni poligon oarecare
(convenție: xn+1=x1, yn+1=y1):
1 n xi yi
Formula 1: S  
2 i 1 xi 1 y i 1
(suma ariilor „triunghiurilor”)

1 n
Formula 2: S   ( xi  xi 1)  ( yi 1  yi) (suma ariilor „trapezelor”)
2 i 1
ne,v
Formula 3: S  (  ni  1)  a 2 (Teorema lui PICK, contorizare noduri),
2
când poligonul are vârfurile situate în nodurile unei reţele de pătrate de arie
 a2 (coordonatele date în numere întregi), şi
 ne,v = numărul nodurilor situate pe laturi şi in vârfurile poligonului
 ni = numărul nodurilor situate în interiorul poligonului
 a = latura pătratului (lungimea laturii în funcţie de unitatea de măsura a
sistemului de coordonate).
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 281

Observaţii. Dacă se cosideră că toate vârfurile poligonului sunt în cadranul I (dacă nu, se
poate face o translaţie), Formula 1 se poate demonstra şi prin metoda inducţiei matematice. Aria
poligonului este dată de suma ariei triunghiurilor ce au ca vârfuri, originea sistemului de
coordonate şi cele două vârfuri ce reprezintă extremele unei laturi curente ce determină linia
poligonală. Pentru Formula 2, se proiectează fiecare latură pe axa OY şi se obţine un trapez. Suma
ariilor trapezelor obţinute este aria poligonului.

Bibliografie
[1] CGAL - Computational Geometry Algorithms Library, http://www.cgal.org/
[2] Colojoară I., Lecţii de analiză matematică, Facultatea de matematică, Universitatea din Bucureşti,
Tipografia Universităţii, 1979.
[3] Cristea, V., C. Giumale, E, Kalisz, Al. Paunoiu, Limbajul C standard, Ed. Teora, Bucureşti, 1992.
[4] Tom Davis, Practical calculation of Polygonal Areas, Pick’s Theorem, 2006 http://www.geometer.org/
mathcircles/polyarea.pdf,
http://www.geometer.org/mathcircles/pick.pdf
[5] Eppstein D., http://www.ics.uci.edu/~eppstein/index.html
[6] Goodman, J. E. and O'Rourke, J., eds. , Handbook of Discrete and Computational Geometry (2nd Ed.).
CRC Press, 2004.
[7] John Louis von Neumann, http://ei.cs.vt.edu/%7Ehistory/VonNeumann.html
[8] O'Rourke, J., Computational Geometry in C (2nd Ed.). Cambridge University Press., 1998.
[9] Popovici, M. D., Popovici, M. I., C++. Tehnologia orientată spre obiecte. Aplicaţii, Ed. Teora, Bucureşti,
2000.
[10] Pop D., Petcu D., Modelarea lumii tridimensionale, Editura Eubeea, Timişoara, 2004.
[11] Vlada, M., Informatică, Universitatea din Bucureşti, Ed. Ars Docendi, Bucureşti, 1999.
[12] Vlada, M., Poligoane stelate. Problema lui Hopf şi Pannwitz, Gazeta de matematică, nr. 8/1995, pag.
339-348.
[13] Vlada, M., Rezolvarea problemelor folosind Eureka, software educaţional, www.unibuc.ro/eBooks/
informatica/eureka/, Universitatea din Bucuresti, 2003.
[14] Vlada, M., Concepul de algoritm-abordare modernă, Gazeta de informatică, vol. 13/2 şi 3, pp. 25-30, pp.
35-39, Agora, Cluj Napoca, 2003.
[15] M. Vlada, Birotică: Tehnologii multimedia, Editura Universităţii din Bucureşti, 2004.
[16] M. Vlada, D.M. Popovici, Realitatea Virtuala (Virtual Reality), tehnologie moderna a informaticii
aplicate, CNIV-2004, Noi tehnologii de E-Learning, Conferinţa Naţională de Învăţământ Virtual, Software
Educaţional, Ediţia a II-a, 29-31 octombrie 2004, Editura Universităţii din Bucureşti, 2004
[17] WIKIPEDIA, http://ro.wikipedia.org/wiki/Matematica, http://ro.wikipedia.org/wiki/Informatic%C4%83
[18] WIKIPEDIA , The Free Encyclopedia – http://en.wikipedia.org/wiki/Greens_theorem
[19] CNIV 2006 – Conferinţa Naţională de Învăţământ Virtual , edtiţia a IV-a 2006,
http://fmi.unibuc.ro/cniv/2006/centenar-moisil/
282 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Anexă. „Calendarul 1982” realizat pe o imprimată matriceală pe calculatorul electroic


românesc FELIX C 256, în limbajul Cobol/Fortan (Sursa: Conf. Dr. Cristian Marinoiu,
Universitatea „Petrol-Gaze” din Ploiești; în acea perioadă era angajat la o bancă și
executa programele pe calculatorul de la Centrul Teritorial de Calcul Ploiești).
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 283

Impactul utilizării calculatorului – noi abordări în rezolvarea problemelor

Marin Vlada,
Universitatea din București

Evoluția limbajelor și a științelor


MOTTO:
„Matematica face ca din proprietăți ce nu-i aparțin, să se obțină alte proprietăți
ce nu-i aparțin. Utilizatorul de matematică trebuie să asimileze teorii
și tehnici noi și subtile pentru a beneficia de marele potențial al calculatorului.”
Ludwig Wittgenstein (1889-1951) – filozof, inginer, arhitect

„Matematica este un mod de exprimare a legilor naturale,


este cel mai simplu şi cel mai potrivit chip de a înfăţişa o lege generală
sau curgerea unui fenomen, este cea mai perfectă limbă
în care se poate povesti un fenomen natural.”
Gheorghe Ţiţeica (1873-1939)

Dacă limbile (limbajele naturale ale popoarelor 35) sunt într-o continuă evoluție,
schimbare și se dezvoltă, astfel, o limbă este ca un organism viu, tot așa și științele sunt
într-o continuă evoluție, schimbare și se dezvoltă, fiind considerate limbaje ale
cunoașterii ce oferă teorii, metode, tehnici și instrumente pentru a modela și prelucra
cunoașterea. „Limba latină disciplinează spiritul. Aceasta este la fel ca și matematica, ce
realizează o reprezentare și o ordonare a cunoașterii”, acad. Dan Berindei.
Exemplificăm aceste idei prin apariția și dezvoltarea spectaculoasă a Informaticii care se
datorează rezultatelor și contribuției mai multor științe (matematica, cibernetica,
automatica, electronica etc.).
În primul rând, prin studiul și analiza limbajelor naturale, oamenii de știință –
matematicieni, ingineri, lingvisti, filozofi etc. – au creat și dezvoltat limbajele formale ce
au stat la baza conceptelor de gramatici și automate (în România, în anul 1964, S.
Marcus scrie cartea Gramatici și automate finite, Ed Academiei), în final acestea au
generat limbajele de programare. În al doilea rând, prin construirea de calculatoare din
ce în ce mai performante și, prin apariția de metode și tehnici noi oferite de utilizarea
calculatorului și de dezvoltarea științelor, apar continuu abordări noi în rezolvarea
problemelor. În acest proces de modelare și prelucrare a cunoașterii un rol esențial pentru
adaptarea omului la natură este etapa de rezolvare a problemelor.
În mai toate științele, există exemple în care o problemă după ce a fost enunțată, a
fost rezolvată, după 50 de ani, 100 de ani, sau chiar după sute de ani. Acest lucru
demonstrează continua evoluție, schimbare și dezvoltare a științelor. În matematică, de
exemplu, problema celor 4 culori a fost enunțată de studentul englez Francis Guthner
(rezolvarea i-a fost cerută de un geograf din Edinburgh), în anul 1852: „sunt suficiente 4
culori pentru a colora o hartă ce reprezintă diverse ţări, cu condiţia ca oricare două
ţări vecine (cu frontiera comună) să fie colorate cu culori diferite”. După mai bine de
100 de ani și după mai multe încercări de rezolvare, problema a fost rezolvată, folosind
câteva zile și execuția unui calculator electronic, de la Universitatea Illinois, SUA – care

35
"The web is vast and infinite. Its pages link together in a complex network, containing remarkable
structures and patterns. Some of the clearest patterns relate to language. Most web pages link to other pages
on the same web site, and the few off-site links they have are almost always to other pages in the same
language. It's as if each language has its own web which is loosely linked to the webs of other languages.
However, there are a small but significant number of off-site links between languages. These give tantalizing
hints of the world beyond the virtual." [1]
284 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

a lucrat aproape 1200 ore -, de Appel Kenneth și Haken Wolfgang (October 1977) (Ref.:
„Solution of the Four Color Map36”, Scientific American, 237 (4), pp. 108–121).
Rezolvarea a fost posibilă prin elaborarea unui algoritm de generare a configurațiilor ce
reprezintă soluțiile problemei. Ulterior, peste un an, folosind o procedură de reducere a
configuraţiilor, deci un nou algoritm, F. Allaise de la Universitatea Waterloo, Ontario,
Canada, a reuşit să obţină rezolvarea prin execuția a 50 de ore calculator. Metoda utilizată
atunci, a devenit cunoscuta „metodă Backtraking” ce se predă elevilor și studentilor de la
informatică. Astăzi, pe actualele calculatoare, o astfel de procedură durează câteva
secunde. De asemenea, precizăm că în anul 1972 a fost construit un compilator Prolog –
limbaj al Inteligenței artificiale, ce are motorul de inferență (căutare de soluții) bazat pe
metoda Backtraking.
Un alt exemplu de mare anvergură, un proiect internațional la care au lucrat mii
sau chiar sute de mii de cercetători și oameni de știință, este rezolvarea completă a
secvenței codului genetic ADN – The Human Genome Project Color Map37 (1995-2005).
Evident că această rezolvare istorică a codului genetic a fost posibilă prin contribuția
miilor de oameni de știință, ce s-au folosit de stadiul dezvoltării a mai multor științe,
inclusiv de performanțele spectaculase din domeniul Informaticii și al calculatoarelor.

Problema călugărului

Un călugăr trăiește într-o mănăstire din vârful unui munte. Periodic, dimineața, la o
anumită oră, trebuie să coboare pe un drum, într-o localitate de la poalele muntelui,
unde va înnopta. Dimineața următoare, la aceeași oră din ziua precedentă, acesta se va
întoarce la mănăstire pe același drum. Să se demonstreze că există un loc de pe drumul
parcurs de călugăr, prin care trece la aceeași oră, la ducere și la întoarcere. (© M.
Vlada, 2016)

Rezolvare
Analizând cu atenție enunțul problemei – la școală și în universități, se tratează
cu superficialitate definițiile și enunțurile și, de aici se ajunge la înțelegerea greșită a
problemelor și teoriilor –, se poate întreba dacă problema este o problemă de matematică,
de fizică, de geografie, sau de ce nu, de informatică.
Să trecem direct la explicații despre această problemă. Enunțul îmi apartine, dar
ideea problemei, nu. Mi-am amimtit de această problemă, acum, câțiva ani, când
încercam să găsesc probleme mai deosebite, care să fie din realitate și care să-i poată
atrage pe elevi/studenți în procesul de învățare. De fapt, este vorba de o schimbare de
atitudine a profesorilor față de învățare. Enunțul problemei îl găsisem în timpul liceului,
într-o carte de matematică, la capitolul „proprietatea lui Darboux”. Prin urmare, se poate
spune că este o problemă de matematică. Dar, vom vedea. E mult timp de atunci. Recent,
mi-am propus să găsesc enunțul problemei. Cum era firesc, am apelat la Google – se zice
că acceptă orice întrebare! Fără succes. Planul B a fost să merg la biblioteca Facultății de
Matematică și să caut în 2-3 cărți pe care le bănuiam că ar conține enunțul. Dezamăgire!
Nu am gasit. Nu mai aveam inspirație să concep planul C, D etc. După câteva căutari de

36
https://en.wikipedia.org/wiki/Four_color_theorem
37
http://mvlada.blogspot.ro/2015/03/informatics-and-information-technology.html
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 285

strategie (nu cum face Google), m-am hotărât: voi fi capabil să reinventez enunțul și să
rezolv problema!
Experiența din această activitate mi-a aratat că am ajuns la enunțul problemei, în
același timp în care am terminat rezolvarea ei. De fapt, așa se întâmplă în activitatea de
cercetare. Multe au fost cazurile când credeam că am ajuns să spun că am reușit să
descopăr enunțul. Trebuie să recunosc: am ajuns la două enunțuri ce erau greșite.
S. Marcus spunea: să-i lăsăm pe elevi să caute singuri soluția, chiar dacă fac greșeli,
deoarece prin acest proces de căutare și de corectare a ceea ce s-a greșit, se ajunge la
învățarea adevărată, și nu la o învățare superficială, prin metoda memorării și prin
utilizarea inteligenței altora. E drept că, am citit dintr-un studiu american că „învățăm mai
mult din succese, decât din eșecuri”. Probabil că „eșecul” aici nu are sensul „greșelilor”
din activitatea de căutare a unei rezolvări.

Metoda
Teoretic, trebuie să analizăm evoluția timpului în cele două etape de parcurgere a
distanței, ce trebuie să fie parcursă între cele două puncte ale drumului parcurs. Dacă
notăm cu Y variabila timp, iar cu X notăm variabila distanța parcursă, atunci această
evoluție (depentența) se exprimă matematic printr-o funcție f: R  R, y=f(x), unde
aplicația f este necunoscută si trebuie determinată. Aplicația f modelează prima etapă (de
ducere), analog pentru etapa a doua (de întoarcere), vom nota funcția g: R  R, y=g(x),
unde aplicația g este necunoscută și trebuie determinată.
Practic, pentru a determina cele două funcții (evoluția timpului în cele două
etape), vom utiliza metoda folosită și în determinarea orbitelor planetelor din sistemul
solar. Orbita unui corp ceresc este traiectoria urmată de acel corp prin spațiul cosmic. În
astronomie, există cele 3 legi ale lui Kepler ce descriu mișcările planetelor în jurul
soarelui.
Se va folosi Metoda celor mai mici pătrate (MCMMP38, Legendre, 1806) pentru
Dependenţa funcţională a unei variabile Y (dependenţă-efect) faţă de altă variabilă X
(independentă-cauză), ce poate fi studiată empiric, pe cale experimentală. Date fiind
valorile observate pentru două variabile aleatoare X şi Y, fie acestea (xi,yi), i = 1,…, n,
prin funcţie de regresie39 se va înţelege acea funcţie Y = f(X) care aproximează cel mai
bine setul de date observate. De regulă, criteriul ales este dat de metoda celor mai mici
pătrate (MCMMP), adică acea funcţie f pentru care se minimizează suma pătratelor
erorilor dintre valorile măsurate şi cele estimate (procedeu de fitare), adică suma [6, 7]:
n
S  [ yi  f ( xi )]2
i 1

Pentru aceste date experimentale, în cazul nostru, vom simula valori pentru
distanța (variabila x) și timp (variabila y), atât pentru etapa I – dependența y=f(x), cât și
pentru etapa II – dependența y=g(x). Pentru cei care vor să nu aibă nelămuriri în cele ce
urmează, precizăm că dacă la simularea lui f , pentru timp (y), valorile sunt crescătoare,

38
De obicei, metoda celor mai mici pătrate este atribuită lui Carl Friedrich Gauss (1795), dar se ştie că
aceasta a fost publicată pentru prima dată de Adrien Marie Legendre [Ref.: Bretscher, O., 1995].
39
Termenul de „regresie” a fost inventat de către Francis Galton (1822-1911) în secolul al XIX-lea pentru a
descrie un fenomen biologic. De asemenea, a introdus conceptul statistic de corelaţie şi a promovat pe scară
largă regresia folosind conceptul de medie [Ref.: Bulmer M., Francis Galton, 2003].
286 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

în schimb, la simularea lui g, pentru timp (y), valorile sunt descrescătoare. Explicație:
„un loc de pe drumul parcus” trebuie să fie unic determinat față de un reper fix, de
exemplu „mănăstire”, iar în reprezentarea grafică a celor două funcții f și g, să fie originea
sistemului cartezian XOY. Dacă în cazul lui g, valorile pentru timp (y) sunt crescătoare,
ar fi o modelare greșită, deoarece ar însemna ca g să simuleze tot plecarea de la
mănăstire. În tabelul 1 sunt prezentate aceste valori ce simulează evoluțiile f și g.

Evoluția timpului la ducere Evoluția timpului la întoarcere Evoluția timpului la D/I


Distanța Timp-d Distanța Timp-i Distanța Timp-d Timp-i
0 0 0 60 0 0 60
10 5 10 55 10 5 55
20 7 20 43 20 7 43
30 10 30 35 30 10 35
40 13 40 24 40 13 24
50 16 50 20 50 16 20
60 20 60 15 60 20 15
70 25 70 10 70 25 10
80 30 80 7 80 30 7
90 33 90 6 90 33 6
100 38 100 5 100 38 5
110 50 110 3 110 50 3
120 60 120 0 120 60 0

Tabelul 1. Valori experimentale pentru cele două evoluții f și g.

Calculele pentru aplicarea MCMMP sunt implementare în programul Excel ce


oferă serviciul „Tredline” în cazul unor date experimentale, ce urmează să aproximeze
modelul/evoluția.

Fig. 1. Rezultate pentru f obținute cu programul Excel


ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 287

Fig. 2. Rezultate pentru g obținute cu Excel

Fig. 3. Rezultate pentru f și g (simultan) obținute cu Excel

Rezultate
Determinarea locului din drumul parcus, când călugărul trece la aceeași oră, se
obține prin intersecția graficelor f și g ce sunt reprezentate în fig. 3. Evident, trebuie
găsite rădăcinile ecuației h(x) = 0, unde funcția

h(x)= f(x) - g(x) = 0.002*x*x - 1.176*x +59,18 .


288 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

5
Fig. 4. Graficele celor două parabole f și g folosind calculatorul științific http://web2.0calc.com

Metoda 1 - calcul direct: x1 = 532,4239921;


x2 = 55,57600792.

Metoda 2- folosind Goal Seek din Excel,

Inițial: x = 50
h(x) = 0,000763387
final: x = 55,57520747

Soluția: distanța = 55,57 față de locul mănăstirii (în această simulare nu am utilizat
unități de măsură pentru valori).

Sinteza rezolvării: Se simulează evoluția timpului la ducere, respectiv, la


întoarcere. Folosind regresia neliniară (Excel) se determină funcțiile f(x) și g(x) – funcții
continue ce au proprietatea lui Darboux.
Folosind calculatorul științific http://web2.0calc.com se obțin graficele celor două
parabole f și g (fig. 4). Intersecția celor două grafice indică valoarea locului (punctului)
căutat. Se determină prin meteda 1-direct, și metoda 2 folosind Goal Seek din Excel.

Verificare suplimentară: verificarea evoluției timpului de parcurcere (ducere,


întoarcere) folosind alt software, și anume limbajul JavaSc ript și biblioteca de primitive
grafice: wzjsgraphics.js by Walter Zorn, 2009.
Referință: http://unibuc.ro/prof/vlada_m/Computer_Graphics.php
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 289

Fig. 5. Reprezentarea grafică a evoluțiilor f și g folosind JavaScript și biblioteca Walter Zorn

PROGRAMUL JavaScript
==============
<html>
<head>
// Problema calugarului: Evolutia timpului, la ducere si la intoarcere,
f(d) = 0.002d*d + 0.117d + 2.670; g(d)= 0.004d*d - 1.059d + 61.85, d din
[0, 120] (M. Vlada 2016)
<script type="text/javascript" src="wz_jsgraphics.js"> // by Walter Zorn,
2009 </script>
</head>
<body>
<script language="JavaScript"> // M. Vlada 12.09.2016
var ob=new jsGraphics();
var d=120; // distanta
ob.setColor("#000000"); // culoare black
//Axele
ob.drawLine ( 100, 500, 900, 500);
ob.drawLine ( 100, 500, 100, 30);
// se genereaza graficele f si g prin discretizarea intervalului [0,
120], pasul=1.0
var dx=120 ; var dy=80 ; var hx= 800 ; var hy= 470;
var x1 = 0 ; var y1 = 2.67 ;
var x3 = 0 ; var y3 = 61.85 ;
ob.setColor("#ff0000"); // culoare red
for(i=1; i <=d; i++)
{
var x2 = i ; var y2 = 0.002*i*i +0.117*i+2.67;
var x4 = i ; var y4 = 0.004*i*i -1.059*i+61.85;
var x11 = 100 + Math.floor((x1-0)/dx*hx); var y11 = hy - 30 -
Math.floor((y1-0)/dy*hy) ;
290 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

var x22 = 100 + Math.floor((x2-0)/dx*hx); var y22 = hy - 30 -


Math.floor((y2-0)/dy*hy) ;
var x33 = 100 + Math.floor((x3-0)/dx*hx); var y33 = hy - 30 -
Math.floor((y3-0)/dy*hy) ;
var x44 = 100 + Math.floor((x4-0)/dx*hx); var y44 = hy - 30 -
Math.floor((y4-0)/dy*hy) ;
ob.drawLine (x11, y11, x22, y22);
ob.drawLine (x33, y33, x44, y44);
x1 = x2 ; y1=y2 ; x3= x4 ; y3=y4;
}
ob.paint();
</script>
</body>
</html>
=============

Bibliografie
[1] Daniel Ford and Josh Batson, Languages of the World (Wide Web) , News on Google Research, 2011 ,
https://research.googleblog.com/2011/07/languages-of-world-wide-web.html, accesat 2016
[2] M. Vlada, „Matematica pentru elevi, abstractă sau utilă ?”, În Lucrările celei de-a XI-a Conferință de
Învățământ Virtual, Editura Universității din București, ISSN 1842-4708, 2013, pag. 107-114
[3]M. Vlada, O. Istrate, Concursul „Didactica Nova” – curriculum academic inovativ, În Lucrările celei
de-a XI-a Conferință de Învățământ Virtual, Editura Universității din București, ISSN 1842-4708, 2013, pag.
19-24
[4] M. Vlada, „Structuri şi obiecte matematice cu aplicaţii în chimie şi fizică”, În Lucrările celei de-a XI-a
Conferință de Învățământ Virtual, Editura Universității din București, ISSN 1842-4708, 2013, pag.102-106
[5] M. Vlada, „Matematica pentru elevi, abstractă sau utilă ?”, În Lucrările celei de-a XI-a Conferință de
Învățământ Virtual, Editura Universității din București, ISSN 1842-4708, 2013, pag. 107-114
[6] M. Vlada, „Modele neliniare. Teorie şi aplicaţii”, În Lucrările celei de-a X-a Conferință de Învățământ
Virtual, Editura Universității din București, CNIV 2012, ISSN 1842-4708, 2012, pag. 57-65
[7] ] M. Vlada, Informatică aplicată. Modele de aproximare, software şi aplicaţii, Editura Universităţii din
Bucureşti, print, ISBN 778-606-16-0190-5, 257 pag., 2012

Modele neliniare. Teorie şi aplicaţii folosind calculatorul

Marin Vlada,
Universitatea din București

În activitatea practică din diverse domenii ştiinţifice, economice, sociale etc. apar
cele mai complexe probleme ce trebuie rezolvate. Ştiinţele şi cercetarea ştiinţifică s-au
dezvoltat influenţate de complexitatea acestor probleme şi de proiectele societăţii umane.
Tezaurul conoaşterii umane este influenţat de ştiinţă şi tehnică, de cultură şi artă, şi în
special de modul de rezolvare a problemelor nerezolvate din societatea umană [1,2].
Astfel de probleme apar în chimie, biologie şi medicină, în fizică şi geologie, în
economie şi sociologie etc. Pentru studierea şi analiza proceselor şi fenomenelor aceste
activităţi reclamă metode şi tehnici valide şi eficiente, astfel că modele utilizate să
elimine căt mai mult incertitudinile şi aproximările.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 291

Regresia neliniară (Nonlinear Regression)

Date fiind valorile observate pentru două variabile aleatoare X şi Y, fie acestea
(xi,yi), i=1,…,n, prin funcţie de regresie se va înţelege acea funcţie Y = f(X) care
aproximează cel mai bine setul de date observate. De regulă, criteriul ales este dat de
metoda celor mai mici pătrate (MCMMP), adică acea funcţie f pentru care se
minimizează suma patratelor erorilor între valorile măsurate şi cele estimate (procedeu de
fitare), adică suma
n
S  [ yi  f ( xi )]2
i 1
Dacă f este o funcţie neliniară, atunci se obţine regresia neliniară, reprezentată
grafic printr-o (curbă de regresie). Dreapta de regresie, împreună cu abaterile standard
ale variabilelor X şi Y, sau cu coeficientul de corelaţie, pot constitui o rezumare
rezonabilă a distribuţiei comune a celor două variabile X si Y. Adecvanţa modelului
neliniar este mai bună atunci când diagrama de împrăştiere are formă de elipsă.

Metoda celor mai mici pătrate (MCMMP)

Dependenţa funcţională a unei variabile aleatoare Y (dependentă-efect) faţă de


altă variabilă X (independentă-cauză) poate fi studiată empiric, pe cale experimentală,
efectuîndu-se o serie de măsurători asupra variabilei Y pentru diferite valori ale variabilei
X. Rezultatele se pot prezenta sub formă de tabel sau grafic.
Problema care apare în acest caz este de a găsi reprezentarea analitică a
dependenţei funcţionale căutate (procedeu de fitare), adică de a alege o expresie (formulă
sau model matematic) care să descrie rezultatele experimentului printr-un model
matematic.

Formula (modelul matematic-expresia analitică) se alege dintr-o mulţime de


formule determinate (modele de aproximare neliniare), de exemplu:
 y = ax2 + bx + c (parabola),
 y = ax3 + bx2 + cx + d (polinom gradul 3),
 y = ax4 + bx3 + cx2 + dx + e (polinom gradul 4),
 y = a + b ln x (logaritm),
 y = aebx (exponentiala),
 y = a / ( 1 - c e-bx ) (exponential decay); y = a / ( 1 + c e-bx ) (logistic),
 y = a exp(-(x- c)/ b)2 (modelul gaussian)
 y = a xb (putere),
 y = a sin( bx + c) + d (sinusoida).
Pin urmare, problema constă în a determina parametrii a, b, c etc. în timp ce
formula (expresia analitică) este cunoscută dinainte, ca urmare a unor considerente
teoretice sau după forma prezentării grafice a datelor, în mod empiric.
Să considerăm, cazul general când avem p parametri, și astfel vom nota dependenţa
funcţională prin
y = f(x; a1, a2, ..., ap)
292 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Parametrii a1, a2, ..., ap nu se pot determina exact pe baza valorilor empirice y1,
y2,...,yn ale funcţiei, deoarece acestea din urmă conţin erori aleatoare. Problema
reprezintă obţinerea unei estimări „suficient de bune”.

Formularea problemei

Dacă toate măsurătorile valorilor varabilei Y sunt y1, y2,...,yn, atunci estimaţiile
parametrilor a1, a2,..., ap se determină din condiţia ca suma pătratelor abaterilor valorilor
măsurate yk de la cele calculate f(xk; a1, a2,..., an) să ia valoarea minimă, adică sa fie
minimă expresia
n
S (a1 , a2 ,, a p )  [ y k  f ( xk ; a1 , a2 ,...,a p )]2
k 1
Consideraţia formulată se păstrează şi în general, pentru determinarea
parametrilor unei funcţii de mai multe variabile (2, 3 etc.), adica o variabila dependenta
(efect) si mai multe variabile independente (cauze). De exemplu, pentru variabila Z
(efect) ce depinde de două variabile independente (cauze) X şi Y, adică Z=f(X,Y),
estimaţiile parametrilor a0, a1,..., ap se determină din condiţia ca expresia
n
S (a1 , a2 ,, a p )  [ z k  f ( xk , y k ; a1 , a2 ,...,a p )]2
k 1
să fie minimă. Determinarea valorilor parametrilor a1, a2,..., ap, se face prin aplicarea
condiţiilor de obţinere a valorii minime în derivatele parţiale ale funcţiei S considerată în
variabilele a1, a2,..., ap , adică funcţia cu p variabile S(a1, a2,..., ap). Obţinerea acestor
valori înseamnă rezolvarea sistemului de p ecuaţii cu p necunoscute:
S
0
a1
S
0
a2

S
0
a p

Modelul logaritmic f(x)= a +b ln(x)

În cazul modelului logaritmic se studiază numai două variabile: X (cauză),


Y(efect) şi se doreşte găsirea dependenţei Y = f(X), unde f(x) = a + b lnx este o
dependenţă neliniară (funcţie logaritmică) cu p=2 parametri a şi b.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 293

Teorema 2.1 Dacă pentru variabilele X (cauză), Y(efect) se cunosc n probe (măsurări,
observaţii) prin valorile datelor (xi ,yi), i=1,..., n, modelul logaritmic f(x)= a + b ln(x)
este determinat de coeficienţii a și b având următoarele expresii:

n n n n
( y i ) (ln xi ) 2  ( ln xi )( y i ln xi )
a i 1 i 1
n
i 1
n
i 1

n (ln xi ) 2  ( ln xi ) 2
i 1 i 1

n n n

 yi ln xi  a  ln xi y i  na
b i 1
n
i 1
sau b 
i 1
n
.
 (ln x )
i 1
i
2
 ln x
i 1
i

Demonstraţie. În urma celor n probe (măsurări, observaţii) se cunosc datele (xi ,yi),
i=1,..., n şi trebuie să se determine coeficienţii a şi b astfel încât suma
n
S (a, b)  [ yi  (a  b ln xi )]2
i 1
să fie minimă.
Vom avea următoarele calcule:

[ yi  (a  b ln xi )]2  a 2  2ab ln xi  2ay i  2by i ln xi  b 2 (ln xi ) 2  yi ,


2

prin urmare
n
S (a, b)  [ yi  (a  bLn xi )]2 
i 1
n n n n n
 na 2  2ab  ln xi  2a  y i  2b ( yi ln xi )  b 2  (ln xi ) 2   y i2 .
i 1 i 1 i 1 i 1

Derivatele parţiale ale funcţiei S(a,b) sunt:

S n n
 2na  2b ln xi  2 yi
a i 1 i 1

S n n n
 2a ln xi  2 ( yi ln xi )  2b (ln xi ) 2 .
b i 1 i 1 i 1
294 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Condiţiile de obţinere a parametrilor a şi b sunt:


 S
 a  0
 , ceea ce conduce la sistemul de 2 ecuaţii cu 2 necunoscute:
 S  0
 b
n n
2na  2b ln xi  2 yi  0
i 1 i 1
n n n
2a ln xi  2 ( yi ln xi )  2b (ln xi ) 2  0
i 1 i 1 i 1

Pentru rezolvarea acestui sistem se înmulţeşte prima ecuaţie cu expresia


n n

 (ln xi ) 2 , iar a doua ecuaţie cu expresia


i 1
 ln x
i 1
i , după care din prima ecuaţie se

scade a doua ecuaţie.

Se va abţine următoare ecuaţie:

n n n n n n
2na  (ln xi ) 2  2a( ln xi ) 2  2 ( yi ln xi )( ln xi )  2( yi ) (ln xi ) 2  0 ,
i 1 i 1 i 1 i 1 i 1 i 1
adică

n n n n
( y i ) (ln xi ) 2  ( ln xi )( y i ln xi )
a i 1 i 1
n
i 1
n
i 1
,
n (ln xi )  ( ln xi ) 2 2

i 1 i 1

şi prin urmare din a doua ecuaţie, respectiv prima ecuaţie avem determinat coeficientul b:

n n n

 yi ln xi  a  ln xi y i  na
b i 1
n
i 1
sau b 
i 1
n
.
 (ln x )
i 1
i
2
 ln x
i 1
i

Aplicaţia 1. Pentru variabilele X şi Y presupunem că avem următoarele măsurări


(observaţii) din tabelul 1:

Modelul
logaritmic: f(x)= a +b ln(x)
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 295

Pentru a realiza calculul direct al coeficienţilor a şi b conform teoremei 2.1, vom


realiza în Excel calculele din tabelul de mai jos:

X Y Ln X Y ln X lnX^2
0.1 1310 -2.30259 -3016.39 5.301898
0.2 1300 -1.60944 -2092.27 2.59029
0.3 1293 -1.20397 -1556.74 1.449551
0.4 1283 -0.91629 -1175.6 0.839589
0.5 1276 -0.69315 -884.456 0.480453
0.6 1267 -0.51083 -647.216 0.260943
0.7 1260 -0.35667 -449.41 0.127217
0.8 1251 -0.22314 -279.153 0.049793
0.9 1243 -0.10536 -130.963 0.011101
1 1233 0 0 0
Suma 12716 -7.92144 -10232.2 11.11083
Tabelul 1. Calcule directe pentru modelul logaritmic

Se obţin următoarele valori:


a = 1245.508 si b = -32.9391, f(x)= 1245.508 -32.9391 ln(x), R2 = 0.9083.

1330
y = -32.939Ln(x) + 1245.5
1320
R2 = 0.9083
1310

1300

1290

1280 Series1
1270 Log. (Series1)

1260

1250

1240

1230

1220
0 0.2 0.4 0.6 0.8 1 1.2

Figura 1. Modelul logaritmic obtinut cu programul Excel

Prelucrările au fost realizate cu programul Excel şi arată că valorile pentru a şi b


obţinute conform teoremei 2.1 sunt identice cu valorile obţinute prin aplicarea modelului
logaritmic oferit de programul Excel.
296 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Modelul exponenţial f(x)= aebx

În cazul modelului exponenţial se studiază numai două variabile: X (cauză),


Y(efect) şi se doreşte găsirea dependenţei Y = f(X), unde f(x) = a ebx este o dependenţă
neliniară (funcţie exponenţială) cu p=2 parametri a şi b.

Teorema 3.1. Dacă pentru variabilele X (cauză), Y(efect) se cunosc n probe (măsurări,
observaţii) prin valorile datelor (xi ,yi), i=1,..., n, modelul exponenţial f(x) = a ebx este
determinat de coeficienţii a şi b având următoarele expresii:

n n n

 xi  ln yi  n ( xi ln yi )
b i 1 i 1
n
i 1
n
şi a= ep , unde
( xi ) 2  n xi
2

i 1 i 1

n n n n

 ( xi ln yi )  b xi  ln yi  b xi
2

p i 1
n
i 1
sau p 
i 1 i 1
.
x
n
i
i 1

Demonstraţie. În urma celor n probe (măsurări, observţtii) se cunosc datele (xi ,yi),
i=1,..., n şi trebuie să se determine coeficienţii a şi b astfel încât suma
n
S (a, b)  [ yi  a exp( bxi )]2
i 1
să fie minimă. Analog calculelor de la teorema 3.4 se poate realiza demonstraţia pentru
determinarea coeficienţilor a şi b. Calculul şi rezolvarea sistemului de ecuaţii este mai
laborios. În cele ce urmează vom aplica o altă metodă, şi anume vom face transformările
necesare pentru a aplica modelul liniar. De aceea, datele celor două variabile X şi Y, (xi
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 297

,yi), i=1,..., n, vor fi transformate astfel (xi , lnyi), i=1,..., n, iar modelul exponenţial va fi
transformat într-un model liniar astfel:

g(x) = ln(f(x), adica g(x) = bx + lna,

prin urmare este vorba de un model liniar g(x) de coeficienţi b (panta) şi lna (termenul
liber) ce trebuie aplicat datelor (xi , lnyi), i=1,..., n. Din acest motiv, în expresiile
coeficienţilor obținuţi pentru modelul liniar se va substitui yi cu lnyi . Să presupunem că
modelul liniar căutat este notat cu h(x) = x + , atunci dacă expresiile pentru coeficienţii
 şi  sunt determinate, pentru modelul iniţial (exponenţial) avem:

b =  şi a = e .

Dacă vom considera un model liniar notat prin h(x) = ax + b (pentru comoditate
a nu se confunda coeficienţii a şi b cu cei de la funcţia g), sistemul de ecuaţii ce rezultă
din anularea derivatelor parţiale ale modeluluil h (dreapta de regresie) conduce la
următoarele:

 n  n n n

2  y i  (ax i  b)(  x i )  0   i i


     bx i  0
2
2 x y 2 ax i 2
 i 1  i 1 i 1 i 1
 n   n n n
2  y  (ax  b)  0 2 y  2 ax  2 b  0
 
i 1
i i
 i 1
i 
i 1
i 
i 1

Se notează:
n n n n

 xi y i  Sxy
i 1
 x2i  Sxx
i 1
 x i  Sx
i 1
y
i 1
i  Sy

şi sistemul de ecuaţii devine:


S xy  aS xx  bS x  0
 .
S y  aS x  nb  0

Se obţin următoarele expresii pentru cei doi parametri a şi b:

Sx S y  nSxy 1 S xy  aS xx
a
(Sx )  nSxx
2
şi b 
n
 
S y  aSx sau b 
Sx
.

Cei doi parametri ai funcţiei model h(x) = ax + b s-au obţinut pentru datele (xi
,yi), i=1,..., n, de aceea prin substituirea yi cu lnyi vom obţine:
298 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

n n n n n

 xi  ln yi  n ( xi ln yi )  ( xi ln yi )  a  xi
2

a i 1 i 1
n
i 1
n
, b i 1
n
i 1
sau
( xi )  n xi x
2 2
i
i 1 i 1 i 1
n n

 ln yi  a xi
b i 1 i 1

n
Concluzie. În cazul modelului exponenţial pentru datele (xi ,yi), i=1,..., n trebuie să se
determine coeficienţii a şi b prin transformări asupra datelor iniţiale şi asupra modelului
exponenţial pentru a se aplica modelul liniar. Se vor urma următoarele etape:
1. datele celor două variabile X si Y, (xi ,yi), i=1,..., n, vor fi transformate astfel:
(xi , lnyi), i=1,..., n;
2. modelul exponenţial va fi transformat într-un model liniar astfel: g(x) = ln(f(x)
= bx + lna;
3. se determină modelul liniar notat cu h(x) = x +  ce se aplica datelor
transformate;
4. coeficienţii b şi a sunt determinaţi pentru modelul iniţial (exponenţial),
folosind relaţiile b =  şi a = e.

Aplicaţia 2. Vom aplica modelul exponenţial pentru variabilele X şi Y de la Aplicaţia 1.


Conform pasului 3 se aplică modelul liniar datelor transformate şi astfel se obţine
y = -0.0658x + 7.184, coeficientul de determinare R2 = 0.999.
La pasul 4, coeficienţii a şi b sunt determinaţi, pentru modelul iniţial (exponenţial),
folosind relaţiile b =  şi a = e, adică b = -0.0658 şi a = e7.184 = 1318.218.

7.19
y = -0.0658x + 7.184
R2 = 0.999
7.18

7.17

7.16

Series1
7.15
Linear (Series1)

7.14

7.13

7.12

7.11
0 0.2 0.4 0.6 0.8 1 1.2

Figura 2. Modelul liniar folosit pentru modelul exponenţial


ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 299

Pentru a argumenta şi compara rezultatele obţinute conform etapelor de mai sus, vom
aplica modelul exponenţial datelor iniţiale (xi ,yi), i=1,..., n cu ajutorul programului Excel
şi astfel se obţine:
y = 1318.2e-0.0658x, coeficientul de determinare R2 = 0.999.

1320
y = 1318.2e-0.0658x
1310
R2 = 0.999
1300

1290

1280
Series1
1270
Expon. (Series1)
1260

1250

1240

1230

1220
0 0.2 0.4 0.6 0.8 1 1.2

Figura 3. Modelul logaritmic obtinut cu programul Excel

Pentru a realiza calculul direct al coeficienţilor a şi b conform teoremei 3.1, vom


realiza în Excel calculele din tabelul de mai jos:

X Y Ln Y X^2 XLnY
0.1 1310 7.177782 0.01 0.717778
0.2 1300 7.17012 0.04 1.434024
0.3 1293 7.16472 0.09 2.149416
0.4 1283 7.156956 0.16 2.862783
0.5 1276 7.151485 0.25 3.575743
0.6 1267 7.144407 0.36 4.286644
0.7 1260 7.138867 0.49 4.997207
0.8 1251 7.131699 0.64 5.705359
0.9 1243 7.125283 0.81 6.412755
1 1233 7.117206 1 7.117206
5.5 12716 71.47853 3.85 39.25891

Tabelul 2. Calculul direct pentru modelul exponenţial

b -0.06579
a 1318.218 1318.218
300 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Prelucrările au fost realizate cu programul Excel şi arată că valorile pentru a şi b


obţinute conform teoremei 3.1 sunt identice cu valorile obţinute prin aplicarea modelului
exponenţial oferit de programul Excel.

Concluzii

În practică, la studiul diverselor procese şi fenomene apare o mare varietate de


modele neliniare. Diversitatea acestor modele neliniare este funcţie de varietatea
domeniile: chimie, fizică, medicină, biologie, sociologie, economie etc. Matematica şi
Informatica au schimbat esenţial metodele şi analiza pivind analiza datelor experimentale.
Chimia, Biologia, Farmacocinetica sunt domenii/discipline ce au beneficiat din plin de
dezvoltarea teoriilor, metodelor şi tehnicilor din Matematică şi Informatică prin
intermediul calculatorului. Astăzi procedurile pentru testarea medicamentelor includ
rezultate importante obţinute în cercetarea privind utilizarea medicamentelor la tratarea
diverselor boli. Bioinformatica, Biostatistica şi Biofarmacia sunt discipline ce oferă
diverse metode şi analize privind domeniul Farmacocineticii.

Bibliografie
[1] M. Vlada, „Modele neliniare. Teorie şi aplicaţii”, În Lucrările celei de-a X-a Conferință de Învățământ
Virtual, Editura Universității din București, CNIV 2012, ISSN 1842-4708, 2012, pag. 57-65
[2] ] M. Vlada, Informatică aplicată. Modele de aproximare, software şi aplicaţii, Editura Universităţii din
Bucureşti, print, ISBN 778-606-16-0190-5, 257 pag., 2012

Câteva aspecte privind activitatea în utilizarea limbajelor de programare

Prof. univ. dr. Valeriu Iorga,


Universitatea Politehnica București – Facultatea de Automatică și Calculatoare

I. Impresii despre limbajul de programare Python

Timp de 40 de ani, la Facultatea de Automatică și


Calculatoare, Universitatea Politehnica București (UPB) (foto:
Agerpres), am predat limbaje de programare (cursul
„Programarea Calculatoarelor”) studenților din anul I,
folosind ca limbaje de programare FORTRAN, Pascal și
C/C++. Desigur că, în cursul acestor ani mi-am pus întrebarea:
„care ar fi cel mai potrivit limbaj pe care să-l învețe un
începător?”. Mie mi-au plăcut limbajele Algol 60 și Pascal.
Dar, iubirea cea mare am găsit-o în ultimul timp și se numește
limbajul Python. Limbajul a fost conceput la începutul anilor
’90 de danezul Guido Van Rossum care, pe lângă informatician,
este și matematician.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 301

Interesul pentru acest limbaj de programare mi-a fost trezit de laudele ce i-au fost
adresate de un fost student. Am găsit pe Internet cărți potrivite (Rick Halterman –
Fundamentals of Python Programming, Fabrizio Romano – Learning Python) și am
pornit la treabă pentru a testa si a cunoaște cum se programează în acest limbaj. Pentru a
evita o lectură superficială, am instalat pe Laptop cea mai nouă versiune de Python și,
după o primă lectură, am început să rezolv diferite probleme, pentru a face o comparație
cu limbajul C++. Este o diferență enormă! În primul rând, m-a surprins simplitatea
sintaxei. Ce deosebire față de barocul încărcat din C++ !
 Nu mai există nici un fel de declarație,
 recunoașterea tipului variabilelor fiind dedusă din contextul folosirii lor,
 au dispărut o serie de delimitatori: punct virgulă după instrucțiuni, în locul
acoladelor, pentru a evidenția blocurile este suficientă indentarea, iteratorii
au primit o semnificație mult mai largă – poți itera pe o listă sau pe un
dicționar.
După ce am rezolvat câteva probleme cu întregi lungi am constatat că acestea nu
mai aveau nici un sens, întrucât întregii pot fi oricât de mari (poți calcula instantaneu
2^100).
A fost limitat sever efectul lateral de modificare a variabilelor globale în
interiorul funcțiilor. Parametrii funcțiilor sunt exclusiv de intrare, iar o funcție poate
calcula mai multe rezultate, pe care le întoarce printr-un tuplu. În corpul funcților pot
apare funcții locale, structura programului nemaifiind liniară.
Tipurile de date s-au simplificat enorm. În afara tipurilor standard: întreg (de
orice lungime), real (în precizie dublă) și șiruri de caractere există lista (eterogenă),
mulțimea și dicționarul.
Limbajul este multiparadigmă, putând fi folosit ca limbaj imperativ, orientat pe
obiecte sau funcțional. În limbajul Python, orice lucru (variabilă, funcție) este un obiect.
La definirea unei clase constructorul este obligatoriu și are un nume unic. Se pot defini
ierarhii de clase, folosind moștenirea simplă și multiplă. Proliferarea numelor a fost
rezolvată prin spațiile de nume și domeniile lor, care sunt evidențiate în mod natural, fără
declarații suplimentare. Căutarea unui nume se face spre exterior, pornind din domeniul
local, trecând apoi succesiv prin domeniile: înconjurător, global și predefinit.
Dezvoltarea unui program se face prin scripturi – fișiere de dimensiune mică,
organizate în module și pachete. Pentru a fi folosit de programul client, un modul, sau
numai unele funcții din el trebuie importate. Modulele sunt grupate în biblioteci.
Limbajul dispune de biblioteci impresionante (de exemplu, biblioteca Django).
Există un singur dezavantaj: limbajul, fiind un interpretor este mai lent decât un limbaj
compilat, dar acest neajuns este estompat de interacțiunea mult mai strânsă cu utilizatorul,
depanarea mult mai rapidă, portabilitatea ridicată. Suportă sistemele de operare Linux,
Windows și Mac, portarea unui program de pe un sistem pe altul fiind făcută cu ușurință.
302 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Concluzie
Limbajul ajută efectiv la formarea unui stil de programare, încurajând eleganța și
simplitatea. Se evaluează că un program scris în Python are 1/5 la 1/3 din dimensiunea
programului corespondent în Java sau C++. Păcat că l-am descoperit așa de târziu!

II. Concursuri de programare pentru echipe de studenți

Timp de aproape 25 de ani (1982-2006) am fost antrenor (coach) al echipei


Universității Politehnica București (UPB) ce participa la concursurile de programare
pentru studenți, așa încât mă voi referi mai mult la participarea echipelor de la
Universitatea Politehnica București – Facultatea de Automatică și Calculatoare.
Din initiațiva mea, în anul 1982, am organizat primul concurs de programare pentru
studenți. Era un concurs local în Politehnică. Au participat studenți de la Facultatea de
Automatică și Calculatoare și un student de la Facultatea de Electronică. În concurs au
fost date 3 probleme și a fost un singur câștigător cu 2 probleme rezolvate.

Perioada 1983-1989
Între anii 1983 și 1989 s-au organizat Concursuri naționale anuale, la care au participat
universități din București, Timișoara, Cluj-Napoca, Iași, Craiova, etc, care se desfășurau
pe rând în orașele mai sus menționate. Se propuneau 3-4 probleme care trebuiau rezolvate
în 3 ore. La aceste concursuri au participat cadre didactice din facultățile respective,
printre care amintim Mircea Petrescu, Nicolae Țăpuș, Irina Athanasiu, Ștefan Trăușan-
Matu de la Politehnica București, Ion Văduva și Marin Vlada de la Universitatea
București, Jurcă Ioan, Crețu Vladimir de la Timișoara, Nedevschi Sergiu de la Cluj,
Burdescu Dumitru de la Craiova și mulți alții. Corectarea problemelor era un chin: se
făcea de către cadrele didactice de la aceste facultăți și conținea un element de
subiectivism, soluțiile erau greu de descifrat, fiind foarte puțin documentate. Detectarea
erorilor în logica algoritmului era un proces dificil, erorile sintactice ducând, firesc, la
respingerea problemei.

Perioada 1992-2006
În anul 1992, echipa Facultății de Automatică, la care mă voi referi exclusiv în
continuare, a participat la primul Concurs internațional regional ACM (The ACM
SouthEastern European Region – ACM40 (Association for Computing Machinery), care s-
a desfășurat la Varna în Bulgaria.
Apoi, au urmat participări anuale la faza finală (mondială) a concursului ACM,
condiționate de câștigarea fazei regionale Europa de Sud-Est a concursului ACM.
Ce pot spune despre acest concurs ACM? Este cel mai prestigios concurs de algoritmică
la nivel mondial. Este un concurs foarte greu. Evaluarea este de tipul „totul sau nimic”.
Pentru a fi acceptată, o soluție trebuie să satisfacă absolut toate cazurile testate. Evaluarea
este făcută de un program software de evaluare, deci aspectele legate de ingeniozitatea

40
ACM brings together computing educators, researchers, and professionals to inspire dialogue, share
resources, and address the field's challenges. As the world’s largest computing society, ACM strengthens the
profession's collective voice through strong leadership, promotion of the highest standards, and recognition of
technical excellence. ACM supports the professional growth of its members by providing opportunities for
life‑long learning, career development, and professional networking - https://www.acm.org/ .
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 303

soluției, claritate, stil de programare sunt complet ignorate. Complexitatea este luată
totuși în considerare prin restricțiile impuse asupra duratei de execuție. Studenții erau
foarte motivați să participe, deoarece în afara prestigiului pe care îl obțineau, dacă se
clasificau în față, atrăgeau atenția firmelor Google și Microsoft, în vederea unei angajări
ulterioare. Când am vizitat Google Mountain View, am regăsit acolo mulți dintre foștii
mei studenți, care au participat în anii precedenți la concursuri ACM.
Făcând un tur al participărilor echipei Politehnicii din București avându-mă pe
mine ca antrenor la etapa finală a concursului ACM, aș menționa: Nashville 1995, San
Jose 1996, Atlanta 1997, Eindhoven 1999, Vancouver 2002, Hawaii 2003, Shanghai
2005.
Ce rezultate am obținut? În 1995, locul 16 cu 4 probleme rezolvate, în 1997 tot locul 16
cu 4 probleme, în 1999 locul 11 cu 5 probleme, în 2005 locul 10, cu 6 probleme
rezolvate.
Ce studenți s-au remarcat? Menționez câțiva dintre cei mai reprezentativi: Gheorghiță
Ștefan, Gheorghioiu Ovidiu, Stroe Mihai, Andreica Mugurel, Ghinea Dan, Marius
Andrei. Aproape toți sunt în prezent la Google.
Ce pregătire au studenții care participă la concursurile ACM? Aceștia sunt de obicei foști
studenți olimpici, participanți și câștigători ai olimpiadelor internaționale de informatică.
În 2001, la Vancouver, am primit premiul Life Coach Award, pentru participarea
constantă a echipei în etapa finală. Meritul a fost de fiecare dată, al echipei.

În imagine: Mugurel Andreica, student UPB (stg.), prof. univ. dr. Valeriu Iorga (ctr.) și Dan Ghinea (dr.),
student UPB. Echipa studenților de la Universitatea Politehnica din București (UPB) a câștigat medalia de
bronz la Finalele Mondiale ale Concursului Internațional Universitar de Programare ACM, competiție
organizată de IBM (foto Agerpres, https://foto.agerpres.ro/storage/watermark/128425.jpg)
304 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Despre Concursul ACM – SouthEastern European Region

The ACM SouthEastern European Region. Concursul ACM a fost creat în 1977,
la Computer Science Conference of ACM, având sediul, începând din 1989 la
Universitatea Baylor.
Concursurile ACM se desfășoară pe 3 niveluri:
 concursuri locale
 concursuri regionale
 concursul final
Limbajul Python a fost introdus recent, alături de Java și C++ ca limbaj folosit în
concursurile ACM. Totuși nu sunt prea mulți concurenți care îl folosesc. Mai trebuie timp
pentru a se face afirmat, cunoscut și iubit.
Echipele sunt formate din 3 concurenți și un antrenor. Rolul antrenorului este de a
asigura pregătirea echipei privind algoritmica, limbajul de programare și strategia de
echipă. Echipele câștigătoare în concursurile regionale participă la ”„marea finală”.
Popularitatea concursului a crescut în mod constant. Astfel, dacă în 1977 numărul
participanților era de ordinul sutelor, în 2017 au participat 49,935 studenți din 3078
universități, din 111 țări de pe cele 6 continente. Anul 2018 a înregistrat o participare
record: 53,446 studenți de pe 536 siteuri.
Concursul dezvoltă creativitatea, lucrul în echipă și inovația în creerea de noi
programe software, testând abilitățile concurenților sub presiunea timpului. Numărul
problemelor propuse a crescut de la 6 în primii ani la 13 în 2017.
O echipă, când consideră că a terminat o problemă, o trimite, marcându-se
momentul trimiterii. Dacă aceasta este acceptată, momentul trimiterii reprezintă
penalitatea acumulată la acea problemă. Dacă problema este respinsă se adaugă o
penalitate de timp. In momentul acceptării penalitatea totală acumulată va fi dată de
momentul acceptării, la care se adaugă penalitățile acumulate de respingerile anterioare.
Clasificarea se face după numărul de probleme rezolvate, iar în caz de egalitate se ține
cont de penalizările acumulate.
Problemele sunt formulate ca aplicații din lumea reală, evitându-se formulările
matematice. De asemeni se precizează foarte riguros intrările și forma dorită a ieșirilor.
Tematica problemelor este foarte variată:
 probleme care se modelează prin grafuri – componente conexe, drum minim,
colorare
 probleme de programare dinamică foarte des
 probleme care se rezolvă folosind strategia divide et impera, greedy, mai rar
backtracking
 probleme de geometrie computațională
 probleme de simulare etc.
Din cele 10 probleme, una sau două sunt foarte ușoare, mai multe sunt de
dificultate medie, iar 2-3 probleme sunt foarte dificile. Strategia (greedy) unei echipe,
pentru a acumula cât mai puține puncte de penalizare este de a sesiza problemele foarte
ușoare, a le rezolva și trimite foarte repede.
Dacă, în primii ani, universitățile americane se situau pe primele locuri, acum
acestea sunt ocupate de Rusia și China. Universitățile americane mai bine clasate au
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 305

echipe formate din studenți chinezi, indieni etc. De altfel, în acest an, am sesizat prezența
unei echipe de la Universitatea din Oxford formată din 3 români.
 Dintre echipele cu care ne-am întâlnit în confruntările regionale, echipa
Universității din București a fost o prezență constantă. Uneori au obținut
rezultate mai bune ca noi (de exemplu în 1999 au câștigat locul 4).
 În Politehnică, după 2006 s-a constatat o scădere a interesului, o participare
mai redusă a studenților la concursul ACM, concretizată prin numai una sau
două participări la faza finală, în decurs de 12 ani.

Ultimul rezultat: The ACM SEERC 2018 Winners! 1st Place in SEERC 2018: Bucharest, Romania,
Politehnica University of Bucharest and Vinnytsia, Ukraine, Vinnytsia National Technical University,
Date: 19-21 October 2018 (Director: Prof. Dr. Nicolae Țăpuș)

În acest an – 2019, la faza mondială, care va avea loc la Porto, s-a calificat echipa
Universității „Alexandru Ioan Cuza” din Iași.

Referințe
1. Guido van Rossum, Wikipedia, https://en.wikipedia.org/wiki/Guido_van_Rossum
2. Python (programming language), https://en.wikipedia.org/wiki/Python_(programming_language
3. The Python Software Foundation (US), https://docs.python.org/3/tutorial/
4. Universitatea Politehnica București (UPB), Facultatea de Automatică și Calculatoare,
http://acs.pub.ro/
5. ACM (Association for Computing Machinery), https://www.acm.org/

Nota editorului. Lista de cărți publicate de prof. univ. dr. Valeriu Iorga.
1. Valeriu Iorga, Calcul Numeric, Litografie Institutul Politehnic București, 1974
2. C. Giumale, V. Iorga, Programare sistematică în FORTRAN, Litografie Institutul Politehnic
București, 1977
3. L. Șerbănați, C. Giumale, V. Iorga, F. Moldoveanu, Programare sistematică în FORTRAN și
Pascal, Editura Tehnică, 1977
4. V. Cristea, P. Dumitru, C. Giumale, V. Iorga, F. Moldoveanu, T. Popescu, Dicționar de
Informatică, Editura Științifică și Enciclopedică, 1981
5. S. Călin, I. Dumitrache, C. Nitu, F. Munteanu, V. Iorga, S.Dumitriu, Reglarea numerică a
proceselor tehnologice, Editura Tehnică, 1984
6. E. Kalisz, D. Suciu, V. Iorga, Îndrumar de laborator la disciplina Programarea Calculatoarelor,
Litografie Institutul Politehnic București, 1987
306 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

7. Valeriu Iorga, I. Fătu, Programare în Pascal, Litografie Institutul Politehnic București, 1989
8. E. Kalisz, V. Iorga, Recueil de probleme de programmation, Litografie Institutul Politehnic
București, 1991
9. Valeriu Iorga Programare în Turbo Pascal. Culegere de probleme I-V, Editura IVT Total
Serv, 1992
10. Gh. Marian, C. Mușatescu, V. Iorga, Algoritmi, structuri de date și obiecte în Turbo Pascal, Editura
Secolul XXI Craiova, 1995
11. Valeriu Iorga, B. Jora, C. Nicolescu, I. Lopătan, I. Fătu, Programare numerică, Editura Teora,
1996Valeriu Iorga, Eugenia Kalisz, Cristian Țăpuș, Concursuri de Programare. Probleme și soluții,
Editura Teora, 1997
12. V. Cristea, I.Athanasiu, E.Kalisz, V. Iorga, Tehnici de Programare, Editura Teora, 1998
13. Valeriu Iorga, C. Opincaru, C. Stratan, A. Chiriță, Programare în C/C++. Culegere de probleme,
Editura Niculescu, 2003
14. Valeriu Iorga, B. Jora, Metode Numerice, Editura Albastră, 2004
15. Valeriu Iorga, C. Opincaru, C. Stratan, A. Chiriță, Structuri de date și algoritmi. Aplicații în C++
folosind STL, Editura Polirom, 2005
16. Valeriu Iorga, F. Pop, Metode numerice în MATLAB. Ghid de laborator, Editura Bren, 2005
17. Valeriu Iorga, F. Pop, Algoritmi numerici, Editura Bren, 2006
18. F. Pop, V. Iorga, Aplicații de Calcul numeric în MATLAB, Editura Bren, 2006
19. F. Pop, V. Iorga, Metode Numerice. Algoritmi și aplicații, Editura Politehnica Press, 2008
20. Valeriu Iorga , Programare în C, Editura Albastră, 2011
21. Valeriu Iorga., Colecții de Date, Editura Albastră, 2012
1.9 Apariția și evoluția sistemelor de operare
Marin Vlada,
Universitatea din București
MOTTO: - „I’m a bit like an operating system really… „multitasking” between these two
OHPs, „interrupting” you, … „sending you to sleep …”
John Bates

- „It would appear that we have reached the limits of what is possible to achieve with
computer technology, although one should be careful with such statements, as they tend to
sound pretty silly in 5 years.”
John von Neumann, 1949, Wobbe Vegter,
http://wvegter.hivemind.net/abacus/CyberHeroes/Neumann.htm).

Astăzi, un curs universitar care tratează domeniul sistemelor de operare poate avea
următorul conținut (M. Vlada, Sisteme de operare, Universitatea din Bucuresti,
http://prof.unibuc.ro/2018/02/info/):
1. STRUCTURA SISTEMELOR DE OPERARE: Evoluția sistemelor de operare;
Structura și funcțiile generale ale sistemului de operare; Serviciile Sistemului de
Operare; Apeluri Sistem (System Calls); Maşini Virtuale;
2. ADMINISTRAREA UNITĂȚILOR: Organizarea sistemului de I/O, Administrarea
directă a I/O cu testare periodică (polling), Administrarea operaţiilor de I/O
orientată pe întreruperi, Proiecţia în memorie a I/O, Accesul direct la memorie,
Utilizarea zonelor tampon (buffering)
3. GESTIUNEA MEMORIEI: Memoria fizică, memoria virtuală, alocarea statică a
memoriei, alocarea dinamică a memoriei, alocarea paginată a memoriei, alocarea
segmentată a memoriei, algoritmi de paginare; algoritmi de înlocuire a paginii;
gestiunea memoriei în sistemele Unix și Windows;
4. SISTEMUL DE FIȘIERE: Conceptul de fişier, Organizarea fişierelor, conceptual de
director, alocarea spaţiului pentru fişiere pe disc, evidenţa spaţiului liber de pe disc,
operaţii cu fişiere, implementarea sistemului de fişiere, performanţele sitemului de
fişiere, fiabilitatea sistemului de fişiere, gestiunea blocurilor libere, Protecția și
securitatea datelor (sistem de autentificare, sistem de autorizare, protecția
resurselor, protecția memoriei);
5. GESTIUNEA PROCESELOR: Stările unui proces, paralelismul proceselor,
sincronizarea proceselor, comunicarea între procese, probleme clasice de
coordonare a proceselor, Planificarea proceselor, interblocarea proceselor, fire de
execuție, schema generală de planificare; criterii de performanţă (algoritmi de
planificare, algoritmul Round Robin), diagrama stărilor unui proces (procese și
thread-uri, comutarea proceselor, procese Unix și Windows).
308 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Definition. Operating System (OS): the collection of software that directs a computer’s
operations, controlling and scheduling the execution of other programs, and managing
storage, input/output, and communication resources.

List of Operating Systems ACM41: Page created: 2004-04-03) – Operating Systems


(611) , Linux Distributions (661) – Access date: 2019-05-20

Evidențiem numărul mare de sisteme de operare ce s-au elaborat până astăzi, de


la începutul apariției calculatoarelor electronice. Lista cuprinde toate tipurile și derivatele
sistemelor de operare (SO): comerciale, gratuite, open source și surse închise. Această
listă nu distinge între etapa recentă de dezvoltare, scopul aplicației, distribuția sau
platforma hardware. Sistemele de operare cu diferite numere de versiuni sunt luate în
considerare doar dacă sunt distincte din punct de vedere tehnic unul față de celălalt.
Această listă (Operating Systems-611, Linux Distributions-661) oferă sute de
nume de produse de produs și de proiecte ale sistemului de operare, multe dintre ele fiind
bazate pe același sistem de operare cu mai multe sau mai puține diferențe în codul sursă.
Cele mai multe sisteme de operare pot fi urmărite până la câteva linii de dezvoltare și
provin dintr-o cantitate mică de software de sistem. Acest lucru se aplică în special
distribuțiilor Linux cu un număr redus de distribuții principale și un număr mare de
instrumente derivate. Alte familii de sisteme de operare sunt Windows și Unix.

Principalele etape în dezvoltarea sistemelor de operare

Principalele etape în dezvoltarea sistemelor de operare (https://ro.wikipedia.org/


wiki/Sistem_de_operare):
 Anii 1950 – În această perioadă nu existau limbaje de programare, iar
echipamentele electronice nu aveau sisteme de operare, fiind capabile să
ruleze doar un singur program, utilizatorul fiind responsabil pentru
interacțiunea directă cu hardware-ul. Până în anii ‘50, se dezvoltă prima
generație de calculatoare, având la bază tehnologia tuburilor vidate. O
inovație majoră este introducerea cartelelor perforate, ca modalitate de
stocare a informației. Dezvoltatorul ideii de sistem de operare, care să
sintetizeze operațiile unui computer, și rularea simultană a mai multor
funcții ale unui program, a fost matematicianul englez Alan Turing, a cărui
„Turing machine” este considerată precursorul computerelor.
 Anii 1960 – În această perioadă, diferite companii producătoare de mașini
de calcul au dezvoltat mai multe sisteme de operare: Control Data
Corporation, Borroughs Corporation, IBM, UNIVAC, General Electric,
Digital Equipment Corporation. Acestea au revoluționat conceptul de sistem
de operare, introducând fiecare noțiuni și caracteristici noi. Sistemele de
operare au evoluat în multiprogramare, în care mai multe programe puteau
rula în memorie, capacitatea de a comunica în rețea sau de a distribui mai
multor utilizatori accesul la un program sau chiar nivele inelare de
securitate. Ȋn anul 1961, Burroughs Corp. a introdus seria de calculatoare

41
https://www.operating-system.org/betriebssystem/_english/os-liste.htm
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 309

B5000, cu sistemul de operare MCP (Master Control Program), primul


sistem de operare care a fost scris exclusiv ȋn ESPOL, un limbaj de nivel
ȋnalt, dialect al limbajului ALGOL. MCP a introdus de asemenea și prima
implementare comercială de memorie virtuală. Sistemul de operare MCP
este ȋncă ȋn utilizare și astăzi ȋn linia de calculatoare Unisys ClearPath/MCP.
Atlas Supervisor care a funcționat pe calculatorul Atlas, construit la
Universitatea Manchester în 1962, a fost sistemul de operare care a reușit să
aloce resursele de procesare ale calculatorului astfel încât acesta să poată
acționa simultan pe mai multe sarcini și programe de utilizator. Diferitele
sale funcții includ administrarea memoriei virtuale a computerului Atlas.
Este considerat ca fiind primul sistem de operare modern recunoscut.
UNIVAC, primul producător comercial de computere, a produs în anul 1962
sistemul de operare EXEC, pentru seria de calculatoare UNIVAC
1100/2200. Acesta a fost un sistem orientat pe loturi care putea opera cu
discuri, cititoare de carduri și linii de imprimante. General Electric și MIT
au dezvoltat GECOS (General Electric Comprehensive Operating System),
care a introdus conceptul de nivele de privilegii securizate pe inele. După
achiziționarea acesteia de către Honeywell, a fost redenumit ȋn General
Comprehensive Operating System (GCOS). Control Data Corporation
(CDC), introduce sistemul de operare SCOPE pentru seria de calculatoare
CDC 3000, CDC 6000, și CDC 7600. Digital Equipment Corporation a
dezvoltat mai multe sisteme de operare de partajare pe timpi pentru liniile
sale de calculatoare PDP-10 pe 36 biți, inclusiv TOPS-10 și TOPS-20,
lansate în 1962 și 1969. TOPS-10 a fost un sistem deosebit de popular ȋn
universități și ȋn comunitățile ARPANET.
În anul 1964, firma IBM a dezvoltat System/360, o familie de computere
disponibile pe scară largă, cu diferite capacități. Pentru acestea a fost
dezvoltat OS/360 (în perioada 1967-1968 România a achiziționat câteva
astfel de sisteme de calcul-de la filiala IBM de la Viena, cu care a dotat
universități, institute și uzine mari), primul sistem de operare capabil să
lucreze la nivelul mai multor echipamente, centralizând astfel comanda unei
întregi linii de procesare. De asemenea, sistemul OS/360 a deservit
computerele NASA în misiunea Apollo 11. Principalele sisteme de operare
folosite astăzi de IBM sunt descendente ale OS/360. În România, primul
sistem de operare a fost elaborat în 1968, pentru calculatorul electronic
DACICC-200, construit la Institutul de Calcul „Tiberiu Popoviciu”
(https://ictp.acad.ro/).
 Anii 1970 – În această perioadă, microprocesoarele, cipurile și celelalte
componente hardware, au devenit suficient de mici pentru a încăpea într-un
calculator de birou, așa-numitul desktop. Cele mai folosite sisteme de
operare erau Microsoft MS-DOS, ce putea fi instalat pe IBM PC și pe
calculatoarele cu procesorul Intel 8088, și UNIX care putea rula pe
procesoarele Motorola 6899. Ȋn cooperare cu Universitatea din Minnesota,
pe parcursul anilor 1970, Control Data Corporation a dezvoltat sistemele de
operare CDC Kronos și apoi NOS (Network Operating System), care
suportau prelucrări simultane pe loturi și partajarea pe timp. Ca multe
310 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

sisteme de operare comerciale ce foloseau partajarea pe timp, interfețele


acestor sisteme de operare erau o extindere a sistemelor de operare
Dartmouth BASIC.
La sfârșitul anilor 1970, CDC și Universitatea din Illinois au dezvoltat
sistemul de operare PLATO, ce folosea monitoare cu plasmă și partajarea pe
timp ȋn rețelele de distanță lungă. Multe concepte moderne în computerele
multi-utilizator au fost inițial dezvoltate pe PLATO, incluzând forum-uri,
panouri de mesaje, e-mail, mesagerie instantanee, partajare de ecran de la
distanță și jocuri video multiplayer. La mijlocul anilor 1970, sistemul de
operare MVS (Multiple Virtual Storage) folosit pe calculatoarele IBM,
System/370 și System/390, oferea prima punere ȋn aplicare a folosirii RAM-
ului ca o memorie cache transparentă pentru date. CP/M (Control
Program/Monitor apoi redenumit Control Program for Microcomputers),
un sistem de operare creat de Digital Research, în anul 1974, pentru
microcomputerele Intel 8080. Sistemul de operare CP/M a fost un sistem de
operare compatibil cu foarte multe echipamente microcomputer, care a stat
la baza Microsoft MS-DOS și IBM PC DOS. Spre sfârșitul anilor 1970,
compania Apple a lansat sistemul de operare Apple DOS pentru seria de
computere Apple II. Apple DOS a avut trei versiuni importante: DOS 3.1,
DOS 3.2 și DOS 3.3.
 Perioada modernă de după anul 1980 – Una dintre cel mai notabile
inovații aduse în domeniul sistemelor de operare a fost introducerea de către
Apple în 1984 a Interfeței grafice, conceptul de cartografiere a pixelilor
ecranului și convertirea acestor date în informații digitale capabile să
comunice direct cu tastatura și cu mouse-ul. În aceeași perioadă, Microsoft a
introdus noțiunea de ferestre (Windows), iar Linus Torvalds aduce kernel-ul,
care a oferit posibilitatea dezvoltării de tip sursă deschisă a ceea ce acum
poartă numele de distribuții Linux.
În anul 1996 Palm, Inc. a lansat primul sistem de operare pentru
dispozitivele mobile, numit Palm OS. Tot în același an, Windows prezintă
platforma Windows Mobile, disponibilă pe majoritatea dispozitivelor de tip
PDA din acea vreme. Nokia prezintă în anul 1999 primul sistem de operare
Symbian S40, pe un Nokia 7110. Un an mai tarziu, Symbian OS a devenit cel
mai popular sistem de operare mobil, instalat pe majoritatea dispozitivelor
Nokia, cât și pe telefoanele Ericsson.
Începând cu anul 2007 lumea dispozitivelor mobile s-a schimbat radical
odată cu apariția iOS și iPhone. Acum, utilizatorii telefoanelor mobile
puteau naviga ușor printr-un meniu prietenos pe ecranul primului iPhone. La
5 noiembrie 2007 a fost înființată OHA (Open Handset Alliance), o alianță
comercială de 84 de companii condusă de Google, dedicată dezvoltării
standardelor deschise pentru dispozitive mobile. În anul 2008, această
alianță a lansat Android, care peste câțiva ani va deveni cel mai răspândit
sistem de operare mobil.
În prezent, Windows a reușit să ajungă cel mai popular sistem de operare.
Studiile recente arată că 91% dintre posesorii de calculatoare dețin un sistem
de operare de la Microsoft, pe când 5% un sistem de la Apple (Mac), iar mai
puțin de 2%, mai exact 1,74% folosesc Linux.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 311

Pionierate în domeniul elaborării sistemelor de operare


Pionierate în domeniul elaborării sistemelor de operare:

1. Compania americană IBM – IBM Corporation a fost fondată cu numele


Computing Tabulating Recording Co. (CTR) din New York, la 15 iunie 1911.
După unirea companiilor Tabulating Machine Corp., Computing Scale Corp. și
Compania Internațională de Înregistrare a Timpului, CTR a fost apoi redenumit
în International Business Machines, în anul 1924. IBM a dezvoltat Sequek în anul
1974, iar 2 ani mai târziu a fost redenumit în SQL (Structured Query Language).
Publicațiile despre modelul de relaționare al lui E. F. Codds au stat la baza
acestei dezvoltări (Detalii: https://www.operating-system.org/betriebssystem/
_english/fa-ibm.htm). Costul pentru dezvoltarea sistemului de operare OS/360 a
fost de 50 de milioane de dolari și are mai mult de 220.000 de linii de cod.
Sistemul de operare OS/400 a fost redenumit de la lansarea V5R3 în i5/OS. De
exemplu, acest sistem de operare este folosit la eServer i5 cu procesoare Power
PC. Noul sistem IBM System/360 este un sistem computerizat mai eficient ca și
computerele anterioare IBM, care sunt construite în mod diferit. Componentele
hardware (cum ar fi cititorul de cartele/carduri) erau interschimbabile, iar
software-ul poate funcționa pe toate modelele familiei de produse. Dezvoltarea
sistemului IBM/360 a costat 5 miliarde de dolari și a angajat în timp record peste
50.000 de angajați. Acest computer a fost fabricat pentru prima dată cu o linie de
asamblare.

Software products – WebSphere application server; DB2 universal database;


WebSphere personalization for Multiplatforms; content manager for
Multiplatforms; WebSphere home page builder; Small business suite for Linux;
e-collaboration; e-learning; e-Knowledge management; ViaVoice speech
recognition; VisualAge for Java; Lotus ASP Solution Pack; MVS/370 - OS/360,
OS/390, OS/400; z/OS (formerly OS/390 ); i5/OS (formerly OS/400); OS/2
operating system (Operating system 2).

Cele mai importante sisteme de operare dezvoltate:


- MVS, OS/390, z/OS operating system
MVS (Multiple Virtual Storage) este sistemul de operare dezvoltat de IBM în
anii șaizeci și sprijină POSIX. MVS a fost dezvoltat mai departe de sistemul de
operare MVT și a fost extins de multe funcții, cum ar fi utilizarea memoriei
virtuale. Este folosit în mainframe IBM ca sistemul/370 și system/390, are
nevoie de cerințe minime de hardware și convinge printr-o stabilitate ridicată în
modul de funcționare pe termen lung. Acesta a fost utilizat în principal pentru
furnizarea de resurse pentru conexiunile terminale. JCL (Job Control Language)
este utilizat pentru prelucrarea lotului, în cadrul TSO/E (opțiunea de împărțire a
timpului/Extended) servesc la primirea comenzilor. Ca o aplicație de dialog
ISPF (Interactive System Productivity Facility) ajută la dezvoltarea propriei
programări și documentare a aplicațiilor de dialog și a loturilor. La început, a
fost un sistem de operare pe 16 biți și a fost dezvoltat în continuare pentru
procesarea pe 32 de biți. Cu versiunea MVS/ESA, adresabilitatea pentru
312 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

memoria RAM și hard disk a fost extinsă. După redenumirea MVS în OS / 390,
suportul TCP / IP a fost adăugat în versiune. Acest sistem de operare se numește
acum z/OS, iar caracterul său special „z” de la începutul „z/OS” reprezintă buna
adecvare a serverelor IBM ale zSerie precum z900. Acum, acesta oferă și
adresarea pe 64 de biți a memoriei.
Sursa: https://www.operating-system.org/betriebssystem/_english/bs-mvs.htm
- Versions Date – Version: 1964 April – IBM System /360 (OS/360); 1967 – IBM
System /360 (OS/MFT); 1968 – IBM System /360 (OS/MVT); 1972 – IBM System
/370 (SVS1 und SVS2); 1974 – IBM System /370 (MVS); 1981 – IBM System /370
(MVS/XA); 1985 – IBM System /370 (MVS/ESA); 1990 – IBM System /390
(MVS/ESA); 1996 – IBM System /390 (OS/390); 2001 March – z/OS 1.0; 2003
Feb. – z/OS 1.4; 2004 March – z/OS 1.5; 2004 Sept. – z/OS 1.6; 2006 Jan. – z/OS
1.7
- Sistemul de operare OS/2 Warp
Principalele caracteristici ale OS/2 (Sistemul de operare 2) sunt, în primul rând,
interfața cu utilizatorul WPS (Workplace Shell), stabilitatea și tehnologia care
conduc în anii anteriori ai OS/2. Interfața cu utilizatorul este construită complet
orientată spre obiect. Sistemul OS/2 al IBM nu trebuie să fie comparat cu
extensiile DOS sau Windows încă de la versiunea 2.0. Această nouă versiune
corespunde unei noi generații de sisteme de operare, care are potențialul de a
utiliza performanța completă a unui procesor pe 32 de biți dezvoltat numai de
IBM. Până la versiunea 1.3, IBM a colaborat la dezvoltarea cu Microsoft.
Versiunea beta a fost testată cu 30.000 voluntari. A fost făcută sub slogan pentru
a crea un succes "mai bun decât DOS". Multe programe pentru DOS și
Windows (3.x, Win32s) sunt executate mai repede în OS/2 decât în mediul de
operare inițial.
Sursa: https://www.operating-system.org/betriebssystem/_english/bs-os2.htm
- Date – Version: 1987 – OS/2 1.0 16-Bit; 1988 – OS/2 1.1 16-Bit, with graphical
user interface Presentation Manager (PM); 1989 – OS/2 1.2 16-bit for the first time
HPFS in, improved Presentation manager; 1991 – OS/2 1.3 16-bit; 992 March –
OS/2 2.0 new design, optimized Presentation Manager, protected memory area, up
to 240 simultaneous DOS Sessions possible, 32-bit, high compatibility to OS/2 1.x
applications, DOS 2.x – 5.x, Windows 2.x – 3.x, "Cut and Paste", new Workplace
Shell (WPS), supports LAN Server 2.0, extended Services 2.0; 1994 Jan. – OS/2 2.1
Graphic subsystem optimized, dual DOS-sessions, APM and PCMCIA support;
1994 Oct. – OS/2 Warp 3.0 networkable, P2P; 1996 – OS/2 Warp Server
Combination of Warp 3.0 aIBM's LAN Server 4.0, server services, remote login;
1996 Oct. – OS/2 Warp 4.0 (merlin) Integration of the pentium III instructions,
improved Plug and Play and multimedia, includes Java and VoiceType technology,
universally network client; 1999 – OS/2 Warp 4.5, bootable cd-rom, new 32-bit
TCP/IP stack, JFS; 2000 – Version 4.51 version which is completely improved and
revised of version 4, "Convenience Pak 1"; 2002 – Version 4.52, "Convenience Pak
2", new functions and bug fixes; 1999 – Warp Server 4.5 (Aurora) for e-Business,
Netfinity Manager, Java 1.1.6 JDK, new 32-bit kernel, SMP for up to 64 CPUs, JFS
(64 bit Journaling File System), optimized TCP/IP protocol.
- Sistemul de operare AIX 4.3
AIX is the first 64-bit UNIX that becames from the NSA in the USA the TCSEC
C2 certificate, with modifications it corresponds also the TCSEC B1. AIX 4.3
can run on 64-Bit CPUs binarily 32-Bit programs and 64-Bit programs. The
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 313

TCP/IP stack and the I/O system were continued to optimize on high efficiency.
Up to 128 non removable disks can be combined into a logical group. OpenGL
GLX 1.3 and graPHICS extensions make an increased application performance
and better handling of large graphic models possible. NIS+, Java support and
numerous system management Tools supplement this AIX release.
- Versions Date – Version: 1986 – AIX 1; 1987 – AIX 2; 1989 – AIX 3; 1990 – AIX
3.1; 1993 Sept. – AIX 3.2.5; 1993 – AIX 4.0; 1994 July – AIX 4.1; 1994 Oct. –
AIX 4.1.1, first use of the CDE desktop as AIX window desktop; 1994 – AIX 4.1.2;
1995, June – AIX 4.1.3, contains in parts of CDE 1.0; 1995, Oct. – AIX 4.1.4, max.
file size up to 2 GByte and 2 GByte RAM, file system up to 64 Gbyte; 1996 – AIX
4.1.5, max. file size up to 2 GByte and 2 GByte RAM, file system up to 64 Gbyte;
1996, Oct. – AIX 4.2, full support of CDE 1.0, max. file size up to 64 GByte and 4
GByte RAM, file system up to 128 Gbyte; 1994 – AIX 4.2.5, BSI E3/F-C2 Security
Certification; 1997, Oct. – AIX 4.3, BSI E3/F-C2 Security Certification; 1998, April
– AIX 4.3.1, Certification B1/EST-X Version 2.0.1, max. file size up to 64 GByte
and 16 GByte RAM, file system up to 1 Tbyte; 1998, Oct. – AIX 4.3.2, max. file
size up to 64 GByte and 32 GByte RAM; 1999, Sept. – AIX 4.3.3, max. file size up
to 64 GByte and 96 GByte RAM, file system up to 1 Tbyte; 2000 – AIX 5L; 2001
May – AIX 5L 5.1, up to 32 processors and 512 GByte RAM; 2002 Oct. – AIX 5L
5.2, up to 32 processors and 1024 GByte RAM; 2004 Aug. – AIX 5L 5.3, up to 64
processors and 2048 GByte RAM; 2007 July – AIX 6 OpenBeta; 2007 Nov – AIX
6.1; 2010 Oct. – AIX 7.1 released; 2015 Dec. – AIX 7.2 released

2. Compania americană AT&T – American Telephone & Telegraph Corporation


(AT&T) are o lungă istorie și cu numeroase inovații. Compania s-a dezvoltat
pornind de la fondatorul Alexander Graham Bell, inventatorul telefonulului, în
anul 1875. Gardiner Hubbard și Thomas Sander au finanțat compania. Ei au
înființat compania Bell Telephone în anul 1879. Din istoria completă a companiei
AT & T se evidențiază domeniile de activitate în industria de comunicare și
electronică. Linia de afaceri pentru calculatoare apare mai târziu. De când a ajuns
la un monopol, compania a trebuit să deschidă piața, alături de alți furnizori.
Numărul companiilor de telefonie a urcat la aproximativ 6.000, între anii 1894 și
1904. Numărul de telefoane fabricate a crescut de la 285.000 la 3.317.000. În
anul 1984 compania s-a divizat și a devenit grupul AT & T de la Departamentul
de Justiție al SUA și alte două companii Bell Labs și AT&T International.
Compania formată a scăzut cu 1/3 față de cea inițială. Detalii:
https://www.operating-system.org/betriebssystem/_english/fa-att.htm.

Sistemul de operare UNIX


În anul 1965, existau calculatoare din a III-a generație a mașinilor de calcul cu
circuite integrate. Pentru executia programelor erau utilizate sisteme de operare
offline (de exemplu IBM System/360). Această generație a fost ulterior înlocuită
de sisteme de operare de partajare (time-sharing) online îmbunătățite. Sarcini
importante au fost prelucrarea automată a loturilor de job-uri în spooler, care a
înlocuit sistemele bazate pe un lot (job) începând cu anul 1969. Unul dintre
primii reprezentanți ai sistemelor de calcul cu distribuției de timp a fost CTTS de
la MIT, reprogramat împreună cu Bell Labs și General Electric pentru sistemul
de operare MULTICS. Sistemul de operare MULTICS a fost construit complex și
314 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

programat în limbajul de programare PL/1, astfel încât a fost abandonat mai


târziu. Ken Thompson a dezvoltat în anul 1971 (de la Bell Labs) o versiune de
asamblare a lui MULTICS, care a fost numită UNICS (1969) și ulterior sistemul
de operare UNIX. Dennis Ritchie nu era mulțumit de ce elaborare pana atunci, de
aceea era nevoie de un limbaj de programare, care să ajute la elaborarea
sistemului de operare UNIX. Thompson a dezvoltat BCPL (o simplificare a CPL)
și limbajul de programare B, care a fost reprogramat de Ritchie și s-a obținut
limbajul C. În anul 1974 Thompson și Ritchie au elaborat și finalizat împreună
sistemul de operare UNIX în noul limbaj de programare C – scris special pentru
elaborarea de sisteme de operare. Detalii: https://www.operating-
system.org/betriebssystem/_english/bs-unix.htm.

- Date – Version: 1969 Sept. – UNICS (Firma AT&T); 1971 Nov. – Time-Sharing
System v1; 1972 Dec. – Time-Sharing System v2; 1973 Feb. – Time-Sharing
System v3; 1973 Nov. – Time-Sharing System v4; 1974 June – Time-Sharing
System v5; 1975 May – Time-Sharing System v6; 1979 Jan. – Time-Sharing
System v7; 1985 Feb. – Time-Sharing System v8; 1986 Sept. – Time-Sharing
System v9; 1989 Oct. – Time-Sharing System v10; 1978 – CB UNIX 1; 1978 – CB
UNIX 2; 1979 – CB UNIX 3; 1981 – UNIX System III; 1982 – UNIX System IV;
1983 – UNIX System V Rel. 0; 1984 – UNIX System V Rel. 2; 1986 – UNIX
System V Rel. 3.0 (SVR3); 1987 – UNIX System V Rel. 3.2; 1988 – UNIX System
V Rel. 4 (SVR4),coop. with Sun Microsystems; 1992 – UNIX System V Rel. 4.2
(SVR4.2); 1993 – UNIX System V Rel. 4.2 MP (SVR4.2MP); 1985 – Mach
(Carnegie-Mellon University); 1986 – Mach 2.0; 1988 – Mach 2.5; 1990 – Mach 3
(base for Darwin); 1995 – Mach 4

3. Compania americană Digital Research (DR Corporation)

Sistemele de operare CP/M, DR-DOS


Gary A. Kildall a dezvoltat pentru compania Intel limbajul de programare PL/M
pentru microprocesorul Intel 8008, derivat din PL/I (anul 1973). În același an a
dezvoltat sistemul de operare CP/M – Control Program for Microprocessors
(Programul de control pentru microprocesoare) în PL/M. Acesta a fost primul
sistem de operare pentru computerele bazate pe microprocesoarele Intel. Punctul
forte al sistemului de operare CP/M este portabilitatea ridicată pe toate tipurile
de configurații hardware. Funcțiile de bază au fost programate independent de
hardware, în funcție de platforma vizată, caracteristica specială fiind programată
suplimentar.
În anul 1976, împreună cu soția sa Dorothy McEwen, Kildall a înființat compania
DR Inc. (Digital Research Incorporation). La început, sistemul de operare CP/M
a fost proiectat de compania DR numai ca un program de gestionare a fișierelor
pure pentru computerul x86 pe 8 biți și vândut de Intel. În anul 1976 a existat un
sistem de operare CP/M Bios pentru calculatoarele Intel 8080. În acel moment,
CP/M era sistemul de operare dominat de pe piață și utilizat de majoritatea
producătorilor de calculatoar. În anul 1981, zeci de tipuri de calculatoare au
concurat sub diferite sisteme de operare, cum ar fi CP/M în numeroase variante.
În plus, existau sisteme de operare cu mulți producători și multe versiuni UNIX.
În acel an, sistemul de operare a fost utilizat aproximativ pe 200.000 de
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 315

microcomputere în mai mult de 3.000 de configurații diferite. În anul 1985


sistemul de operare CP/M a fost utilizat în întreaga lume de aproximativ 4
milioane de ori în diferite versiuni. În anul 1988 sistemul de operare CP/M a fost
redenumit în DR DOS după câteva lansări. Detalii:
https://www.operating-system.org/betriebssystem/_english/bs-cpm.htm,
https://www.operating-system.org/betriebssystem/_english/fa-dr.htm.
- Date – Version; 1973 – CP/M 1.0 --- – CP/M 1.4; 1979 – CP/M 2.0 – CP/M 2.2,
served as the base for MS/DOS; 1982 – CP/M 3.0, 8-bit operating system1982 –
CP/M 3.1, 16-bit operating system, DR DOS Basis; 1985 – DOS-Plus 1.0 was
introduced; 198? – DOS-Plus 1.2; 1986 – DOS-Plus 2.01; 1988, May – DR DOS
3.31 was introduced, first MS-DOS compatible version; 1988 – DR DOS 3.32; 1988
– DR DOS 3.40; 1989, Jan. – DR DOS 3.41 OEM Release; 1990, May – DR DOS
5.0 (leopard) ready, with Viewmax; 1991 – DR DOS 5.11; 1991, Sept. – DR DOS
6.0 ready, Superstor, Delwatch, NetWare Lite support, DOS prompt task switcher
(Taskmax).

4. Compania americană Microsoft – Paul Allen și Bill Gates au mers la aceeași


școală și împreună, în anul 1971 au fondat compania Traf-O-Data. Obiectivul era
producția de computere mici (tip PC) cu procesor Intel pentru măsurarea
traficului auto. Au primit un contract de la MITS (Micro Instrumentation und
Telemetry Systems) pentru a elabora limbajul BASIC pentru calculatorul Altair.
În anul 1974 au proiectat limbajul de programare BASIC pentru Altair 8080,
echipa numindu-se Programator Lakeside Group. De asemenea, limbajele de
programare FORTRAN și COBOL au fost scrise pentru Altair, iar interpretorul
BASIC a fost portat pentru TRS 80 de la Tandy. În vara anului 1975 s-a fondat
Compania Micro-Soft pentru a dezvolta software cu care să funcționeze IBM PC
și, s-a pornit cu limbajul de programare BASIC. Mai târziu, a urmat începutul
anului 1977, Fortran și Assembler, COBOL în 1978 și Pascal în anul 1980. În
anul 1978, Microsoft a primit de la AT&T licența de dezvoltare pentru sistemul de
operare UNIX. Deoarece AT&T a protejat numele sistemului de operare UNIX,
Microsoft a numit varianta sa Unix prin denumirea Xenix.
În anul 1980, compania se mută (cu 38 de angajați) în Seattle și atinge volumul
de vânzări de 8 milioane USD. În acea vreme compania IBM căuta un sistem de
operare care să se potrivească cu microcomputerele pentru piață. La inceput, IBM
a consultat compania Digital Research, dar fără succes și apoi, compania
Microsoft. Între timp, Microsoft a fost întărită de Steve Ballmer prin organizare
și prin finanțare. Compania Microsoft nu avea nici un sistem de operare propriu
și, prin urmare, a cumpărat sistemul Q-DOS de la Seattle Computer Products cu
50.000 de dolari SUA. Compania IBM a licențiat varianta sub numele de MS-
DOS. PC-ul IBM a avut un mare succes. Volumul vânzărilor și profitul Microsoft
au crescut în continuare și, prin urmare, Bill Gates a primit un contract cu SCO
pentru a scoate o varianta UNIX pentru PC-urile IBM. În primul rând, cu apariția
procesorului 80286, și folosind sistemul de operare Xenix s-a dovedit a fi foarte
bine. În primul rând, Microsoft a avut grijă de afacerea OEM, iar SCO a fost
responsabilă pentru personalizarea și îmbunătățirea derivatului UNIX. În iulie
1987, Microsoft a cumpărat compania Forethought și a integrat software-ul sub
numele de Powerpoint în aplicațiile de birou. Din anul 1994, sloganul „Unde vrei
316 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

să mergi astăzi?” a fost răspândită prin publicitate. Detalii:https://


www.operating-system.org/betriebssystem/_english/fa-microsoft.htm.

Cele mai importante sisteme de operare dezvoltate:


- Sistemul de operare Microsoft DOS (MS-DOS)
În iulie 1980, compania IBM a comandat companiei Microsoft să dezvolte un
sistem de operare pe 16 biți pentru calculatorul personal (PC) pentru un contract
de 186.000 de dolari USA. Deși, compania Digital Research a lui Gary Kildall
avea deja, prin sistemul CP/M 86 o astfel de versiune de 16 biți, dar prin anumite
circumstanțe nu a fost stabilit niciun contract cu compania IBM. Microsoft nu
avea încă niciun sistem de operare. Microsoft avea licența pentru CP/M de la
Digital Research, din noiembrie 1977 pentru 50.000 de dolari. Întrucât, Microsoft
nu a putut să vândă licența a fost realizatun acord corespunzător cu compania
Seattle Computer Products pentru sistemul de operare QDOS. Sistemul QDOS
era o clonă pe 16 biți a sistemului CP/M și a fost terminată de Tim Paterson în
aprilie 1980. La început, Microsoft a acordat licență QDOS pentru 25.000 de
dolari. După ce a fost semnat un acord de licență cu IBM, Bill Gates a cumpărat
QDOS pentru 50.000 de dolari, în iulie 1981. Cum s-a dovedit a fi o afacere
foarte profitabilă, compania IBM a livrat-o pe toate computerele IBM ca PC
DOS. Sistemul de operarea QDOS s-a utilizat pentru prima dată pe PC-ul IBM
5150, iar pentru toate celelalte, sub numele de MS-DOS -pentru partenerul OEM.
Sistemul de operare MS DOS 1.0-versiunea 1, constă din codul de asamblare de
aproximativ 4.000 de linii. Detalii:
https://www.operating-system.org/betriebssystem/_english/bs-msdos.htm.
- Date – Version: 1981 Aug. – MS-DOS 1.0, formerly QDOS/86-DOS, can use at
maximum 128 kbyte RAM, FAT established; 1981 Juni – MS-DOS 1.10,; 1982
Aug. – MS-DOS 1.25, support for double-density floppy disks; 1983 March –
MS-DOS 2.0, support for IBM 10 mbyte harddisk, directorys and DD 5.25" floppy
disk drives with up to 360 kbyte; 1983 Dec. – MS-DOS 2.11, extended character
sets; 1984 Aug. – MS-DOS 3.0, support for high density floppy disk drives with 1.2
mbyte and harddisk devices with 32 mbyte capacity; 1984 – MS-DOS 3.1, first tiem
with network support; 1985 – MS-DOS 3.2; 1985 – MS-DOS 3.21; 1987 April –
MS-DOS 3.3, extended for IBM's PS/2 computer, supports now bigger 3.5"
harddisk drives and floppy disk drives, multiple partitions, character sets for
different languages; 1988 Juli – MS-DOS 4.0, XMS support, partitions with up to 2
gbyte, graphical shell, bug fixes; 1988 Nov. – MS-DOS 4.01, supports multiple
partitions bigger than 32 mbyte, bug fixes; 1991 June – MS-DOS 5.0, Major
Release; 1992 – MS-DOS 5.0a, bug fixes for Undelete and Chkdsk; 1993 Aug. –
MS-DOS 6.0, Competition to Novell's DR-DOS 6, DoubleSpace, Anti-Virus
program, Defrag, Move command, improved MSBACKUP and several boot
configurations, memory optimizer MEMMAKER, DOS Shell is delivered
separately on floppy disks; 1993 Nov. – MS-DOS 6.2, DoubleSpace becomes
incompatible to the previous version, Scandisk, improved of DISKCOPY and
SmartDrive; 1994 March – MS-DOS 6.21, because of law conflict with Stac
Electronics DoubleSpace is removed from MS DOS; 1994 May – MS-DOS 6.22,
Microsoft licences double disk of VertiSoft Systems and designates it in
DriveSpace, last official standalone version; 1995 Aug. – MS-DOS 7.0, MS-DOS
component for Windows 95, LFS support through VFAT, more DOS programs are
delivered on the Setup CD-ROM in the "oldmsdos" directory; 1996 Aug. –
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 317

MS-DOS 7.10, MS-DOS component for Windows 95 B and higher, supports the
first time FAT 32 harddisks; 2000 – MS-DOS 8.0, MS-DOS component for
Windows ME, last MS-DOS version; 2001 Dec. – MS-DOS Support discontinued
- Sistemul de operare Windows® Family
În anul 1981, compania Microsoft a început să dezvolte sisteme de operare
pentru computere (PC), primul fiind MS-DOS 1.0. Cu un an înainte,
Microsoft a lucrat cu sistemul de operare derivat Unix XENIX OS pentru
diferite platforme informatice, dar acest domeniu a fost transferat la SCO în
anul 1984. Cu sistemul de operare Windows 1.0 au fost adăugate, în anul
1985, alături de DOS, o a doua linie OS, pentru job-uri unice pentru
Consumer (ediția Home) și, mai târziu cu suport de rețea adăugat. A treia
linie de produse a fost lansată cu MS OS / 2 1.0 în anul 1987. Ediția
profesională a fost concepută pentru aplicații de servere și clienți de rețea. În
februarie 1989 a început dezvoltarea Windows NT (NT = Noua tehnologie),
prima versiune a fost publicată cu Windows NT 3.1 în iulie 1993. Până la
200 dezvoltatori au programat în același timp, la aprox. 6 milioane de linii
de cod. În timp ce MS-DOS a fost programat aproape complet în limbajul de
asamblare, sistemul de operare Windows NT constă, de asemenea, din codul
sursă al limbajului de programare C. Până la 450 de dezvoltatori au fost
implicați în sistemul de operare Windows NT 3.51, care a fost lansat în mai
1995. Pentru lansarea din iulie 1996 până la 800 dezvoltatori au lucrat la
succesorul Windows NT 4.0. Windows 2000 a fost proiectul ambițios de
sistem de operare care a urmat în această privință. Până la 1.400 dezvoltatori
au lucrat la cele 29 de milioane de linii de cod. Costurile de dezvoltare s-au
ridicat la aproximativ 1 miliard de dolari. În total, 5.000 de dezvoltatori au
lucrat la cele 50 de milioane de linii de coduri de asamblare C și C ++
pentru sistemul de operare Windows Server 2003, lansat în aprilie 2003.
Dezvoltarea versiunilor sistemului de operare pentru arhitectura MIPS,
Power PC și alfa a fost anulată treptat până la lansarea pe piață a sistemului
de operare Windows 2000. Acest lucru a fost, de asemenea, implicat în lipsa
driverului și a suportului software pentru aceste platforme. Cu Windows CE
1.0 a fost creată o nouă linie de produse pentru dispozitive mici (PDA) în
anul 1996. Detalii:
https://www.operating-system.org/betriebssystem/_english/bs-windows.htm

- Date – Version: 1981 Sept. – Interface Manager; 1983 – Windows was announced;
1985 Nov. – Windows 1.0 for 8088 CPUs released; 1987 Dec. – Windows 2.0 for
386 CPUs, up to 16 mbyte RAM adressable; 1988/89 – Windows 2.1 for 286/386;
1990 – Windows 3.0; 1992 April – 3.1 (janus) includes MS-DOS 5.0; 1993 Nov. –
Windows for Workgroups 3.11 (snowball) rudimentarily networkable; 1995 Aug. –
Windows 95 4.0 Codename "Chicago" was released; 1996 Feb. – Windows 95
Version A (OSR1); 1996 Aug. – Windows 95 (detroit) Version B (OSR2) first time
with FAT-32 support; 1997 April – Windows 95 Version B (OSR2.1); 1997 Nov. –
Windows 95 Version C (OSR2.5); 1998 June – Windows 98 (memphis) about 5,000
bugs fixed; 1999 May – Windows 98 SE (Second Edition); 2000 Sept. – Windows
Me (Millenium);
1980 Aug. – XENIX OS cooperation with SCO;1982 Feb. – XENIX 2.3
cooperation with SCO; 1983 April – XENIX 3.0 cooperation with SCO; 1987 – MS
318 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

OS/2 1.0 cooperation with IBM; 1988 – OS/2 1.1 cooperation with IBM; 1991 –
OS/2 1.3 cooperation with IBM; 1992 – OS/2 2.0 cooperation with IBM
1993 July – Windows NT 3.1 & Advanced Server; 3.1 million lines of source code,
supports HPFS; 1994 Sept. – Windows NT 3.5 (daytona), Workstation and Server,
with opengl and Netware client; 9 million lines of source code; 1995 May –
Windows NT 3.51, updae, transparent compression with NTFS file system,
PCMCIA support, for Power-PCs available too; 1996 Aug. – Windows NT 4.0
(cairo) 16 million lines of source code, no support for HPFS anymore; 1996 –
Windows NT Terminal Server Edition (hydra); 1997 – Windows NT Server 4.0
Enterprise Edition; 1998 – Windows NT Server 4.0 Terminal Server Edition; 2000
Feb. – Windows 2000, Windows version 5.0; 30 million lines of source code, about
10,000 bugs fixed;
2000 Sept. – 2000 Data center Server; 2001 Oct. – Windows XP (whistler),
Windows version 5.1; 2002 – Windows XP Media Center Edition, Windows XP
Tablet PC Edition; 2003 April – Windows Server 2003 version 5.2 (whistler server)
2006 – Windows Vista, Windows version 6.0, Codename Longhorn (Client); 2006
June – Windows Compute Cluster Server 2003 (Windows CCS 2003); 2008 Feb. –
Windows Server 2008 (Codename Longhorn); 2007 July – Windows Home Server
1.0’ 2009 Oct. – Windows 7 (Codename Vienna); 2012 Oct. 26 – Windows 8; 2012
Sept. – Windows Server 2012 released; 2013 Oct. – Windows Server 2012 R2
released; 2013 Oct. 18 – Windows 8.1 (Codename Blue); 2015 July 29 – Windows
10 final release, version 10.0.10240; 2016 Oct. – Windows Server 2016, final
release. Detalii:
https://www.operating-system.org/betriebssystem/_english/bs-windows.htm

5. Compania americană Apple – Computerul Apple a fost construit de Steve Jobs,


de 21 de ani, și Stephen G. Wozniak, de 26 de ani, în Palo Alto/California din
SUA, în anul 1976. Ca și multe alte legende ale companiei din SUA, totul a
început într-un garaj în care tehnicienii au dezvoltat un produs – primul Apple I
placă de baza pentru un calculator. Primul cumpărător pentru Apple I (cu 50 de
circuite) a fost Paul Terrel, proprietar al magazinului Byte pentru sisteme
informatice. Steve Wozniak era un inginer, iar Steve Jobs era un om de afaceri. De
aceea, Steve Wozniak s-a preocupat de construirea de calculatoare, câștigând
experiență la compania Hewlett-Packard cu construcția de calculatoare de
buzunar și un calculator cu tastatură și ecran color de monitorizare. În schimb,
Steve Jobs s-a concentrat pe partea de afaceri.
Calculatorul Apple a fost vândut cu 666,66 de dolari în magazinele Byte, din mai
1976. Pentru „Byte into an Apple" (1 Byte = 8 biți), publicitatea de vânzare era
„primul sistem microcomputer ieftin cu port de afișare și 8 kilobyte de memorie
RAM pe o singură placă PC”. Cu această publicitate de vânzări și o astfel de
declarație s-a născut logo-ul de astăzi al lui Apple – curcubeul colorat și mărul cu
mușcătură. După dezvoltarea ulterioară, Apple II a apărut în anul 1977, iar apoi
succesorul Apple III, în anul 1980. Apple III a fost prezentat la Conferința
Națională a Calculatoarelor (NCC – National Computer Conference) din
California în 1980-05-19. Sistemul de operare sofisticat era dezvoltat ca sursă
închisă și cu un nucleu monolitic. Hardware-ul este alcătuit dintr-un procesor
MOS cu 8 biți de 8 MHz, 2 kbyte ROM și 128 kbyte memorie principală la placa
de bază. În anul 1983, calculatorul Apple a fost unul dintre primii pionieri
comerciali care au oferit împreună cu Lisa Computer și Lisa OS un sistem de
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 319

operare cu o interfață grafică pentru utilizator, împreună cu simboluri și meniuri.


Lisa Computer a stabilit în acel moment caracteristicile care sunt standard astăzi,
o interfață grafică cu mouse-ul pentru operații. Ca aplicații standard sunt
LisaCalc (program de calcul), LisaGraph pentru grafică de prezentare, LisaDraw
(program de desen), LisaWrite pentru procesarea de text, LisaProject pentru
metoda planului net, LisaList ca sistem de management de fișiere și LisaTerminal
incluse. Detalii:
https://www.operating-system.org/betriebssystem/_english/fa-apple.htm.
- Sistemul de operare Apple ProDOS 1.0
Sistemul de operare Apple ProDOS 1.0 bazat pe SOS a fost publicat în
octombrie 1983. Sistemul ProDOS a fost împărțit în ProDOS 8 și ProDOS 16,
pentru procesoare de 8 biți și 16 biți, mai târziu. În 24 ianuarie 1984, succesul
calculatorului Macintosh și al sistemului de operare Mac OS a început cu
anunțul de piață al lui Steve Jobs. Producția de voce sintetică a unui text a avut
un răsunet mare la public pentru caracteristicile de performanță. În anul 1984,
poziția de lider a companiei IBM este zdruncinată. În termen de trei luni au fost
vândute peste 70.000 de sisteme. Îmbunătățirile continue ale sistemului de
operare de la Apple au sporit superioritatea în domeniul interfeței grafice și a
utilizatorului simplu. Calculatorul MAC (computer activat cu mouse) a fost
introdus în anul 1986, cu GS/OS (grafică și sound OS), ce a însemnat ProDOS
16, noul sistem grafic de 16 biți ce a sporit considerabil eficiența. Procedura de
pornire, accesul la discul de stocare și timpul de pornire al programelor erau
mult mai rapide.
- Sistemul de operare Mac OS
La început, Mac OS Logo Mac OS a fost numit de către compania Apple ca
Mac System Software, un sistem de operare special conceput doar pentru
procesoarele Motorola de 68K. Cu propriul hardware Macintosh, Mac OS
ocupa un rol special în lumea sistemelor desktop. Prima versiune a fost
„System 1” și a apărut împreună cu sistemul de operare Mac, în anul 1984.
Desktop-ul clasic este conceput ca un singur sistem de operare pentru
utilizatori și ascunde aproape complet calea completă către fișiere și
directoare. Reprezentarea grafică este redusă la esență. În general, interfața
este foarte ușor de utilizat și nu are nevoie de butonul drept al mouse-ului
pentru interacțiunea cu utilizatorul. Sistemul Mac OS nu include o interfață
de linie de comandă
- Date – Version: 1984 – System 0.85, 216 kbyte in size, first time with MFS file
system; 1985 – System 2.0, updates and improvements like the Finder and menș
1986 – System 3.0, contains optimizations, first time with HFS file system; 1987 –
System 4.0, bug fixes; 1987 – System 4.1, improved Finder (supports HDD >32
mbyte); 1988 – System 6, 32-bit color, Quickdraw support, serial port driver
support, Truetype fonts; 1990 – System 7, 32-bit memory adressing on supported
hardware, first time with virtual memory, updated GUI; 1994 – System 7.5; 1997 –
Mac OS 7.6; 1997 – Mac OS 8.0; 1998 – Mac OS 8.1, 32-Bit, file system HFS+,
only limited memory protection, USB and Firewire on supported hardware; 1998 –
Mac OS 8.5.1, Sherlock search files on hard disks and on the internet, intranet
updates; 1999 – Mac OS 8.6, multi-processor capable; 1999 – Mac OS 9 (sonata),
Sherlock 2 can handle files with size up to 2 tbyte, user profiles (multiple users);
2001 – Mac OS 9.1; 1999 – Mac OS X Server, Mach- Kernel 2.5 (Unix-derivated
320 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

microkernel) better performance and stability; 1999 March – Mac OS X Server 1.0;
2000 – Mac OS X Server 1.2.3; 2001 March – Mac OS X 10.0 (Cheetah); 2001
Sept. – Mac OS X 10.1 (Puma), improved performance, improved GUI; 2002 Aug.
– Mac OS X 10.2 (Jaguar), new applications and technology; 2003 Oct. – Mac OS
X 10.3 (Panther), new features for improved productivity and security; Mac OS X
Server 10.3; 2005 April – Mac OS X 10.4 (Tiger), new technology; Mac OS X
Server 10.4; 2006 Jan. – Mac OS X 10.4.4, first also available vor intel based
syystems; 2007 Oct. – Mac OS X 10.5 (Leopard); 2009 Sept. – Mac OS X 10.6
(Snow Leopard), only for x86-64 Bit Intel dualcore; 2016 Sept. – macOS 10.12
(Sierra) available, introducing Apple File System (APFS). Detalii:
https://www.operating-system.org/betriebssystem/_english/bs-macos.htm

6. Sistemul de operare Linux, sistem de operare elaborat de o comunitate

Etape din dezvoltarea sistemului de operare Linux. În anul 1986, Linus (Benedict)
Torvalds (este creatorul și principalul dezvoltator al kernel-ului Linux, care a
devenit kernel-ul pentru multe distribuții Linux și sisteme de operare precum
Android și Chrome OS; Torvalds este născut în Helsinki, Finland, în anul 1969,
https://en.wikipedia.org/wiki/Linus_Torvalds) și-a programat propriul driver
pentru controlerul floppy disk. A învățat programarea intensivă a hardware-ului și
a devenit mai bine informat despre computerul său Sinclair cu sistemul de
operare Q-DOS. În plus, el a furnizat propriile instrumente de programator. În
anul 1991, când PC-ul 386-Intel a devenit modern, a primit un PC pentru a învăța
despre programarea CPU-ului de la microprocesorul 386-Intel. A fost folosit un
sistem de operare MINIX, derivat al lui Unix. A învățat și a cunoscut sistemul de
operare Unix încă din anul 1990, când era student la universitate. Sistemul de
operare Minix a fost dezvoltat de Andrew Tanenbaum ca sistem de învățare și a
fost folosit în special în universități. Cartea scrisă a lui A. Tanenbaum „Operating
Systems: Design and Implementation” (Sisteme de operare: Proiectare și
implementare) se referă la conceptele sistemului de operare și la Minix. Această
carte a devenit cartea preferată a lui Torvalds. Codul sursă al Minix este Open
Source, iar toate modificările erau legate de condițiile licenței.
Deoarece nu a găsit programul emulator pentru terminale furnizat în Minix
acceptabil, a început proiectul său de a codifica propriul emulator pentru
terminale, mai bun, cu mai multe funcții la nivel hardware. În plus, și-a
programat propriile drivere pentru accesul la mediul de date și sistemul de fișiere,
iar altele în limbajul de asamblare. Cu aceste funcții, software-ul avea abilitatea
de a încărca și descărca fișiere de pe Internet. În linia programului de dezvoltare a
terminalelor a dezvoltat tot mai multe funcții, astfel că a luat decizia de a-l
îmbunătăți într-un sistem de operare. Sistemul său de operare a fost derivat din
concepte de la Minix, dar complet scris de la zero începând de la Kernel. După
serile lungi de programare, la 17 septembrie 1991, sistemul de operare Freax
versiunea 0.01 a fost terminat, deoarece mediul de dezvoltare era folosit încă
MINIX pentru CPU-uri 386. Acesta conținea deja bash-ul GNU Shell și GNC C-
compilatorul GCC de la Richard Stallman, care se număra printre programele
standard, între timp numit sistemul de operare Linux. Deoarece sistemul Linux
profită, în special de software pool GNU, se numește, în general GNU/Linux.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 321

- Date – Version: 1991 Sept. – Freax 0.01 – still needs Minix and special gcc
compiler,230 kbyte source code, incl. scripts and header files, minimal version, with
floppy, keyboard and serial driver software, ext file system, 386 CPU support,
UNIX-Shell bash; 1991 Sept. – Freax 0.02 – bash and gcc were ported by MINIX,
needs 4 mbyte RAM for compiling software; 1991 Oct. – Freax 0.03 – small user
group, gcc can compile himself on Linux, only needs 2 mbyte RAM for compiling
software; 1991 Nov. – Freax 0.11 – international development team, first fixed disk
driver software, mkfs/fsck/fdisk program, Hercules/MDA/CGA/EGA/VGA graphic,
US/German/French/Finnish Keyboard, console can beep, Linux now has his own
development environment; 1992 Jan. – Freax 0.12 – for the first time page-to-disk
function built-in, Linux is put under the GPL, virtual memory, harddisk caching,
POSIX job-control, more persons programming linux, multi-threading file system;
1992 April – Linux 0.96 – programmer and user group raised up, X Window system
from the MIT is used for the first time; 1994 March – Linux 1.0 – 4,500 kbytes
source code, incl. scripts and header files, more than 170,000 lines of source code,
approx. 100 developers, approx. 100,000 users, first SCSI and sound driver
software, for the first time networkable, ext2 file system; 1995 March – Linux 1.2 –
250,000 lines source code, about 50% are hardware driver, porting to alpha, MIPS,
and SPARC CPUs, extended network functions like IP-Forwarding and NFS, IPX,
AppleTalk; 1996 Juni – Linux 2.0 – 20,300 kbytes source code, incl. scripts and
header files, approx. 800,000 lines of source code, porting to m68k and PowerPC
CPUs, multi-processor capable up to 16 CPUs (experimental), symbol figure "Tux
the penguin" was born; 1997 April – Linux 2.1.32 – after a trademark right dispute
Torvalds lets register Linux as a trademark; 1999 Jan. – Linux 2.2.0 – 269
developers works on linux, approx. 10 million users, improved SMP support, IPv6
support as first operating system, extended software support by companies like
StarOffice, Netscape; 2000 June – Linux 2.2.16 – ; 2001 Jan. – Linux Kernel 2.0.39
Release, contains bug fixes for security holes; 2001 Jan. – Linux 2.4.0 – 375
developers works on linux, approx. 15 million users, runs on altogether 13 hardware
plateforms, improved network support, improved performance for memory
transactions, extended hardware support; 2002 Jan. – Linux Kernel 2.5.2; 2002
April – Linux Kernel 2.5.10; 2002 June – Linux Kernel 2.5.20; 2002 Aug. – Linux
Kernel 2.5.30; 2002 Oct. – Linux Kernel 2.5.40; 2002 Nov. – Linux Kernel 2.5.50;
2003 Feb. – Linux Kernel 2.5.60; 2003 March – Linux Kernel 2.2.25; 2003 May –
Linux Kernel 2.5.70; 2003 June – Linux 2.4.21 – Kernel 2.4.20 to 2.4.21 : 1738
code changes; 2003 Dec. – Linux Kernel 2.6.0 Release, optimized for big file
storage devices and high data transfer rate, TCP/IP optimized, improved memory
access and process scheduler, improvement in the threadings, improved Advanced
Linux Sound Architecture (ALSA), contains Security-Enhanced Linux (SELinux);
2004 Feb. – Linux Kernel 2.0.40 Release; 2004 Feb. – Linux Kernel 2.2.26 Release,
contains bug fixes for security holes, last release of the 2.2 branch; 2004 Dec. –
Linux Kernel 2.6.10; 2007 Feb. – Linux Kernel 2.6.20; 2009 June – Linux Kernel
2.6.30; 2009 Dec. – Linux Kernel 2.6.32 (Longterm release); 2010 May – Linux
Kernel 2.6.34 (Longterm release); 2011 May – Linux Kernel 2.6.39; 2011 July –
Linux Kernel 3.0; 2012 Jan. – Linux Kernel 3.2 (Longterm release); 2012 May –
Linux Kernel 3.4 (Longterm release); 2013 June – Linux Kernel 3.10 (Longterm
release); 2013 Nov. – Linux Kernel 3.12 (Longterm release); 2014 March – Linux
Kernel 3.14 (Longterm release); 2014 Aug. – Linux Kernel 3.16 (Longterm
release); 2014 Dec. – Linux Kernel 3.18 (Longterm release); 2015 Feb. – Linux
Kernel 3.19; 2015 April – Linux Kernel 4.0; 2015 June – Linux Kernel 4.1
322 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

(Longterm release); 2016 Jan. – Linux Kernel 4.4 (Longterm release); 2016 May –
Linux Kernel 4.6; 2016 Aug. – Linux Kernel 4.7.1. Detalii:
https://www.operating-system.org/betriebssystem/_english/bs-linux.htm
Distribuitori Linux (Distributors): Debian, Gentoo, Linspire, Mandriva, Red
Flag, Red Hat, SuSE Linux, Slackware. Un distribuitor este o echipă de
dezvoltatori care avansează de la nucleul sistemului Linux (Kernel) pentru a oferi
un pachet software de instalare. Pe lângă sistemul de adaptare individual, sunt
incluse numeroase aplicații suplimentare, inclusiv driver-ul și asistentul, care pot
fi instalate și configurate confortabil cu instalarea și configurarea proprie. Aceste
distribuții sunt puse la dispoziție pe Internet ca imagine ISO sau pot fi cumpărate
ieftin pe suporturi CD-ROM sau DVD. Banii obținuți sunt necesari pentru
dezvoltare și suport.

Definiția din DEX.


OPERÁRE (< opera) s. f. Acțiunea de a opera. ◊ (INFORM.) Sistem de o. = program sau
colecție de programe care asigură funcționarea de bază a calculatorului precum și
intermedierea dintre utilizator și calculator. Inițiază și derulează legăturile logice dintre
componentele fizice (hardware) și informaționale (software) a ceea ce, în limbaj curent,
utilizatorii numesc calculator. Exemple de sisteme de o.: Microsoft Windows 2000,
UNIX, Linux, MS-DOS, MAC OS. (Sursa: DEX, https://dexonline.ro/definitie/operare)

Definiție. Un sistem de operare este un sistem de programe care coordonează toate


activitățile de calcul ce se desfăşoară într-un SC pentru execuţia programelor utilizatorilor
folosind eficient resursele SC (memoria, microprocesorul, dispozitivele I/O).

Funcţiile generale ale unui sistem de calcul (SC):


 comandă şi controlează execuţia programelor utilizatorilor;
 iniţializează sistemul de calcul şi verifică starea resurselor SC;
 comandă şi controlează activitatea dispozitivelor I/O;
 formatează HD (hard disk) şi FD (floppy disk);
 prelucrează şi modifică starea fişierelor şi programelor;
 asigură un sistem de protecţie a datelor şi programelor;
 defineşte structura sistemului de fişiere;
 gestionează (asigură partajarea) resurselor SC.

Definiţie rezumat: SO – sistemul de operare este o colecţie de programe (sistem de


programe) ce are un nucleu şi care se încarcă de pe HD în memoria internă la pornirea
SC şi realizează interfaţa dintre utilizator şi dispozitivele I/O, defineşte structura
sistemului de fişiere şi gestionează resursele SC în scopul executării programelor
aplicative ale utilizatorilor.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 323

Pentru a înţelege rolul important al sistemului de operare, prezentăm schema


următoare:

Componentele unui SO:


 Nucleu – realizează servicii pentru legătura cu rutinele BIOS şi legătura cu
cerinţele programelor utilizatorilor (această componentă se încarcă de pe HD
în memoria internă odată cu iniţializarea SC);
 Comenzi/Programe utilitare – realizează servicii pentru utilizarea eficientă a
resurselor SC (aceste servicii sunt oferite utilizatorului în orice moment în
funcţie de scopurile sale).

Tipuri de sisteme de operare

Perfecţionarea continuă a componentelor hardware ale unui SC implică


perfecţionarea şi modificarea atât a sistemelor de operare, cât şi a componentelor
software instalate pe SC. În timp, aceste perfecţionări şi modificări au creat dificultăţi în
privinţa utilizării unor programe de pe un sistem de calcul pe altul, sau sub diverse
sisteme de operare. Din aceste motive, pentru un SO şi în general pentru produsele
software, sunt importante următoarele atribute:
 compatibilitatea – posibilitatea recunoaşterii acestora de alte SO sau produse
software şi invers;
 portabilitatea – instalarea şi execuţia acestora pe diverse SC;
Sistemele de operare şi, în general, produsele software înglobează inteligenţa şi
eforturile unor colective de cercetători, specialişti şi experţi pe o anumită perioadă de
timp, aceasta variind pâna la nivelul zecilor de ani, uneori perfecţionările şi modificările
necesare fiind realizate de alte colective. De aici, aşa-numitele „versiuni” ale produselor
software obţinute prin perfecţionări şi modificări.
În special, pentru sistemele de operare sunt importante următoarele atribute:
 monouser – serviciile SO sunt oferite-la un moment dat- doar unui singur
utilizator;
 multiuser – serviciile SO sunt accesate simultan de aplicaţii ale mai multor
utilizatori;
324 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 monotasking – SO execută – la un moment dat – o singură sarcină (task,


proces);
 multitasking – SO execută simultan mai multe programe (task-uri, procese).

Limbajul unui SO
Orice limbaj de operare este astfel conceput şi elaborat, încât să realizeze în mod
optim funcţiile (serviciile) pe care trebuie să le execute, dar în acelaşi timp să ofere o
interfaţă comodă şi eficientă între utilizator şi resursele SC. Tocmai aceste deziderate au
contribuit până în prezent la apariţia diverselor sisteme de operare. Evident, unele SO au
apărut şi au dispărut, iar altele s-au perfecţionat ținând seama de tehnologia hardware,
dar şi de dezvoltarea software. Acelaşi lucru se poate afirma şi despre domeniul
limbajelor de programare. Atât sistemele de operare, cât şi limbajele de programare s-au
perfecţionat pentru a oferi utilizatorului metode şi tehnici moderne în procesarea informaţiei,
în ceea ce se astăzi numeşte tehnologia informaţiei (IT – Information Technologies). Din
acest punct de vedere, un SO trebuie să execute următoarele operaţii de bază:
 localizarea informaţiei;
 memorarea/stocarea informaţiei;
 procesarea/reprezentarea informaţiei;
 comunicarea/vizualizarea informaţiei.
Limbajul sistemului de operare trebuie să ofere utilizatorului un mod eficient
pentru ca acesta să poată să acceseze aceste operaţii de bază din domeniul tehnologiei
informației. Aceste cerinţe de bază au determinat ca sistemele de operare care sunt
folosite în prezent să aibă atât asemănări, cât şi deosebiri privind limbajul, utilizarea
resurselor SC, comenzile, serviciile oferite. Evident, structura sistemelor de calcul,
performanţa şi tehnologia hardware au influenţat considerabil concepţia, structura şi
performanţa sistemelor de operare actuale.
Pentru a scoate în evidenţă rolul SO în utilizarea unui SC prezentăm schema
următoare (nivele ale diverselor operaţii în relaţia Utilizator – SC):
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 325

Din schema de mai sus se poate deduce rolul important al sistemului de operare
în întreaga activitate a sistemului de calcul. Resursele gestionate de SO sunt:
 fizice ( microprocesoare, memorie internă, dispozitive I/O);
 logice (programe utilitare, programe specializate, programe utilizator);
 informaţionale (fişiere, baze de date, date de intrare/ieşire).
Realizarea funcţiilor de bază ale sistemului de calcul se face prin intermediul SO
care face legatura Hardware-Software-Utilizator, prin urmare se pot evidenţia diverse
nivele ale interacţiunii Hardware-Software:

 Microprogramele sunt considerate ca un software prima localizate într-o


memorie de tip ROM şi reprezintă un interpretor al instrucţiunilor în limbaj
maşina ce le traduce în operaţii binare.
 Limbajul maşină este un ansamblu de instrucţiuni pentru realizarea
operaţiilor aritmetice, logice, de comparaţie, de conversie şi de
intrare/ieşire, instrucţiuni interpretate de microprograme pentru a fi traduse
în operaţii binare executate de unitatea centrală (UC).
 Un interpretor este un program pentru interpretarea instrucţiunilor scrise
într-un limbaj de programare în vederea codificării lor direct în intrucţiuni
din limbajul maşină. De asemenea, există interpretoare de comenzi ale
sistemelor de operare.
 Un compilator este un program corespunzător unui limbaj de programare
pentru analiza sintactică şi semantică a instrucţiunilor scrise (programul
sursa) în vederea rezolvării unei probleme, instrucţiuni ce vor fi traduse în
aşa-numita formă obiect (program object), formă ce mai departe va fi tradusă
în instrucţiuni ale limbajului maşină, şi care se numeşte forma executabilă a
programului sursă iniţial. De menţionat că pentru execuţia unui program,
este nevoie ca programul să fie sub formă executabilă, formă ce va fi stocată
în memoria internă în vederea execuţiei programului respectiv.
 Un utilitar este un program de interfață între utilizator şi sistemul de operare
în vederea accesării unui serviciu oferit de SO.
326 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 Un editor este un program pentru prelucrarea de instrucţiuni, texte, imagini,


formule etc.
În domeniul utilizării calculatoarelor, limbajele se clasifică în nivele, în funcţie de
raportul faţă de limbajul maşină (nivel 0):
1. limbaje de asamblare (nivel 1) – instrucţiuni/comenzi exprimate prin mnemonice
(prescurtări ale numelor unor operaţii) ce acţionează asupra unor adrese ce nu sunt
absolute, ci simbolice; un program traductor numit asamblor traduce (codifică)
instrucţiunile în instrucţiuni elementare din limbajul maşină; unele componente ale
SO sunt scrise în limbaj de asamblare;
2. limbaje de macro-asamblare (nivel 2) – instrucţiuni formate din macro-instrucţiuni
ce reprezintă o comprimare a unor instrucţiuni specifice unui limbaj de asamblare;
3. limbaje evoluate (de nivel înalt; nivel 3) – limbaje simbolice ce au structura
instrucţiunilor apropiată aspectului algoritmic bazat pe structuri de control
(instrucţiuni structurate), cunoscute sub denumirea de limbaje de programare;
aceste limbaje sunt utilizate prin compilatoare sau medii de dezvoltare (editare,
compilare, execuţie, depanare etc.); de-a lungul vremii au fost concepute şi
elaborate foarte multe (de ordinul sutelor) limbaje de programare, dar în prezent
sunt utilizate doar câteva (cele ce au rezistat perfecţionărilor sistemelor de calcul):
C++, Objective C, Pascal, Modula, Ada95, Java, CLOS, Fortran, Basic etc.
4. limbaje specializate (de nivel înalt; nivel 4) – limbaje simbolice bazate pe structuri
de control având instrucţiuni ce operează asupra unor entităţi de bază (obiecte), de
exemplu: înregistrare, obiect grafic, eveniment, cunoştinţă etc., aceste limbaje sunt
specifice fiecărui domeniu în care se realizează prelucrări: Baze de date ( limbajele
Dbase, FoxPro, Paradox, Clipper), Grafică pe calculator (limbajul MIRA),
Modelare şi simulare (limbajele Simula, Smalltalk), Inteligenţă artificială
(limbajele Prolog, Lisp);
5. limbaje pseudo-cod ( nivel 5) – limbaje algoritmice ce au instrucţiuni apropiate de
limbajele de programare, dar şi de limbajele ştiinţifice şi cele naturale;

Definition. Assembler – Assembly language is the uncontested speed champion


among programming languages. An expert assembly language programmer will almost
always produce a faster program than an expert C programmer.

„Machines have so much memory today, saving space using assembly is not important. If
you give someone an inch, they’ll take a mile. Nowhere in programming does this saying
have more application than in program memory use. For the longest time, programmers
were quite happy with 4 Kbytes. Later, machines had 32 or even 64 Kilobytes. The
programs filled up memory accordingly. Today, many machines have 32 or 64 megabytes
of memory installed and some applications use it all. There are lots of technical reasons
why programmers should strive to write shorter programs, though now is not the time to
go into that. Let’s just say that space is important and programmers should strive to write
programs as short as possible regardless of how much main memory they have in their
machine.” Source: The Art of Assembly Language Programming, Spring 2008, Yale
University, http://flint.cs.yale.edu/cs422/doc/art-of-asm/pdf/ (pdf)
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 327

SISTEME DE OPERARE.
List of Operating Systems: http://www.operating-system.org/
 List of Operatimg Systems: http://en.wikipedia.org/
 GNU Operating Systems: http://www.gnu.org/
 Operating Systems: http://www.google.com/
 Operating Systems Articles: http://www.articlesbase.com/

Tehnologia Cloud computing

Cloud computing este utilizarea de diverse servicii, cum ar fi platforme de


dezvoltare software, servere, stocare și software, prin intermediul Internetului, adesea
denumit „nor”. În general, există trei caracteristici de cloud computing care sunt comune
printre toți furnizorii de cloud-computing:
1. Back-end-ul aplicației (în special hardware-ul) este gestionat complet de un
furnizor de cloud.
2. Un utilizator plătește numai pentru serviciile utilizate (memorie, timp de
procesare și lățime de bandă etc.).
3. Serviciile sunt scalabile.
Multe progrese în domeniul cloud computing sunt strâns legate de virtualizare.
Abilitatea de a plăti la cerere și la scară rapidă este în mare măsură un rezultat al
furnizorilor de servicii de cloud computing, care pot să împartă resurse împărțite între mai
mulți clienți. Este comună clasificarea serviciilor de cloud computing ca infrastructură cu
serviciu (IaaS), platformă ca serviciu (PaaS) sau software ca serviciu (SaaS).

Cloud computing Microsoft Azure Platform


The Windows Azure Platform is a Microsoft cloud platform used to build, host and scale
web applications through Microsoft datacenters. Windows Azure Platform is thus
classified as platform as a service and forms part of Microsoft's cloud computing strategy,
along with their software as a service offering, Microsoft Online Services.
The Windows Azure Platform provides an API built on REST, HTTP and XML that
allows a developer to interact with the services provided by Windows Azure. Microsoft
also provides a client-side managed class library which encapsulates the functions of
interacting with the services. It also integrates with Microsoft Visual Studio so that it can
be used as the IDE to develop and publish Azure-hosted applications. Windows Azure
became commercially available on 1 Feb 2010.

„Running applications on machines in an Internet-accessible data center can bring plenty


of advantages. Yet wherever they run, applications are built on some kind of platform.
For on-premises applications, this platform usually includes an operating system, some
way to store data, and perhaps more. Applications running in the cloud need a similar
foundation. The goal of Microsoft's Windows Azure is to provide this.”

Premieră pentru România, anul 2011:


 Modulul de publicare a informaţiilor pe Internet (Sistemul informatic pentru
examenele naţionale) a folosit platforma de Cloud computing Microsoft
Azure, ceea ce asigură disponibilitate permanentă, capacitate de calcul
328 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

practic infinită, redundanţă şi securitate a informaţiilor. Acest modul a fost


conceput special pentru a face faţă atât unui număr foarte mare de accesări
simultane, cât şi posibilelor atacuri menite să întrerupă disponibilitatea
serviciilor furnizate.
 Conform www.trafic.ro, pe 12 iulie 2011 s-a înregistrat un nou record de
vizitatori unici pentru http://portal.edu.ro, cu 828.935 într-o singură zi şi
peste 24 de milioane de afişări. Cele mai accesate site-uri ale portalului au
fost http://admitere.edu.ro, http://bacalaureat.edu.ro şi http://titularizare.
edu.ro. Sursa: http://portal.edu.ro/index.php/articles/news/11492

Bibliografie

1. Silberschatz A., Galvin P.B. and Gagne G., Operating Systems Concepts, 8th edn. John Wiley &
Sons, 2009
2. A. Tanenbaum, Sistemede operare moderne, Ed.Teora, 2004
3. A. Tanenbaum, Goodman, J. R., Organizarea structurata a calculatoarelor, Ed. Byblos, 2004
4. Deitel H., Operating Systems 3/e, Ed. Prentice Hall, 2004
5. Silberschatz A. Operating Systems Concepts.Seventh Edition, Wesley Publishing Company, 2006
6. Tanenbaum A. Modern Operating Systems, Pretince Hall, 2002
7. Gh. Dodescu, A. Vasilescu, B. Oancea, Sisteme de operare, Editura Economica, 2003
8. Sorin Adrian Ciureanu- Sisteme de Operare, Editura Printech.2004
9. D. Acostachioaie, Administrarea si configurarea sistemelor Linux, Ed. Polirom, 2003
10. S. Buraga, G. Ciobanu, Atelier de programare in retele de calculatoare, Ed. Polirom, 2001
11. L. Peterson, B. Davie, Retele de calculatoare: o abordare sistemica, ALL/Teora, Ed. Morgan
Kaufmann, 2001/2004
12. M. Vlada, Sisteme de operare, Universitatea din Bucuresti, http://prof.unibuc.ro/2018/02/info/,
tutorial, curs On line – http://ebooks.unibuc.ro/informatica/Seiso/
13. M. Vlada, Informatica, Ed. Ars Docendi, 1999
14. List of Operating Systems: http://www.operating-system.org/
15. Liste of Operatimg Systems: http://en.wikipedia.org/
16. GNU Operating Systems: http://www.gnu.org/
17. The von Neumann Architecture of Computer Systems, http://www.brown.edu/Research/
Istrail_Lab/von_neumann.php , Istrail si Solomon Marcus: http://www.brown.edu/Research/
Istrail_Lab/papers/Istrail-Marcus012912FINAL.pdf
18. Von Neumann, J. 1981. First draft of a report on the EDVAC.” In Stern, N. From ENIAC to
Univac: An Appraisal of the Eckert-Mauchly Computers. Digital Press, Bedford, Massachusetts,
http://www.csupomona.edu/~hnriley/www/VonN.html
19. John von Neumann’s EDVAC Report 1945 John von Neumann’s 1945 on June 30 by Hungarian
mathematician John von Neumann (1903-1957), http://www.velocityguide.com/computer-
history/john-von-neumann.html, http://www.wps.com/projects/EDVAC/
20. The Virtual von Neumann Architecture and the global computer, http://meta-
artificial.blogspot.com/2005/07/virtual-von-neumann-architecture.html
1.10 Apariția și evoluția bazelor de date
Concepte, tehnologii și evoluția Bazelor de Date

Marin Vlada,
Universitatea din București

La apariția și utilizarea calculatoarelor electronice, când se scriau programe în


limbaj mașină, s-au declanșat cercetări și studii pentru dezvoltarea de limbaje de
programare, pentru dezvoltarea de sisteme de operare și pentru dezvoltarea și utilizarea
bazelor de date (datebase).
Dacă pentru dezvoltarea de limbaje de programare un rol important l-au avut
teoria automatelor și a gramaticilor, teoria limbajelor formale etc., pentru dezvoltarea de
sisteme de operare un rol important l-au avut teoria algoritmilor, metodele și tehnicile de
procesare a informațiilor, modele de simulare etc., în schimb pentru dezvoltarea și
utilizarea bazelelor de date s-a folosit aproape tot ce s-a dezvoltat pentru limbajele de
programare și pentru sistemele de operare, în plus (în deceniile ’70–’80), metodele și
tehnicile Inteligenței artificiale. De remarcat este faptul că un avânt în dezvoltarea și
utilizarea bazelelor de date (datebase) l-a avut apariția și dezvoltarea limbajelor de
programare specifice BD (bazelor de date):
 anii ’70 – apar sistemele SEQUEL (SQL), QBE; QUEL, System R (DB2),
Ingres.
 anul 1976 – Peter Chen construieşte modelul Entitate-Relaţie.
 Anul 1979 – apare Oracle Database.
 anii ’80 – apar Sistemele de gestiune a bazelor de date (SGBD), printre care:
DB2, Oracle, Sybase, Informix, DBase, FoxBASE, FoxPro, Paradox.
 anul 1986 – a fost definit primul standard SQL.
 Anul 1995 – apare limbajul MySQL – Open Source Relational Database
Management System (RDBMS).
 perioada 1990–2000 – apar concepte precum OODB, ORDB (Postgres), Data
Warehouse, Visual FoxPro, OLAP, Data Mining, GIS, Mobile DB,
Multimedia DB, Web DB, XML DB.
Istoria bazelor de date (BD) şi a sistemelor de gestiune a bazelor de date (SGBD)
poate fi rezumată și împărțită în trei generaţii:
 generația I – sisteme ierarhice şi reţea,
 generația II – sisteme relaţionale,
 generația III – sisteme avansate (orientate obiect, relaţionale orientate obiect,
deductive, distribuite, multimedia, multibaze, active, temporale, decizionale,
magazii de date etc.).
330 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Baze de date deductive – Trecerea de la „informație”


la conceptul de „cunoștință”

În deceniul ’70 apare și se dezvoltă o altă paradigmă în domeniul programării și


al limbajelor de programare: Programarea (în) logică (PROgrammation LOGique), ce
cuprinde următoarele etape reprezentative:
1. Anul 1970 – Robert Kowalsky (Edinburgh University) și Alain Colmerauer
(Université d’Aix Marseille) au pus bazele unei colaborari privind utilizarea
formalismului logicii matematice (Logica de ordinul I: First-Order Logic – a
propositional logic and predicate calculus) la definirea unui limbaj de programare.
Cercetările lui R. Kowalsky au constituit cadrul teoretic necesar, iar A.
Colmerauer și P. Roussel au scris primul interpretor (în limbajul FORTRAN)
și au dezvoltat limbajul Prolog (PROgrammation LOGique).
2. Anul 1981 – William Clocksin si Christopher Mellish publică în anul 1981
cartea „Programming in Prolog”, care definește standardul Edinburgh al
limbajului Prolog. Primul compilator Prolog (R. Kowalsky) a fost realizat la
Warren Edinburgh University, Department of AI.
3. LPA (London Prolog Associates) elaboreaza forma LPA Prolog, care are la
bază standardul Edinburgh, dar aduce și o serie de dezvoltari proprii (meta-
predicate).
Limbajul declarativ Prolog își are rădăcinile în logica de ordinul I, o logică
formală și, spre deosebire de limbajele de programare imperative, logica programului este
exprimată prin relații (clauze Horn), reprezentate ca fapte și reguli; un program este
inițiat prin rularea unei interogări asupra acestor relații. Aceste fapte și reguli reprezentate
prin clauze Horn reprezintă o bază de cunoștințe (KB – Knowledge Base). O bază de
cunoștințe (KB) este o tehnologie utilizată pentru stocarea informațiilor complexe
structurate și nestructurate utilizate de un sistem de rezolvare a problemelor. Utilizarea
inițială a termenului a fost în legătură cu sistemele expert, care au fost primele sisteme
bazate pe cunoaștere.
Un sistem bazat pe cunoaștere (knowledge-base) constă într-o bază de cunoștințe
care reprezintă fapte despre lume și un motor de deducere (inference engine), care poate
realiza raționamente (prin intermediul inferențelor logice) cu privire la aceste fapte și
poate folosi reguli și alte forme de logică pentru a deduce noi fapte sau pentru a evidenția
neconcordanțe.
În rezolvarea problemelor, schimbarea de paradigmă realizată de Inteligența
Artificială este următoarea:
 Pentru rezolvarea unei probleme folosind limbajele de programare, concepute
sub forma imperativă/procedurală, se caută metodele matematice sau
informatice ce vor fi transformate/convertite în procese de calcul ale unui
algoritm, ce urmează a fi dezvoltat într-un program și care va rezolva
problema prin execuția pe un computer. Prin urmare, pentru rezolvarea unei
probleme este nevoie de dezvoltarea unei algoritm de calcul ce urmează a fi
convertit într-un cod al unui limbaj de programare.
 Pentru rezolvarea unei probleme folosind limbajele Inteligenței Artificiale –
concepute sub forma declarativă, în cazul limbajului Prolog (funcțională, în
cazul limbajului LISP), nu se mai dezvoltă un algoritm de calcul, ci pornind
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 331

de la enunțul problemei de rezolvat, se face o reprezentare prin definirea de


obiecte și relații între aceste obiecte, dezvoltându-se o mulțime de clauze
Horn (reguli și fapte, în termenii logicii de ordinul I), ce constituie o bază de
cunoștințe (KB), aceasta fiind de fapt, programul Prolog – considerat un
„demonstator de teoreme”. Rezolvarea unei probleme se realizează prin
găsirea soluțiilor (niciuna, una sau mai multe soluții) în urma iterogarii
(Calculus Queries) bazei de cunoștințe (o interogarea înseamnă o „întrebare”
pentru satisfacearea unui „scop” (GOAL) în conformitate cu clauzele Horn ce
descriu baza de cunoștințe corespunzătoare problemei de rezolvat. Mediul
Prolog găsește toate soluțiile prin metoda Backtracking, folosind metoda
„potrivirii termenilor” prin procesul de unificare, conform principiului
rezoluției („A Machine-Oriented Logic Based on the Resolution Principle”, J.
ACM. 12, 1965) al lui John Alan Robinson1.

O interogare conjunctivă bazată pe reguli (pag. 41, S. Abiteboul, R. Hull, V. Vianu, Foundations of
Databases, 1995)

Definition of A (datalog) rule (pag. 276, S. Abiteboul, R. Hull, V. Vianu, Foundations of Databases, 1995)

1
Principala contribuție a lui Alan Robinson este fundamentarea demonstrarii automate a teoremelor
(automated theorem proving). Algoritmul său de unificare a eliminat o sursă de alegeri combinatorice în
gasirea soluțiilor in procesul de rezoluție; de asemenea, a pregătit terenul pentru paradigma programării
logice, în special pentru limbajul Prolog. Pentru contribuții deosebite la raționamentul automatizat, A.
Robinson a primit premiul Herbrand în anul 1996- https://en.wikipedia.org/wiki/John_Alan_Robinson.
332 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Baze de date deductive


O relaţie este o mulţime de înregistrări ce
reprezintă fapte. Cunoştinţele sunt aserţiuni generale şi
abstracte asupra faptelor. Cunoştinţele permit să raţionezi,
ceea ce permite deducerea de noi fapte, plecând de la
fapte cunoscute. Un SGBD relaţional suportă o formă
limitată de cunoştinţe, şi anume constrângerile de
integritate, iar restul trebuie integrate în programele de
aplicaţie. Aceasta generează probleme deoarece
cunoştinţele trebuie codificate în programe şi apare
imposibilitatea de a partaja cunoştinţe între utilizatori.
Totul se complică dacă există un volum mare
de fapte. Bazele de date deductive (BDD), utilizând
programarea logică, gestionează cunoştinţe relativ la
baze de date care, în general, sunt relaţionale. Bazele de
date deductive permit deducerea de noi informaţii,
plecând de la informaţiile stocate în baza de date. Un
SGBD deductiv posedă:
 un limbaj de definire a datelor care permite definirea structurii predicatelor
sub formă de relaţii şi constrângeri de integritate asociate;
 un limbaj de prelucrare a datelor care permite efectuarea reactualizărilor
asupra datelor şi formularea unor cereri;
 un limbaj de reguli de deducţie care permite ca, plecând cu predicatele
definite anterior, să se specifice cum pot fi construite predicate derivate.
O carte importantă din domeniul proiectării și interogării bazelor de date este
Serge Abiteboul, Richard Hull, Victor Vianu, Foundations of Databases. Addison-Wesley
1995, ISBN 0-201-53771-0.
„Astăzi, computerele sunt folosite în aproape toate aspectele activității umane. Unul
dintre principalele lor utilizări este de a gestiona informații, care, în unele cazuri,
implică pur și simplu deținerea datelor pentru recuperarea lor în viitor și, în alte cazuri,
servind ca o coloană vertebrală pentru gestionarea ciclului de viață al proceselor
complexe financiare sau de inginerie. O cantitate mare de date stocate pe un computer se
numește o bază de date (datebase). Software-ul de bază care acceptă gestionarea acestor
date este numit un Sistem de gestionare a bazelor de date (DBMS). DBMS-urile sunt de
obicei însoțite de un mare și permanent ansamblu de software de aplicație care
accesează și modifică informațiile stocate. Accentul principal în această carte este de a
prezenta o parte din teoria care stă la baza proiectării și utilizării acestor sisteme.
Primul capitol preliminar examinează pe scurt domeniul sistemelor de baze de date
pentru a indica contextul mai larg care a condus la această teorie.”
Sursa: Serge Abiteboul, Richard Hull, Victor Vianu2, Foundations of Databases. Addison-Wesley
1995, ISBN 0-201-53771-0 (The full PDF version of the book: http://webdam.inria.fr/Alice/ ,
http://webdam.inria.fr/Alice/pdfs/all.pdf).

2
Professor, Computer Science and Engineering, Department of Computer Science and Engineering U.C. San
Diego, La Jolla (USA), https://cseweb.ucsd.edu/~vianu/ (Ph.D. in Computer Science, University of Southern
California, 1983, Undergraduate studies: Mathematics and Informatics Department, University of Bucharest
(1974-1977) - originar din România.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 333

PART A -- Antechamber PART D -- Datalog and Recursion


1 Database Systems 12 Datalog
1.1 The Main Principles 12.1 Syntax of Datalog
1.2 Functionalities 12.2 Model-Theoretic Semantics
1.3 Complexity and Diversity 12.3 Fixpoint Semantics
1.4 Past and Future 12.4 Proof-Theoretic Approach
1.5 Ties with this Book 12.5 Static Program Analysis
Bibliographic Notes Bibliographic Notes
2 Theoretical Background Exercises
2.1 Some Basics 13 Evaluation of Datalog
2.2 Languages, Computability, Complexity 13.1 Semi-naive Evaluation
2.3 Basics from Logic 13.2 Top-down Techniques
3 The Relational Model 13.3 Magic
Bibliographic Notes 13.4 Two Improvements
Bibliographic Notes
PART B -- Basics: Relational Query Languages Exercises
4 Conjunctive Queries 14 Recursion and Negation
4.1 Getting Started 14.1 Algebra + {\pem { while
4.2 Logic-based perspectives 14.2 Calculus + Fixpoint
4.3 Query composition and views 14.3 Datalog with Negation
4.4 Algebraic perspectives 14.4 Equivalence
4.5 Adding union 14.5 Recursion in Practical Languages
Bibliographic Notes Bibliographic Notes
Exercises Exercises
5 Adding Negation: Algebra and Calculus 15 Negation in Datalog
5.1 The Relational Algebras 15.1 The Basic Problem
5.2 Nonrecursive Datalog with Negation 15.2 The Stratified Semantics
5.3 The Relational Calculus 15.3 The Well-Founded Semantics
5.4 Syntactic Restrictions for Domain 15.3.1 A Declarative Semantics for
Independence datalog$^\neg $
5.5 Digression: Finite Representations of 15.3.2 A Fixpoint Definition
Infinite Databases 15.3.3 Well-founded and Stratified
Bibliographic notes Semantics Agree
Exercises 15.4 Expressive Power
6 Static Analysis and Optimization 15.5 Negation as Failure in Brief
6.1 Issues in Practical Query Optimization Bibliographic Notes
6.2 Global Optimization Exercises
6.3 Static Analysis of the Relational Calculus PART E -- Expressiveness and Complexity
6.4 Computing with Acyclic Joins
Bibliographic Notes 16 Sizing Up Languages
Exercises 16.1 Queries
7 Notes on Practical Languages 16.2 Complexity of queries
7.1 SQL: The Structured Query Language 16.3 Languages and Complexity
7.2 Query-By-Example and Microsoft Access Bibliographic Notes
7.3 Confronting the Real World Exercises
Bibliographic Notes 17 First-Order, Fixpoint and While
Exercises 17.1 Complexity of the First-Order Queries
17.2 Expressiveness of the First-Order Queries
PART C -- Constraints 17.3 The Fixpoint and While Queries
17.4 The Impact of Order
8 Functional and Join Dependency Bibliographic Notes
334 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

8.1 Motivation Exercises


8.2 Functional and Key Dependencies 18 Highly Expressive Languages
8.3 Join and Multivalued Dependencies 18.1 While$_N$ -- while with Arithmetic
8.4 The Chase 18.2 While$_{new}$ -- while with New
Bibliographic Notes Values
Exercises 18.3 While$_{uty}$ -- an Untyped Extension
9 Inclusion Dependency of while
9.1 Inclusion Dependency in Isolation Bibliographic Notes
9.2 Finite vs. Infinite Implication Exercises
9.3 Non-axiomatizability of fds + inds
9.4 Restricted Kinds of Inclusion Dependency PART F -- Finale
Bibliographic Notes
Exercises 19 Incomplete Information
10 A Larger Perspective 19.1 Warm up
10.1 A Unifying Framework 19.2 Weak Representation Systems
10.2 The Chase Revisited 19.3 Conditional Tables
10.3 Axiomatization 19.4 The Complexity of Nulls
10.4 An Algebraic Perspective 19.5 Other Approaches
Bibliographic Notes Bibliographic Notes
Exercises Exercises
11 Design and Dependencies 20 Complex Values
11.1 Semantic Data Models 20.1 Complex Value Databases
11.2 Normal Forms 20.2 The Algebra
11.3 Universal Relation Assumption 20.3 The Calculus
20.4 Examples
Bibliographic Notes 20.5 Equivalence Theorems
Exercises 20.6 Fixpoint and Deduction
20.7 Expressive Power and Complexity
20.8 A Practical Query Language for Complex
Values
Bibliographic Notes
Bibliography
Index

Definiții și concepte de bază


O bază de date (database) este o colecție organizată de date stocată pe un suport
de memorie și accesată/prelucrată electronic dintr-un sistem informatic. În cazul în care
bazele de date sunt complexe, acestea sunt deseori dezvoltate folosind tehnici formale de
proiectare și modelare. O baza de date este un ansamblu structurat de date coerente, fără
redundanţă inutilă, astfel încât acestea pot fi prelucrate eficient de unul sau mai mulţi
utilizatori într-un mod concurent. Sistemul de gestionare a bazelor de date (SGBD)
(database management system-DBMS) este un software care cuprinde facilitățile de bază
pentru administrarea și prelucrarea bazelor de date.
Sistemul de gestionare a bazelor de date (SGBD) se poate clasifica în funcție de
modelele bazelor de date pe care le implementează. Modelul relațional al bazele de date a
început sa fie foarte răspândit în anii 1980. Acest tip de model reprezentat de o serie de
tabele utilizează SQL (Structured Query Language) pentru scrierea și interogarea datelor.
Limbajul SQL a fost unul dintre primele limbaje comerciale pentru modelul relațional.
Modelul a fost descris de Edgar F. Codd în lucrarea sa din anul 1970, „Un model
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 335

relațional de date pentru baze mari de date partajate”. În ciuda faptului că nu a respectat
în întregime modelul relațional descris de Codd, limbajul SQL a devenit cel mai utilizat
limbaj de baze de date. Limbajul SQL este proiectat pentru un scop specific: de a interoga
datele conținute într-o bază de date relațională. SQL este un limbaj de programare
declarativ, bazat pe seturi, nu un limbaj de programare imperativ.
Limbajul SQL are următoarele componente:
a. un limbaj de definire a datelor (Data Definition Language – DDL), utilizat la
definirea schemei bazei de date;
b. un limbaj de manipulare a datelor (Data Manipulation Language – DML),
care permite utilizatorului manipularea obiectelor bazei de date şi a relaţiilor
dintre acestea, în contextul schemei bazei de date.
Aceste limbaje pot diferi de la un producător la altul în cadrul modelului pe care
aceştia îl folosesc datorită aspectelor legate de complexitate, funcţionalitate şi uşurinţa în
exploatare (interfaţa utilizator). De multe ori, aceste limbaje sunt subseturi pentru
prelucrarea datelor, deoarece nu includ construcţii și prelucrări pentru toate necesităţile de
calcul, cum sunt cele asigurate de limbajele de nivel înalt.

Programatori Utilizatori Administratorul


bazei de date

Programe Interogări Schema


aplicaţie bazei de date

SGBD
Preprocesorul Procesor de Compilator
DML interogare DDL

Codul programului
Administrator Administrator
obiect
baza de date catalog

Administrator
Metode de
de fişiere
acces

Buffer
Catalogul
sistemului

Baza de date

Aspectele și componentele de gestionare a bazelor de date (V. Popa,


www.seap.usv.ro/~valeriul/lupu/baza_de_date_cig.doc, 2011)

Majoritatea sistemelor de gestiune a bazelor de date au încorporat aceste subseturi


într-un limbaj de programare de nivel înalt (ex. C++). În acest caz limbajul de nivel înalt
este numit limbaj gazdă.
336 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Codul Procesorul de Administratorul de


programului obiect interogare catalog

Controlul de autorizare Administratorul


bazei de date

Verificatorul de Procesorul Optimizatorul


integritate de comandă de interogare

Administratorul Planificatorul
de tranzacţii

Administratorul Administratorul Administratorul


de date de buffer de reconstituire

Administratorul
Metode de
de fişiere
acces

Buffer
Catalogul
sistemului

Baza de date

Componentele administratorului bazei de date (V. Popa,


www.seap.usv.ro/~valeriul/lupu/baza_de_date_cig.doc, 2011)

Definiție. Formal, o bază de date (BD) este o mulțime de sisteme ordonate de


valori (d1,d2, …, dn) din produsul cartezian D1 x D2 … x Dn, unde Di este o mulțime de
valori ale unui tip de date, adică
BD = {(d1, d2, …, dn) | (d1,d2, …, dn) D1 x D2 … x Dn},
iar logic, este o structură de stocare o informațiilor constituită dintr-un antet C1 x C2 x …
x Cn, unde Ci se numesc câmpuri ce au atributele Name (nume), Type (tip da date), Width
(lățime), Decimals (zecimale) și Records (număr de înregistrări) sau articole care conțin
valori corespunzătoare tipului de date pentru fiecare câmp din antet. Pentru m înregistrări
BD are forma din tabelul următor:
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 337

Câmp 1 Câmp 2 ... Câmp n


d11 d12 ... d1n

.
.
.

dm1 dm2 ... dmn

și fizic este un fișier stocat (memorat) pe unități de memorie externă (FD – discheta, HD -
Hard Disk, CD – compact disk), care este identificat printr-un nume și reprezintă o
codificare pe suport memorie a formei logice a BD.

Cerințele APLICAȚIEI (Input /Otput)

Activități de ANALIZĂ

Activități de PROGRAMARE

Activități de IMPLEMENTARE

Activități de TESTARE

Activități de EXPLOATARE

Schema bloc pentru realizarea unei aplicații cu baze de date

Evoluţia în timp a metodelor de organizare a datelor e legată de soluţiile tehnice


de înmagazinare/stocare a acestora şi cuprinde nivelurile:
1. Nivelul I – organizarea datelor în fişiere clasice;
2. Nivelul II – organizarea mixtă în fişiere;
3. Nivelul III – organizarea datelor în bazele de date clasice;
338 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

4. Nivelul IV – organizarea datelor în bazele de date relaţionale;


5. Nivelul V – organizarea datelor în baze de date distribuite.
În cadrul acestei evoluţii se disting următoarele etape privind suportul de
înregistrare a datelor:
 Etapa I – este perioada caracterizată de înregistrarea datelor pe benzi
magnetice. Această etapă se apropie mult de sistemul manual de organizare a
datelor (îndosariere – datele sunt organizate, în principal, sub formă de fişiere
secvenţiale datorită suportului magnetic (benzi)). Programatorii erau nevoiţi să
efectueze o serie de operaţii de gestiune a datelor, datorită puternicei legături
dintre aplicaţii şi date.
 Etapa a II-a – este caracterizată de înregistrarea datelor pe discul magnetic.
Datele se pot organiza acum atât în fişiere secvenţial-indexate, cât şi în fişiere
cu acces direct. Anterior acestei etape datele erau înmagazinate în fişiere
obişnuite, fie în format ISAM (Indexed Sequential Access Method) fie în
format VSAM (Virtual Storage Access Method). Datele sunt înmagazinate şi
extrase acum în unităţi numite blocuri sau pagini. Spre deosebire de
înmagazinarea în memoria RAM, timpul necesar extragerii unei pagini diferă
în funcţie de localizarea acesteia pe disc.
 Etapa a III-a – este caracterizată de apariţia bazelor de date. Datele se pot
organiza acum sub forma unor fişiere integrate. Acestea permit realizarea mai
multor fişiere logice pe baza aceloraşi date fizice.
 Etapa a IV-a – se caracterizează prin asigurarea independenţei logice şi fizice
a datelor faţă de programele de aplicaţie. Aceasta se realizează prin
intermediul administratorului de baze de date cu ajutorul descrierii datelor la
un nivel logic global.
Un scurt istoric privind cele mai importante evenimente din dezvoltarea bazelor
de date (BD).
 anul 1961 – Charles Bachman proiectează Integrated Data Store (IDS) –
predecesorul modelului reţea.
 sfârşitul anilor ’60 – IBM creează „Information Management System: IMS”
bazat pe modelul ierarhic.
 sfârşitul anilor ’60 – Grupul CODASYL (Committee for Data System
Languages) defineşte /standardizează modelul reţea.
 anul 1969 – Edgar Codd, cercetător la firma IBM, construieşte modelul
relaţional.
 anii ’70 – Apar SEQUEL (SQL), QBE; QUEL, System R (DB2), Ingres.
 anul 1976 – Peter Chen construieşte modelul Entitate-Relaţie.
 anii ’80 – Apar sistemele de gestiune a bazelor de date, printre care: DB2,
Oracle, Sybase, Informix, DBase, FoxBASE, FoxPro,Paradox.
 anul 1986 – A fost definit primul standard SQL.
 perioada 1990–2000 – Apar concepte precum OODB, ORDB (Postgres), Data
Warehouse, Visual FoxPro, OLAP, Data Mining, GIS, Mobile DB,
Multimedia DB, Web DB, XML DB.
Despre produsul Oracle – Larry Ellison și cei doi prieteni și foști colaboratori,
Bob Miner și Ed Oates, au început în 1977 o consultanță numită Software Development
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 339

Laboratories (SDL). SDL a dezvoltat versiunea originală a produsului software Oracle.


Numele Oracle provine de la codul-nume al unui proiect finanțat de CIA și pe care
Ellison la scris în timp ce era angajat anterior la firma Ampex. Cea mai recentă
versiune/generație Oracle Database 18c este disponibilă on-prem, Cloud sau într-un
mediu hibrid Cloud. De asemenea, versiunea 18c poate fi implementată pe sistemele
Oracle Engineered Systems (ex. Exadata) on-prem, pe Cloud (public) sau Cloud (privat)
la client. La Openworld 2017 din San Francisco, președintele executiv al Comitetului și
CTO, Larry Ellison a anunțat următoarea generare de baze de date, Oracle Database
Autonomou.
Despre produsul dBase – La sfârșitul anilor 1960, Fred Thompson, la
Laboratorul de Propulsie Jet (JPL), folosea un produs Tymshare numit RETRIEVE
pentru a gestiona o bază de date pe calculatoarele electronice, care erau la acel moment
produse foarte scumpe. În anul 1971, Thompson a colaborat cu Jack Hatfield,
programator la JPL, pentru a scrie o versiune îmbunătățită a programului RETRIEVE,
care a devenit proiectul JPLDIS. JPLDIS a fost scris în limbajul FORTRAN pe
mainframe-ul UNIVAC 1108 și a fost prezentat public în anul 1973. Când Hatfield a
părăsit JPL, în anul 1974, Jeb Long i-a preluat rolul. Programul dBase a fost unul dintre
primele sisteme de gestionare a bazelor de date pentru microcalculatoare și cel mai de
succes în acei ani. Sistemul dBase include motorul bază de date, un sistem de interogare,
un motor de formulare și un limbaj de programare, care leagă toate aceste componente
împreună.
Formatul de fișiere dBase, fișierul .dbf este utilizat pe scară largă în aplicații care
necesită un format simplu pentru stocarea datelor structurate. Inițial, dBase a fost publicat
de Ashton-Tate pentru sistemul de operare CP/M în anul 1980 și mai târziu a fost portat
pe computerele Apple II și IBM PC sub sistemul de operare DOS. Pe platforma PC, în
special, dBase a devenit unul dintre cele mai bine vândute licențe de software mai mulți
ani. Un upgrade major a fost lansat ca dBase III și a fost portat la o varietate mai largă de
platforme, adăugând UNIX și VMS. La mijlocul anilor 1980, Ashton-Tate a fost unul
dintre cei 3 producătorii de software de pe piața de software, celelalte fiind Lotus
Development și WordPerfect. Începând cu mijlocul anilor 1980, mai multe companii au
produs propriile variații ale produsului dBase și mai ales ale limbajului de programare
dBase. Acestea includ FoxBASE + (ulterior redenumit FoxPro), Clipper și alte produse
așa-numite xBase. După apariția limbajului SQL a existat o creștere a utilizării
tehnologiei SQL (Structured Query Language) inventată de IBM în produsele unei baze
de date. Un alt factor a fost adoptarea de către utilizatori a Microsoft Windows pe
computerele desktop. Trecerea la SQL și Windows a făcut presiune asupra producătorilor
produselor xBase să investească major pentru a oferi noi capabilități. Astăzi, ultima
vesiune dBASE PLUS 11 din 14 decembrie 2016.
Despre produsul Visual FoxPro – În anul 1992 apare programul Visual FoxPro
derivat din FoxPro (inițial cunoscut sub numele de FoxBASE), dezvoltat de Fox Software
începând din anul 1984. Fox Technologies a fuzionat cu Microsoft în anul 1992, după
care software-ul a achiziționat alte caracteristici și prefixul „Visual”. Versiunea FoxPro
2.6 a funcționat sub sistemele de operare Mac OS, DOS, Windows și Unix.
340 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Exemplu de utilizarea a meniului principal oferit de mediul FoxPro (v. 2.6, MS


1989-1994):
 SYSTEM – diverse elemente privind SGBD.
 FILE – operații privind fișierele (creare, deschidere, salvare; fișier=BD,
program etc.).
 EDIT – operații de editare (comenzile din fereastra COMMAND etc.)
 DBASE – operații asupra BD (setup, funcții de prelucrare a informațiilor etc.)
 RECORD – operații asupra înregistrărilor (actualizare, modificare etc.).
 PROGRAM – facilități privind apelarea de programe și proceduri (compilare).
 WINDOWS – facilități privind operații asupra ferestrelor de pe ecran.
 RUN – execuția de cereri, ecrane pentru introducerea de date, rapoarte,
etichete etc.

Meniu principal oferit de mediul FoxPro (versiunea 2.6, MS 1989-1994)


ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 341

SQL Online Tutorial (SQL tutorial will teach you how to use SQL in: MySQL,
SQL Server, MS Access, Oracle, Sybase, Informix, Postgres, and other database systems)
- https://www.w3schools.com/sql/.
Lucrare de referință în mediul universitar pentru Programarea avansată în
ORACLE9i: Ileana Popescu, Letiția Velcescu, Alexandra Alecu, Gabriela Florea,
Programare avansată în ORACLE 9i, Editura Tehnică, 2004.
Lucrarea reprezintă caracteristicile si
funcţionalităţile platformei ORACLE9i, marcând
performanţele aduse de această versiune. Facultatea de
Matematică şi Informatică a Universităţii din Bucureşti a
implementat programul ORACLE ACADEMIC
INITIATIVE (OAI), care permite accesul la tehnologia
ORACLE şi integrarea acesteia în curriculumul său
academic. Lucrarea se adresează tuturor celor care doresc
să dezvolte aplicaţii de bază de date utilizând
ORACLE9i.
Arhitectura multi-tier a sistemului Oracle9i.
Arhitectura cu mai multe niveluri (multi-tier)
conţine următoarele elemente:
 unul sau mai mulţi clienți care iniţiază operaţii;
 unul sau mai multe servere de aplicaţii care
execută părţi ale operaţiilor;
 un server de baze de date care stochează datele folosite de operaţii.
Clientul, care poate fi un browser Web sau un proces user, iniţiază o cerere pentru a
executa o operaţie referitoare la informaţiile stocate în baza de date. Conectarea la
serverul bazei de date se face printr-unul sau mai multe servere de aplicaţii. Serverul de
aplicaţii constituie interfaţa dintre clienți şi serverul bazei de date, asigurând accesul la
informaţii. De asemenea, el include un nivel adiţional pentru securitate. Serverul de
aplicaţii îşi asumă identitatea clientului, atunci când execută, pe serverul de baze de date,
operaţiile solicitate de acesta. Arhitectura multi-tier permite folosirea unui server de
aplicaţii pentru acreditarea clientului, conectarea la serverul de baze de date şi execuţia
operaţiilor iniţiate de client. Privilegiile serverului de aplicaţii sunt limitate pentru a
preveni execuţia operaţiilor nedorite sau inutile în timpul unei operaţii client. Serverul de
baze de date pune la dispoziţia serverului de aplicaţii informaţiile necesare pentru
soluţionarea operaţiilor lansate de către client. De asemenea, acesta face distincţia între
operaţiile pe care serverul de aplicaţii le cere în favoarea clientului şi cele pe care le
solicită în nume propriu.
Produsul Oracle9i se utilizează pentru găsirea și depășirea cerințelor stricte în
serviciile de înaltă calitate pe o piață bazată pe servicii. Oracle9i este proiectat pentru a
optimiza aplicațiile tradiționale, pe internet și intranet și pentru a stimula piața on-line a
aplicațiilor găzduite pe internet. De asemenea, Oracle9i s-a bazat pe punctele forte
istorice pentru a oferi prima infrastructură software completă și simplă pentru următoarea
generație de aplicații inteligente, colaborative. Noile caracteristici Oracle9i au accelerat
livrarea performanțelor critice, scalabilității și disponibilității esențiale pentru furnizarea
software-ului de găzduire pentru oricine, oriunde și oricând.
342 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Arhitectura three-tier a sistemului Oracle9i,


https://docs.oracle.com/cd/A91202_01/901_doc/server.901/a90120/ch1_over.htm, 2001

Bazele de date nu lucrează eficient în cadrul fişierelor obişnuite cu date, ce


implică utilizarea grupurilor repetitive de date, de aceea acest lucru a condus la
dezvoltarea unei mari varietăţi de structuri de baze de date, numite de obicei şi modele de
baze de date.
Istoria bazelor de date (BD) şi a sistemelor de gestiune a bazelor de date (SGBD)
poate fi rezumată în trei generaţii:
 Generația I - sisteme ierarhice şi reţea. Pentru modelele ierarhice şi reţea,
datele sunt reprezentate la nivel de articol prin legături ierarhice (arbore) sau
de tip graf. Slaba independenţă fizică a datelor complică administrarea şi
prelucrarea acestora. Limbajul de prelucrare a datelor impune programatorului
să specifice drumurile de acces la date.
 Generația II - sisteme relaţionale. A doua generaţie de SGBD-uri este legată
de apariţia modelelor relaţionale (1970), care tratează entităţile ca nişte relaţii.
Piaţa actuală de baze de date este acoperită în majoritate de sisteme
relaţionale. Bazele de date relaţionale sunt caracterizate de: structuri de date
simple; intuitive; inexistenţa pointerilor vizibili pentru utilizator; constrângeri
de integritate; operatori aplicaţi relaţiilor care permit definirea, căutarea;
reactualizarea datelor. Dezvoltarea unei aplicaţii riguroase utilizand o bază de
date relaţionale necesită cunoaşterea a trei niveluri de instrumente, eterogene
din punct de vedere conceptual: nivelul instrumentelor grafice (interfaţa);
nivelul aplicaţie, cu limbajele sale de dezvoltare; nivelul SGBD, cu standardul
SQL (Structured Query Language), ce permite definirea, prelucrarea şi
controlul bazei de date.
 Generația III - sisteme avansate (orientate obiect, relaţionale orientate obiect,
deductive, distribuite, multimedia, multibaze, active, temporale, decizionale,
magazii de date etc.).
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 343

Modele de date bazate pe înregistrări


Astfel de modele descriu datele la nivel conceptual. Spre deosebire de modelele
orientate pe obiecte, acestea sunt folosite cu scopul de a specifica structura logică
generală a bazei de date şi de a oferi un nivel ridicat al descrierii implementării. Modelele
sunt denumite în acest fel deoarece baza de date este alcătuită din înregistrări de acelaşi
tip. Fiecare tip de înregistrare are un număr fix de câmpuri, fiecare câmp având, de obicei,
o lungime fixă, ceea ce duce la simplificarea reprezentării. Aceste modele nu oferă un
mecanism de reprezentare directă a codului din baza de date. Pentru a efectua interogări şi
actualizări asupra bazei de date se folosesc o serie de limbaje individuale separate
asociate modelului. Din această categorie de modele fac parte:
 modelul de date ierarhic;
 modelul de date reţea;
 modelul de date relaţional.
Astăzi, datorită dezvoltării fără precedent a Internetului, din ce în ce mai mult, se
impune un alt tip de model, modelul de date semi-structurat, în format XML.

Modele logice orientate pe obiecte


Aceste modele descriu datele la nivelele conceptual şi extern oferind o flexibilitate
ridicată. Astfel de modele pot specifica în mod explicit constrângerile aplicate datelor şi
se bazează pe următoarele concepte:
 entitate – un obiect sau concept din lumea reală ce are identitate proprie;
 atribut – un set de proprietăţi utilizate la descrierea entităţilor;
 relaţie – o asociere între două sau mai multe entităţi.

Din această categorie fac parte:


 modelul entitate-relaţie;
 modelul orientat pe obiecte;
 modelul obiectual-relaţional;
 modelul binar;
 modelul de date semantice;
 modelul de date logice;
 modelul de date funcţionale.

Despre Regulile lui Codd (Codd's 12 rules)


Edgar F. Codd (1923-2003) a fost un cercetător, angajat al firmei IBM, care a
dezvoltat pentru prima dată, în anul 1970, modelul relaţional al bazelor de date în care
prezintă operaţiile ce pot fi efectuate asupra unei baze de date cu scopul obţinerii
accesului rapid şi corect la acestea (https://en.wikipedia.org/wiki/Codd%27s_12_rules).
Un model al unei baze de date are în vedere atât modul de stocare a datelor, cât și
metodologia folosită la extragerea şi actualizarea acestora. Pe parcursul anilor ‘60-’70,
Codd a căutat să rezolve problemele induse de modelul ierarhic al bazelor de date care se
folosea la IBM în acea perioadă. Rezultatul acestor cercetări s-a materializat în
promovarea modelului relaţional ca o soluţie alternativă a modelului ierarhic care se
bazează pe teoria matematică a mulţimilor.
Spre deosebire de sistemele ierarhice rigide, bazele de date relaţionale sunt uşor
de parcurs, manipulat şi modificat. În principiu, acestea se bazează pe conceptul de tabel
344 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

bidimensional (numit şi relaţie), fiecare tabel fiind alcătuit din înregistrări (rânduri
orizontale, numite şi tupluri) şi câmpuri (coloane verticale numite şi atribute). În esenţă, o
bază de date relaţională este alcătuită dintr-o colecţie de tabele bidimensionale în care
coloanele unui tabel pot conţine asocieri cu rândurile altor tabele în scopul
corespondenţei datelor.
La început IBM nu a luat în considerare ideile revoluţionare ale angajatului său,
datorită marilor investiţii făcute în produsul de baze de date ierarhice, IMS, pe care
încercau să-l promoveze masiv pe piaţă. Astfel, s-au scurs 7 ani de la lucrările lui Codd
până când Larry Ellison, care conducea o companie ce ulterior avea să devină ORACLE,
a creat primul produs comercial de baze de date relaţionale. În 1981, IBM a realizat
produsul SQL/DS, primul lor produs relaţional, urmat în 1983 de celebrul DB2.
În 1985 Codd a publicat o listă de reguli care definesc simplu şi concis o bază de
date relaţională ideală, aceste reguli devenind standardul de evaluare a sistemelor
relaţionale, fiind în acelaşi timp şi un ghid de proiectare a tuturor sistemelor de baze de
date relaţionale. După publicarea lucrării, Codd a afirmat că va fi foarte greu, dacă nu
imposibil de creat un sistem care să satisfacă în totalitate setul de reguli, lucru care
rămâne valabil şi astăzi. La cele mai multe dintre sistemele relaţionale de baze de date
regulile 6, 9, 10, 11 şi 12 sunt foarte greu de respectat. Aceste reguli se găsesc la adresa:
https://en.wikipedia.org/wiki/Codd%27s_12_rules:
 Regula 0: regula fundației - Pentru orice sistem care este anunțat sau susținut a fi un
sistem de gestionare a bazelor de date relaționale, sistemul respectiv trebuie să poată
gestiona bazele de date în întregime prin intermediul capacităților sale relaționale.
 Regula 1: regula de informare - Toate informațiile dintr-o bază de date relațională
sunt reprezentate explicit la nivel logic și într-un mod exact, prin valorile din tabele.
 Regula 2: regula garantată a accesului: Fiecare dată (valoare atomică) dintr-o bază de
date relațională este garantată a fi accesibilă logic prin recurgerea la o combinație de
nume de tabel, valoare cheie primară și nume de coloană.
 Regula 3: Tratamentul sistematic al valorilor null - Valorile NULL (distincte din șirul
de caractere gol sau un șir de caractere goale și distincte de la zero, sau orice alt
număr) sunt sprijinite în SGBD complet relaționale pentru reprezentarea lipsă de
informații și informații inaplicabile într-un mod sistematic, independent de tipul de
date.
 Regula 4: Catalog online dinamic bazat pe modelul relațional - Descrierea bazei de
date este reprezentată la nivel logic în același mod ca și datele obișnuite, astfel încât
utilizatorii autorizați să poată aplica aceeași interacțiune limbajului relațional cu
interogarea pe care o aplică la datele obișnuite.
 Regula 5: Regulamentul cuprinzător privind sublimbajele de date - Un sistem
relațional poate suporta mai multe limbaje și diferite moduri de utilizare a terminalelor
(de exemplu, modul fill-in-the-blanks). Cu toate acestea, trebuie să existe cel puțin un
limbaj ale cărui declarații sunt exprimabile, pe baza unei sintaxe bine definite, ca
șiruri de caractere și cuprinzătoare în susținerea tuturor următoarelor elemente:
definirea datelor; vizualizarea definițiilor; manipularea datelor (interactive și
programate); constrângeri de integritate; autorizare; limitele tranzacțiilor (începe,
comite și revin).
 Regula 6: regula de actualizare - Toate modificările care pot fi actualizate teoretic
sunt de asemenea actualizate de sistem.
 Regula 7: Posibilități pentru înserarea, actualizarea și ștergere la nivel înalt -
Capacitatea de a trata o relație de bază sau o relație derivată ca un singur operand se
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 345

aplică nu numai la extragerea datelor, ci și la înserarea, actualizarea și ștergerea


datelor.
 Regula 8: Independența datelor fizice - Programele de aplicație și activitățile
terminale rămân nelimitate logic ori de câte ori se fac modificări în reprezentările de
stocare sau în metodele de acces.
 Regula 9: Independența datelor logice - Programele de aplicație și activitățile
terminale rămân nelimitate în mod logic atunci când se fac modificări de conservare a
informațiilor de orice natură, care teoretic, permit efectuarea unor plăți neimpachetate
în tabelele de bază.
 Regula 10: Independența integrității - Constrângerile de integritate specifice unei
anumite baze de date relaționale trebuie definite în sublimbajele de date relaționale și
pot fi stocate în catalog, nu în programele de aplicații.
 Regula 11: Independența distribuției - Utilizatorul final nu trebuie să poată vedea că
datele sunt distribuite în diferite locații. Utilizatorii trebuie să aibă întotdeauna
impresia că datele sunt localizate numai la un singur loc.
 Regula 12: Regula de neconversie - Dacă un sistem relațional are un nivel scăzut de
limbaj (o singură înregistrare-la-un interval de timp), acest nivel scăzut nu poate fi
folosit pentru a submina sau de a ocoli regulile de integritate și de constrângeri
exprimate în limbajul relațional de nivel superior (înregistrări multiple în timp).

Modele arhitecturale: mainframe, integrate, file-server, client-server, distribuite


În sistemele de gestiune a bazelor de date folosite astăzi se întâlnesc două
concepte ce definesc modul de acces al clienţilor la o bază de date centralizată. Primul
este conceptul „file-server” în care serverul lucrează numai cu fişierele de date, fiind
impropriu ca aplicaţia să ceară un transfer de date. Cel de-al doilea concept este modelul
„client-server”, în care serverul „înţelege” natura datelor cerute, fiind pregătit să execute
astfel de cereri.
Soluţia oferită de modelul „file-server” implică utilizarea unui server de fişiere
centralizat aflat undeva pe o reţea, care pune la dispoziţia clientului unităţi de disc logic
cu fişiere partajate. Serverul de fişiere nu are cunoştinţe despre cererile logice care se
prelucrează, dar acţionează sub forma unui disc ce poate fi accesat prin intermediul unei
reţele pentru a transfera date de la/spre client. Toate aplicaţiile rulează la client. Exemple
de astfel de produse sunt FoxPro, dBase, MS Access. O bază de date de acest tip are o
fiabilitate foarte scăzută deoarece ea se păstrează sub forma unui fişier într-un sistem de
fişiere, fiind uşor de distrus dacă se produce o eroare în timpul unei prelucrări sau a unei
pierderi de conexiune în timpul efectuării unei tranzacţii.

Exemple de titluri bibliografice pentru baze de date (după V. Popa)

1. Moraru, S., Perniu, L. – Web-applications on databases in electrical domain, Ed. Lux Libris, 2004.
2. Connolly, T., Begg, C., Strachan, A. – Baze de date, Ed. Teora, 2000.
3. Connolly, T., Begg, C., Strachan, A. – Database Systems – A Practical Approach to Design,
Implementation and Management, Addison Wesley Longman Limited 1995, 1998
4. Florescu, V. and co. – Databases. Practical and Teoretical Approach, Infomega, 2001
5. Velicanu, M., Lungu, I., Bodea C., Ioniţă, C., Bădescu G. – Database Management Systems, Editura
Petrion, 2000
6. Popescu, I. – Database Design, Editura Tehnică, 2001
7. Sabău G., Avram V. – Computer Systems and Databases, Editura Oscar Print
8. Henderson, K. – The Guru‘s Guide to Transact-SQL, Addison Wesley, 2000
346 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

9. Waymire, R., Sawtell, R. – Sams Teach Zourself Microsoft SQL Server 2000 in 21 Days, Sams
Publishing, 2001
10. Henderson, K. – The Guru‘s Guide to SQL Server Stored Procedures, XML, and HTML Addison
Weslwey, 2002
11. Reingruber, M. C., Gregory W. – The Data Modeling Handbook, John Wiley & Sons, 1994.
12. Martin J. – An end users guide to Data Base, Prentice Hall, 1981
13. Carter J. – The relational database, Chapman & Hall, 1995
14. Fleming, von Halle, – The Handbook of RelationalDatabase Design, Addison-Wesley.
15. Chen, P. P. – The entity-relationship model: toward a unified view of data, ACM Trans. on Database
Systems, 1976.
16. Batini, C., S. Ceri, S. B. Navathe, C. Batini – Conceptual Database Design: an Entity/Relationship
Approach, Addison-Wesley, Reading MA, 1991.
17. R. Jennings, P. Hipson – Database Developer's Guide with Visual C++ 4, Second Edition, Sams
Publishing, 1996
18. Date, C.J. – An Introduction to Database Systems (5th ed.). CA: Addison-Wesley, 1991.
19. Date, C.J. – An Introduction to Database Systems (7th ed.). CA: Addison-Wesley, 2000.
20. Elmasri, R., Navathe, S.B. – Fundamentals of Database Systems (3rd ed.). CA: Addison-Wesley, 2000.
21. Johnson, J.L. – Database: Model, Languages, Design. NY: Oxford University Press, 1997.
22. Robson, W. – Strategic Management & Information Systems (2nd ed). Pitman, 1997.
23. Avery, B. – The Relational Model, Kingston University, [PDF document] URL
http://www.kingston.ac.uk/~ku12492/MBIT/model.pdf.
24. Brown, C.E. – The Relational Model, Database learning module,
http://www2.bus.orst.edu/faculty/brownc/lectures/db_tutor/relational_model.htm#3.1%20Rela-
tional%20Data%20Model%20Concepts.
25. Bull, M. – Codd’s Rules for RDBMS, MB-online publication. West Yorkshire, 2002, URL
http://hometown.aol.com/mbaddenda/art120.html.
26. Parkhurst, T. – Codd’s 12 rules. DATA MANAGEMENT STRATEGIES,
http://www.itworld.com/nl/db_mgr/09022002/pf_index.html, 2002, Feb. 9.
27. Rennhackkamp, M. – Relational Integrity Control, DBMS online Server side.
http://www.dbmsmag.com/9606d17.html, 1996 June.
28. Webopedia, – Referential Integrity, http://www.webopedia.com/TERM/r/referential_integrity.html.
29. Codd, E. – "Is Your DBMS Really Relational?" and "Does Your DBMS Run By the Rules?"
ComputerWorld, October 14 and October 21, 1985.
30. Hernandez J. M. – Database Design for Mere Mortals, Addison Wesley, 1996
31. Davies, C.T., – Recovery Semantics for a DB/DC System, In Proc. ACM Annual Conference, 1973.
32. Eswaran, K.P., Gray, J.N., Lorie, R.A., Traiger, I.L. – The Notions of Consistency and Predicate Locks
in a Database System, CACM 19,11, 1976
33. Scheuerl, S, J.G. – Modelling Recovery in Database Systems, School of Mathematical and
Computational Sciences University of St Andrews, 1997
34. Yovits, M. C. – Advances in Computers, Vol. 38. (Ed.), Academic Press, 1994.
35. Hernandez, M. J. – Database design for mere mortals : a hands-on guide to relational database design,
2nd ed., Addison Wesley, 2003.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 347

Sisteme de Baze de Date şi Sisteme de Gestiune a Bazelor de Date

Dr. Angela Ioniță,


Institutul de Cercetări pentru Inteligență Artificială „Mihai Drăgănescu” (ICIA)

Scurt istoric şi evoluţie


Până la un punct, istoria informaticii se confundă cu istoria sistemelor de baze de
date şi a sistemelor de gestiune a bazelor de date (tabelul 1) pentru că universul datelor
se schimbă în mod constant și evoluează în fiecare secundă , ceea ce a creat o dimensiune
complet nouă a progresului ȋn întreaga lume.
Originile Bazelor de date (BD) au fost evidenţiate încă de la primele programe
care au fost scrise. Aceste prime programe s-au concentrat aproape exclusiv pe algoritmi
și limbaje de codificare. În acest timp, datele au fost pur și simplu considerate ca un
produs secundar al funcției sau prelucrării. Datele erau în principiu o idee ulterioară. În
plus, volumul de intrare și de ieșire a fost scăzut și s-a pus un accent mai mare pe
algoritmi. Dar ȋn scurt timp practicienii au înțeles mai bine valoarea datelor. Atunci când
au fost aplicate limbaje de programare, obținerea de date în și din programe a fost
esențială pentru procesare.
De fapt, prelucrarea datelor precede computerele. În Statele Unite au fost folosite
cartele perforate pentru colectarea de date pentru recensământ la începutul secolului al
XX-lea. Cea mai rapidă prelucrare a datelor a fost efectuată prin cartele perforate pe
dispozitive mecanice. Dezvoltarea reală a vitezei de procesare a datelor, stocarea datelor
și dezvoltarea aplicațiilor bazelor de date au început mult mai târziu, și anume din anii 1950.
S-au folosit benzi magnetice pentru stocarea datelor și citirea lor. Aceste aplicații
de bază de date foloseau structură ierarhică și sisteme rețea şi au fost extrem de eficiente
atunci când au fost utilizate cu pentru a raspunde unei singure chestiuni.
Mai târziu, în anii '60, au apărut discuri hard și recuperarea datelor a fost mai
rapidă. Această perioadă a fost, de asemenea, remarcabilă în ceea ce privește progresul în
sistemele de baze de date. Începutul a fost făcut cu modelul de baze de date de tip ierarhic
şi reţea dezvoltat de Charles W.Bachman (Bachman, 1962; 1965; 1969a; 1969b).
Apoi, în 1970, Codd, care a lucrat la Laboratorul de Cercetare San Jose al IBM
în 1973, a introdus modelul revoluționar de baze de date relaționale (Codd, 1970). Codd a
abordat direct problemele identificate odată cu paradigma navigației: orice utilizator
trebuie să navigheze într-un univers carcaterizat de o cantitate semnificativă şi de
complexitate pentru a obține datele pe care le căuta. Modelul său a fost o revoluție
conceptuală: mai degrabă decât conceperea datelor ca un mijloc simplu de organizare,
baza de date putea fi acum utilizată ca un instrument pentru interogarea datelor pentru a
găsi relații ascunse în interior. Bazele de date relaționale au separat datele de aplicațiile
care accesează aceste date, permițând manipularea informațiilor prin utilizarea unui
limbaj de interogare, prin care selectarea datelor specifice putea fi efectuată eficient prin
construirea de instrucțiuni care conțin operatori logici.
Codd a fost cel care a marcat începutul abstractizărilor de date. Sistemul R, bazat
pe conceptul lui Codd, a fost dezvoltat de IBM și a fost primul care a avut un limbaj
pentru interogare numit SQL sau Language Structured Query. Mai târziu, sistemul R a
fost dezvoltat în continuare ca SGBD comercial cunoscut sub numele de DB2.
348 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

În anul 1976, Peter Chen introduce modelul Entitate – Relaţie (Chen, 1976)
utilizat şi astăzi ȋn proiectarea bazelor de date.
Programarea orientată pe obiecte a fost dezvoltată rapid în anii `80 și a contribuit
la ceea ce este cunoscut ca baze de date orientate pe obiecte. Ideea era de a trata datele ca
obiecte ușurând conceptualizarea și programarea.

Figura 1. Evoluţia Sistemelor de Gestiune de Baze de Date

Anii `90 sunt cunoscuţi ca perioada World Wide Web. XML sau eXtended
Markup Language este un standard pentru schimb de date între diferite baze de date și
pagini Web.
Mai recent, s-a remarcat o tendință către NoSQL şi Open Source. Termenul
NoSQL a apărut în 2009, când a fost folosit pentru a descrie apariția unor noi baze de date
care nu văd datele în tabele. Aceasta înseamnă baze de date non-relaționale.
NoSQL sunt diferite de așa-numitele baze de date clasice și nu se bazează pe
modelul relațional pentru structura lor (Figura 2). Acestea diferă foarte mult şi ȋntre ele.
Există mai mult de 100 de baze de date NoSQL clasificate pe baza modelului de date pe
care ȋl suportă, de exemplu: document stores, key-value stores, wide column/column
family stores; graph databases.
În viitor, nu este de aşteptat ca bazele de date NoSQL să eclipseze bazele de date
relaționale. O bază de date NoSQL care se potrivește perfect unei aplicații în timp real
poate să nu funcționeze la fel de bine și pentru statisticile tradiționale. Deci, atât bazele de
date relaționale cât și cele NoSQL au roluri valoroase în analiza datelor. Alegerea corectă
a bazei de date NoSQL permite de exemplu aplicației de analiză Big Data să furnizeze
rapid și eficient rezultate de analiză. O alegere greșită sau o implementare
necorespunzătoare pot compromite activitatea.
Aşa cum se vede ȋn Figura 3, ȋn decembrie 2018 preferinţele utilizatorilor şi
dezvoltatorilor se ȋndreaptă ȋncă spre Sistemele de Gestiune de Baze de Date Relaţionale
(7 din 10 poziţii fiind ocupate ȋn top de acestea), iar dintre cele 138 de SGBD Relaţionale
analizate pe primele 10 poziţii (Figura 4) se situează ȋn ordine: Oracle, MySQL, Microsoft
SQL Server, PostgreSQL, IBM Db2, Microsoft Access, SQLite, Teradata, MariaDB, Hive.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 349

Figura 2. Tipuri de NoSQL Databases

Closed Source se referă la software-ul al cărui cod sursă este păstrat secret pentru
a împiedica copierea. Open source este opusul: este software-ul al cărui cod sursă este
deschis și disponibil pentru studiu, modificare și chiar redistribuire. Software-ul open
source este adesea liber de descărcat și utilizat.
Bazele de date open source sunt sisteme de bază de date al căror cod sursă este
open source. O bază de date open source ar putea fi relațională (SQL) sau non-relațională
(NoSQL). În prezent, există două direcții pe piața de baze de date: cererea de noi aplicații
și necesitatea de a reduce costurile. Necesitatea de reducere a costurilor nu pare să fie
ceva nou, însă cererea de aplicații noi determină necesitatea de a reduce costurile (acestea
costă bani să se dezvolte).

Figura 3. Primele 10 locuri ȋn clasamentul celor 341 sisteme, ȋn decembrie 2018


(sursa: https://db-engines.com/en/ranking)
350 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Figura 4. Primele 10 locuri ȋn clasamentul celor 138 Sisteme de Gestiune de Baze de Date Relaţionale, ȋn
decembrie 2018 (sursa: https://db-engines.com/en/ranking)

Deci, de ce sunt necesare noi aplicații? Odată cu apariția tehnologiei Web 2.0,
paginile web statice au devenit dinamice și social media este pretutindeni în jurul nostru.
Toată lumea face tweeting, postare, blogging, vlogging, împărtășește fotografii, face chat
și comentează.
Internetul obiectelor (IoT) este în plină dezvoltare - o rețea de dispozitive
conectate care colectează și schimbă date, cum ar fi senzori și dispozitive inteligente.
Există câteva exemple minunate aici. Per total, acest lucru generează cantități uriașe de
date noi pe care întreprinderile doresc să le absoarbă și să le utilizeze pentru a rămâne în
continuare în aceleaşi poziţii, pentru a oferi caracteristici precum recomandările
produselor și o experiență mai bună a clienților. Datele pot fi analizate în căutare de
modele pentru aplicații cum ar fi detectarea fraudei și analiza comportamentului.
O mare parte dintre datele noi este nestructurată, ceea ce înseamnă că acestea nu
pot fi stocate cu ușurință într-o bază de date tabelară. Sunt necesare noi tipuri de baze de
date pentru stocarea noilor date și trebuie să fie non-relaționale și, în mod ideal, cu costuri
reduse. Pe scurt: nu relațional ca în NoSQL și cost redus ca în open source.
Toate companiile caută bani în bugetele lor dedicate IT și descoperă cât de mult
se cheltuie pentru susținerea și întreținerea sistemelor tradiționale de baze de date
relaționale. Estimările variază, dar unii spun că reprezintă până la 35% din cheltuielile
pentru infrastructura software. Trecerea la software-ul open source cu costuri reduse
economisește bani, motiv pentru care aproximativ 78% dintre întreprinderi utilizează
inclusiv baze de date open source, printre care se numără:
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 351

MySQL  este cea mai populară bază de date relațională open source din
lume;
 a fost achiziționată de Oracle în 2010, iar Oracle a plătit pentru
support;
 ediția gratuită este încă disponibilă;
MariaDB  este un înlocuitor pentru MySQL;
 nesiguri cu privire la viitorul MySQL cu Oracle, mulți
utilizatori au migrat la MariaDB;
 abonamentele de asistență sunt disponibile de la Mariadb.com.
PostgreSQL  are o reputație puternică pentru fiabilitatea și integritatea
datelor;
 este bogat în caracteristici și este mai robust și mai performant
decât MySQL;
 există o ediție gratuită.
PostgresPURE  este disponibil pe bază de abonament;
de la Splendid Data  este construit pe PostgresSQL, dar cu instrumente și suport
suplimentare pentru a face un pachet de întreprindere.
EnterpriseDB (EDB)  se bazează pe PostgreSQL, dar cu caracteristici și instrumente
suplimentare, în special funcțiile de compatibilitate Oracle (care
sunt surse închise), permițând Oracle shops să treacă mai ușor
la EDB decât la alte variante PostgreSQL.

Figura 5. Primele 5 locuri ȋn clasamentul celor 173 de


Sisteme Open Source, ȋn decembrie 2018 (sursa: https://db-engines.com/en/ranking)

Toate bazele de date open source sunt disponibile pentru a rula pe x86. Dar ce
este disponibil pentru companiile care au investit deja sau doresc să investească în IBM
Power Systems, MongoDB, EnterpriseDB, Redis, Cassandra, Neo4j și MariaDB sunt
toate disponibile pe IBM Power și toate sunt mai performante comparativ cu un sistem
x86 configurat în mod similar. De fapt, IBM garantează 2x preț-performanță peste x86
pentru MongoDB și 1,8x pentru EnterpriseDB, ceea ce înseamnă că clienții care aleg
IBM Power se pot aștepta la o performanță mai bună și la o extindere mai redusă a
serverului.
Bazele de date Open source nu sunt cu adevărat gratuite, deoarece companiile
aleg, de obicei, ediții de abonament cu suport. În plus, afacerilor nu le pasă dacă sunt
open source sau nu. Foarte puțini oameni doresc cu adevărat să se ocupe cu codul sursă.
Dar bazele de date open source de tip NoSQL permit inovarea cu date noi, iar bazele de
date relaționale cu surse deschise sunt cu costuri mai mici comparativ cu sistemele
tradiționale de gestionare a bazelor de date relaționale.
352 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Bază de date, sisteme de baze de date, sisteme de gestiune de baze de date.


Definiţii şi caracteristici

O bază de date este o colecție organizată de date, în general stocată și accesată


electronic dintr-un sistem informatic. În cazul în care bazele de date sunt mai complexe,
ele sunt deseori dezvoltate folosind tehnici formale de proiectare și modelare.
Un sistem de baze de date este o definiție de nivel înalt a structurii și relației
dintre datele stocate, o bază de date sau baze de date, utilizatorii și hardware-ul sau
sistemul de operare utilizat pentru stocare.
Un sistem de baze de date are ca scop realizarea unei colecții de date bine
organizată, împreună cu instrumente și aplicații adecvate care facilitează procesarea și
accesul la aceste date. Majoritatea oamenilor confundă un sistem de baze de date cu un
sistem de gestionare a bazelor de date (SGBD), dar cele două sunt diferite.
Un SGBD este o suită de instrumente software utilizate pentru stocarea și
manipularea datelor. Sistemele de gestionare a bazelor de date se găsesc sunt de diferite
tipuri: sisteme de stocare a documentelor, sisteme de stocare de fișiere și de gestionarea
bazelor de date relaționale, ierahice, orientate obiect etc.
O primă clasificare a bazelor de date a fost ȋn baze de date centralizate şi baze de
date distribuite.
Baza de date centralizată este o bază de date în care datele sunt stocate și
întreținute într-o singură locație. Aceasta era abordarea tradițională pentru stocarea
datelor în întreprinderile mari.
Baza de date distribuită este o bază de date în care datele sunt stocate pe
dispozitive de stocare care nu sunt localizate în aceeași locație fizică, dar baza de date
este controlată utilizând un sistem central de gestionare a bazelor de date (SGBD
centralizat).
Într-o bază de date centralizată, toate datele unei organizații sunt stocate într-un
singur loc, cum ar fi un computer mainframe sau un server. Utilizatorii aflaţi ȋn locații la
distanță accesează datele prin intermediul unei rețele (Wide Area Network = WAN)
utilizând programele de aplicații furnizate pentru a accesa datele. Baza de date centralizată
(mainframe-ul sau server-ul) ar trebui să fie capabilă să satisfacă toate cererile venite în
sistem, putând deveni cu ușurință un obstacol. Dar, deoarece toate datele se află într-un
singur loc, este mai ușor să se mențină și să se facă copii de rezervă ale datelor. În plus,
este mai ușor să se mențină integritatea datelor deoarece, odată ce datele sunt stocate
într-o bază de date centralizată, datele depășite nu mai sunt disponibile în alte locuri.
Într-o bază de date distribuită, datele sunt stocate pe dispozitive de stocare situate
în diferite locații fizice. Ele nu sunt atașate la o unitate centrală de procesare (Central
Processing Unit = CPU3) comună, dar baza de date este controlată de un SGBD central.
Utilizatorii accesează datele dintr-o bază de date distribuită accesând WAN. Pentru a
menține o bază de date distribuită la zi, sunt utilizate procesele de replicare și duplicare.
3
O unitate centrală de procesare (CPU) este circuitul electronic din cadrul unui computer care execută
instrucțiunile unui program de calculator prin efectuarea operațiilor de bază aritmetică, logică, control și
intrare/ieșire (I/O) specificate de instrucțiuni. Industria de calculatoare a folosit termenul de „unitate de
procesare centrală” cel puțin de la începutul anilor 1960. În mod tradițional, termenul „CPU” se referă la un
procesor, mai precis la unitatea de procesare și unitatea de control (CU), făcând distincție între aceste
elemente de bază ale unui calculator și componente externe, cum ar fi memoria principală și circuitele de
intrare/ieșire.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 353

Procesul de replicare identifică modificările din baza de date distribuită și aplică aceste
modificări pentru a asigura că toate bazele de date distribuite arată la fel. În funcție de
numărul de baze de date distribuite, acest proces ar putea deveni foarte complex și
consumator de timp. Procesul de duplicare identifică o bază de date ca o bază de date
principală și duplică acea bază de date. Acest proces nu este la fel de complicat ca
procesul de replicare, dar asigură faptul că toate bazele de date distribuite au aceleași date.
În timp ce o bază de date centralizată își păstrează datele în dispozitive de stocare
care sunt într-o singură locație conectată la un singur CPU, un sistem de baze de date
distribuite păstrează datele sale în dispozitivele de stocare situate eventual în diferite
locații geografice și gestionate folosind un SGBD central. O bază de date centralizată este
mai ușor de întreținut și de actualizat, deoarece toate datele sunt stocate într-o singură
locație. În plus, este mai ușor să se mențină integritatea datelor și să se evite necesitatea
dublării lor. Toate cererile care vin pentru a accesa datele sunt prelucrate de o singură
entitate, cum ar fi un singur mainframe, și, prin urmare, ar putea deveni cu ușurință un
obstacol. Dar, cu baze de date distribuite, aceste blocaje pot fi evitate deoarece bazele de
date sunt paralelizate, ceea ce face ca încărcarea să fie echilibrată între mai multe servere.
Păstrarea datelor la zi în sistemul de baze de date distribuite necesită o muncă
suplimentară, prin urmare crește costul de întreținere și complexitate și necesită, de
asemenea, software suplimentar în acest scop. În plus, proiectarea bazelor de date pentru
o bază de date distribuită este complexă faţă de cea pentru o bază de date centralizată.
Altfel spus, o bază de date distribuită este o bază de date care constă din două sau
mai multe fișiere localizate în diferite site-uri, fie în aceeași rețea, fie pe rețele complet
diferite. Porțiunile din baza de date sunt stocate în mai multe locații fizice, iar procesarea
este distribuită între mai multe noduri de baze de date. Un sistem centralizat de gestionare
a bazelor de date distribuite (SGBDD) integrează datele logic, astfel încât acestea pot fi
gestionate ca și cum ar fi fost stocate în aceeași locație. SGBDD sincronizează periodic
toate datele și asigură faptul că actualizările și ștergerile de date efectuate într-o singură
locație vor fi reflectate automat în datele stocate în altă parte. În schimb, o bază de date
centralizată constă într-un singur fișier de bază de date localizat la un singur site utilizând
o singură rețea.
Bazele de date distribuite pot fi omogene sau eterogene. Într-un sistem de baze de
date distribuite omogene, toate locațiile fizice au același hardware de bază și rulează pe
acelaşi sistem de operare, aceleași aplicații. Sistemele de baze de date distribuite
omogene apar la utilizator ca un singur sistem și pot fi mult mai ușor de proiectat și
gestionat. Pentru ca un sistem baze de date distribuite să fie omogen, structurile de date
din fiecare locație trebuie să fie identice sau compatibile. Aplicația de bază de date
utilizată la fiecare locație trebuie să fie, de asemenea, identică sau compatibilă.
Într-o bază de date distribuită eterogenă, sistemele hardware, sistemele de operare
sau aplicațiile bazei de date pot fi diferite în fiecare locație. Site-urile diferite pot utiliza
scheme și programe diferite, deși o diferență în schemă poate face ca interogarea și
procesarea tranzacțiilor să fie dificile. Diferitele noduri pot avea diferite structuri
hardware, software și de date, sau pot fi în locații care nu sunt compatibile. Utilizatorii
dintr-o locație pot citi datele în altă locație, dar nu le pot încărca sau modifica. Bazele de
date distribuite eterogene sunt adesea dificil de utilizat ceea ce le nefezabile din punct de
vedere economic pentru multe companii.
354 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Când într-o colecție, bazele de date distribuite sunt interconectate logic una cu
cealaltă, ele reprezintă o singură bază de date logică. Cu bazele de date distribuite, datele
sunt stocate fizic pe mai multe site-uri și gestionate independent. Procesoarele de pe
fiecare site sunt conectate printr-o rețea și nu au o configurație de multiprocesare.
O neȋnţelegere care apare destul de des constă ȋn faptul că o bază de date
distribuită este un sistem de fișiere slab conectat. În realitate, este mult mai complicat.
Bazele de date distribuite includ procesarea tranzacțiilor, dar nu sunt sinonime cu
sistemele de procesare a tranzacțiilor. În general, bazele de date distribuite includ
următoarele caracteristici:
 independenţa locației;
 prelucrarea distribuită a interogărilor;
 managementul distribuit al tranzacțiilor;
 independenţa hardware;
 independenţa sistemului de operare;
 independenţa rețelei;
 transparența tranzacțiilor;
 SGBD independent.
Există multe avantaje în utilizarea bazelor de date distribuite. Bazele de date
distribuite sunt capabile de o dezvoltare modulară, ceea ce înseamnă că sistemele pot fi
extinse prin adăugarea de noi computere și date locale la noul site și conectarea acestora
la sistemul distribuit fără întrerupere. Atunci când au loc defecțiuni în bazele de date
centralizate, sistemul se oprește complet. În sistemele de baze de date distribuite atunci
când o componentă eșuează, sistemul va continua să funcționeze la o performanță redusă
până când eroarea va fi corectată. Administratorii pot realiza costuri mai mici de
comunicare pentru sistemele de baze de date distribuite, în cazul în care datele sunt
situate aproape de locul în care sunt utilizate cel mai mult. Acest lucru nu este posibil în
sistemele centralizate.
Datele replicate sunt folosite pentru a crea instanțieri de date în diferite părți ale
bazei de date. Prin utilizarea datelor replicate, bazele de date distribuite pot accesa date
identice la nivel local, evitând astfel traficul. Datele replicate pot fi împărțite în două
categorii: date read-only și date writable. Versiunile de date replicate read-only permit
revizuiri numai la prima instanțiere; ulterior replicarea datelor despre întreprinderi este
ajustată. Datele writable pot fi alterate, dar prima instanțiere este imediat modificată.
Replicarea bazei de date asigură faptul că datele din bazele de date distribuite
rămân actualizate. Datele fragmentate orizontal implică utilizarea cheilor primare care se
referă la o înregistrare din baza de date. Fragmentarea orizontală este, de obicei, rezervată
pentru situațiile în care locațiile trebuie doar să acceseze baza de date referitoare la
sucursala lor specifică. Datele fragmentate vertical implică utilizarea de copii ale cheilor
primare care sunt disponibile în fiecare secțiune a bazei de date și sunt accesibile fiecărei
sucursale. Datele fragmentate vertical sunt utilizate atunci când sucursala unei companii
și locația centrală interacționează cu aceleași conturi în moduri diferite.
Datele reorganizate sunt date care au fost ajustate sau modificate pentru bazele de
date care sunt suport pentru decizie. Datele reorganizate sunt utilizate în mod obișnuit
atunci când două sisteme diferite tratează operațiunile și suportul decizional. Sistemele
suport pentru decizii pot fi dificil de întreținut, iar prelucrarea tranzacțiilor online necesită
reconfigurare atunci când sunt lansate multe cereri. Schemele de date separate partajează
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 355

bazele de date și software-ul folosit pentru a le accesa pentru a se potrivi diferitelor


departamente și situații. Există, de obicei, o suprapunere între diferite baze de date în
cadrul schemelor de date separate.
Există multe baze de date distribuite printre care se numără, de exemplu: Apache
Ignite, Apache Cassandra, Apache HBase, Couchbase Server, Amazon SimpleDB,
Clusterpoint și FoundationDB.

Ce a fost atât de important cu Sistemele de Gestiune de Baze de Date?

De ce au avut un impact major asupra creșterii industriei produselor software și,


mai important, asupra modului în care aproape toate aplicațiile comerciale majore au fost
construite începând cu anii '70? Este o poveste complexă.
Sistemele de gestionare a bazelor de date (SGBD) (Data Base Management
Systems = DBMS) sunt conexiuni esențiale și importante în crearea și gestionarea datelor.
Ele sunt necesare pentru funcționarea și gestionarea eficientă a datelor. De asemenea,
ajută companiile să transfere datele spre analiză şi ca suport pentru luarea deciziilor.
Un sistem de gestionare a bazelor de date (SGBD) este un software de sistem
pentru crearea și gestionarea bazelor de date. SGBD furnizează utilizatorilor și
programatorilor o modalitate sistematică de a crea, regăsi, actualiza și gestiona datele.
Un SGBD permite utilizatorilor finali să creeze, să citească, să actualizeze și să șteargă
datele într-o bază de date. SGBD funcționează, în esență, ca o interfață între baza de date
și utilizatorii finali sau programele de aplicații, asigurându-se că datele sunt organizate în
mod constant și rămân ușor accesibile. SGBD gestionează trei aspecte importante: datele,
motorul bazei de date care permite accesul, blocarea și modificarea datelor și schema
bazei de date, care definește structura logică a bazei de date. Aceste trei elemente
fundamentale ajută la asigurarea concurenței, securității, integrității datelor și
procedurilor uniforme de administrare. Operațiile tipice de administrare a bazelor de date
suportate de SGBD includ managementul schimbării, monitorizarea/reglarea performanțelor,
backup și recuperare. Multe sisteme de gestionare a bazelor de date sunt dotate cu
facilităţi automate de rollback, restartare precum și activităţi de logare și auditare.
SGBD este foarte util pentru furnizarea unui punct de vedere (view) centralizat
asupra datelor care pot fi accesate de mai mulți utilizatori, din mai multe locații, în mod
controlat. Un SGBD poate limita datele pe care le vede utilizatorul final, precum și modul
în care acesta le poate vizualiza, oferind numeroase puncte de vedere asupra unei singure
scheme de bază de date. Utilizatorii finali și programele software nu trebuie să înțeleagă
unde sunt localizate fizic datele sau pe ce tip de suport de stocare se află, deoarece SGBD
se ocupă de toate solicitările. SGBD poate oferi atât independență logică, cât și fizică.
Aceasta înseamnă că poate proteja utilizatorii și aplicațiile de necesitatea de a ști unde
sunt stocate datele sau de a fi preocupați de modificările structurii fizice a datelor (stocare
și hardware). Atâta timp cât programele utilizează o interfața de programare a aplicațiilor
(API) furnizată de SGBD, dezvoltatorii nu vor trebui să modifice programele doar pentru
că au fost făcute schimbări în baza de date.
Utilizarea unui SGBD centralizat vine cu avantaje, dar și cu cheltuieli generale.
Unul dintre cele mai mari avantaje ale utilizării unui SGBD centralizat este că permite
utilizatorilor finali și programatorilor de aplicații să acceseze și să utilizeze aceleași date
în timp ce gestionează integritatea datelor. Datele sunt mai bine protejate și menținute
356 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

atunci când pot fi partajate prin intermediul unui SGBD, în loc să se construiască noi
iterații ale acelorași date stocate în fișiere noi pentru fiecare nouă aplicație. SGBD
centralizat furnizează un depozit central de date care poate fi accesat de mai mulți
utilizatori în mod controlat.
Stocarea centralizată și gestionarea datelor în cadrul unui SGBD oferă:
 abstractizarea și independența datelor;
 securitatea datelor;
 un mecanism de blocare pentru accesul concomitent;
 un handler eficient pentru a echilibra cererile mai multor aplicații care
utilizează aceleași date;
 abilitatea de recuperare rapidă în caz de accidente și erori, inclusiv restabilirea
și recuperarea;
 capacități robuste de integritate a datelor;
 activități de logare și audit;
 acces simplu prin utilizarea unei interfețe standard de programare a aplicațiilor
(API);
 proceduri uniforme de administrare a datelor.

Un alt avantaj al unui SGBD este că poate fi folosit pentru a impune o organizare
logică, structurată a datelor. Un SGBD oferă facilităţi eficiente pentru procesarea unor
cantități mari de date, deoarece este optimizat pentru astfel de operațiuni.
Un SGBD poate oferi mai multe vederi/viziuni (views) asupra unei scheme de
baze de date unice. O viziune definește ce date vede utilizatorul și modul în care aceste
date pot fi văzute. SGBD oferă un nivel de abstractizare între schema conceptuală, care
definește structura logică a bazei de date, și schema fizică, care descrie fișierele,
indexurile și alte mecanisme fizice utilizate de baza de date. Atunci când se utilizează un
SGBD, sistemele pot fi modificate mult mai ușor în cazul în care cerințele se schimbă.
Pot fi adăugate noi categorii de date în baza de date fără a perturba sistemul existent, iar
aplicațiile pot fi izolate de modul în care sunt structurate și stocate datele. Desigur, un
SGBD trebuie să efectueze o muncă suplimentară pentru a oferi aceste avantaje, atrăgând
astfel cheltuielile suplimentare. Un SGBD va folosi mai multă memorie și CPU decât un
sistem simplu de stocare a fișierelor. Și, desigur, diferite tipuri de SGBD-uri vor necesita
tipuri și niveluri diferite de resurse ale sistemului.
Sistemele de gestionare a bazelor de date au jucat un rol proeminent în istoria
dezvoltării de software și în crearea și dezvoltarea industriei de produse software.
Într-un anumit sens, aceste sisteme SGBD, împreună cu sistemele lor de
comunicații de date (sau procesarea tranzacțiilor), au permis utilizatorilor din toate
industriile să construiască atât aplicații on-line, cât și aplicații batch într-un mod mult mai
rapid și mai rentabil. Aceste sisteme de baze de date și de comunicații de date au devenit
fundamentul pentru construirea multora dintre cele mai importante aplicații de bază din
fiecare industrie și agenție guvernamentală și au devenit motoarele care au dirijat
vânzarea de computere mainframe în anii 1970 și după aceea.
Următoarea listă furnizează doar câteva dintre motivele pentru care analiștii și
istoricii din industrie consideră că produsele software SGBD sunt atât de importante din
punct de vedere tehnologic și economic:
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 357

 au oferit o modalitate eficientă de a programa aplicații complexe fără costul


rescrierii funcțiilor de acces și de recuperare a datelor pentru fiecare aplicație;
 au oferit un mod simplu și eficient de a partaja date între mai multe aplicații și
mai mulți utilizatori;
 au condus la crearea unor limbaje specializate pentru utilizatori;
 au furnizat interfețe standard pentru programele de comunicații de date, astfel
încât aplicațiile de procesare a tranzacțiilor online să poată fi construite, testate
și întreținute eficient (atât în ceea ce priveşte timpul, cât și în ceea ce priveşte
costurile);
 au permis gestionarea bazelor de date pe diferite dispozitive cu acces aleatoriu
și secvențial fără ca programatorul de aplicații să fie preocupat de diferențe;
 au oferit portabilitate; în multe cazuri, s-a permis clienților să își transfere
aplicațiile de la platforma unui producător la altul sau de la un sistem de
operare la altul, cu o oarecare ușurință;
 firmele care au comercializat aceste produse au devenit cele mai mari
companii independente de produse software și au fost cele care ocupau
primele locuri ȋn topurile de la sfârșitul anilor 1970 și începutul anilor 1980;
 au dus la vânzarea unei cantităţi imense de componente hardware pentru
mulți producători de mainframe, mulți producători de minicomputere, precum
și pentru companiile independente de stocare.
Toate acestea se referă doar la câteva aspecte care ar trebui să fie considerate ca
parte vitală a istoriei sistemelor de baze de date şi a sistemelor de gestiune de baze de
date.
Prin înregistrarea corectă a datelor, actualizarea și urmărirea acestora în mod
eficient și regulat, companiile pot, pe de o parte, să facă față provocărilor și, pe de altă
parte, să facă uz de potențialul imens oferit de acest sector. Prin colectarea minuțioasă de
date și actualizarea lor, companiile utilizează informațiile pentru a-și atinge obiectivele
într-un mod sistematic, pe de o parte, și pentru a-și consolida afacerea într-o manieră
strategică, pe de altă parte.

Tabelul 1. Evoluţia ȋn timp a sistemelor de baze de date şi a SGBD-urilor


(adaptare după https://s2.smu.edu/~fmoore/timeline.pdf)

Perioada Eveniment Efect


Ȋnainte de anii `60
1945 Au apărut benzile magnetice S-au ȋnlocuit cartelele şi benzile perforate
1957 S-a instalat primul calculator
1959 IBM introduce sistemul Ramac Datele se citesc nesecvenţial şi devine
fezabil accesul la fişiere
Anii `60
1961 - Primul SGBD proiectat de S-au pus bazele modelului de date reţea la
Bachman: Integrated Data Store Confernce on Data Systems Languages
(IDS) a fost distribuit pe scara largă Database Task Group (CODASYL DBTG)
până ȋn1964.
- Bachman şi-a popularizat
diagramele de structură de date.
358 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Perioada Eveniment Efect


1965 – - Numeroase firme vând sisteme de - S-a proiectat organizarea datelor pe două
1970 management de fişiere. niveluri: conceptual şi utilizator
- IBM dezvoltă Information - S-au pus bazele modelului ierarhic de date
Management System (IMS) - Este sprijinit punctul de vedere reţea
- Primul sistem IMS DB/DC - A fost permis accesul utilizatorilor
(database/data communication) multipli la date care implică o reţea de
- A apărut SABRE, dezvoltat de comunicare
IBM şi American Airlines
Anii `70
Tehnologia bazelor de date se - Apar SGBD-uri care implementează
dezvoltă rapid parţial propunerea CODASY DBTG.
- Apare sistemul IDMS al lui B.F.
Goodrich, IDS II de la Honeywell, DMS
1100 de la UNIVAC, DMS II, DMS-170 de
la CDC, PHOLAS de la Phillips și DBMS-
11 de la Digital.
- Apar numeroase sisteme integrate DB/DC:
TOTAL de la Cincom plus ENVIRON/I.
- SGBD se dezvoltă ca o disciplină
academică şi ca un domeniu de cercetare.

1970 Apare modelul relaţional al lui Se pun fundamentele teoriei bazelor de date
Codd, cercetător la IBM
1971 Raportul CODASYL DBTG
1975 - ACM Special Interest Group on - Se constituie ca forum pentru diseminarea
Management of Data a organizat rezultatelor cercetărilor din domeniul
primul SIGMOD bazelor de date
- Very Large Data Base Foundation - Se constituie ca un alt forum pentru
a organizat prima conferinţă diseminarea rezultatelor cercetărilor din
internaţională VLDB domeniul bazelor de date

1976 Chen introduce modelul


Entitate-Relaţie (ER)
- Proiecte de cercetare din anii `70:
System R (IBM), INGRES
(Universitatea din california,
Berkeley), System 2000
(Universitatea din Texas, Austin),
Socrate Project (Universitatea din
Grenoble, Franţa), ADABAS
(Universitatea Tehnică din
Darmstadt, Germania),
-Query Languages dezvoltate ȋn anii
`70: SQUARE, SEQUEL (SQL),
QBE, QUEL
Anii `80
- SGBD-uri dezvoltate Permit utilizatorilor de PC să definească şi
pentru calculatoare să manipuleze date. Le lipseşte
personale: DBASE, suportulmultiview/multiacces şi izolare
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 359

Perioada Eveniment Efect


PARADOX, etc. ȋntre programe şi date.
1983 - Studiul Apariţia unor SGBD-uri relaţionale
ANSI/SPARC a scos comerciale: DB2, ORACLE, SYBASE,
ȋn evidenţă faptul că INFORMIX etc.
au fost implementate
mai mult de 100 de
sisteme relaţionale
1984 - A fost publicat standardul - Au fost generate programe de aplicaţie
preliminar SQL. pornind de la interfaţa de nivel ȋnalt pentru
- Comunitatea este influenţată de specialiştii care nu sunt programatori.
„Limbajele de generaţia a IV-a”. - Au fost permise aplicaţii de baze de date,
- ANSI propune Network Definition management distribuit de date şi de reţea.
Language (NDL).
- Tendinţa anilor `80:
Expert Database
Systems, Object-
Oriented DBMSS,
arhitectura client-
server pentru baze de
date distribuite

Anii `90
- Cerere pentru dezvoltarea - Apar facilităţi ale SGBD-urilor pentru date
capabilităţilor SGBD pentru a spaţiale, temporale şi multimedia,
acoperi noi aplicaţii ȋncorporând capabilităţile deductive şi
- Apariţia SGBD-urilor Orientate active
Obiect - Apariţia de standarde pentru interogări de
- Cerere pentru dezvoltarea de date şi schimb (SQL2, PDES, STEP);
aplicaţii care utilizează date extinderea capabilităţilor SGBD la sisteme
provenite din surse diferite de baze de date eterogene şi multiple; se
- Cerere de exploatare a ȋmbunătăţeşte performanţa SGBD-urilor
procesoarelor paralele (Massively comerciale.
Parallel Processors)

După anii`90
Data warehousing - Depozitul de date conține istoricul, lucru
pe care aplicațiile online nu-l agrează pentru
că-și reduc viteza. Depozitul de date este
granular, adică depozitul de date conține
date flexibile. Din cauza granularității
datelor, depozitul de date ar putea susține
cererile viitoare de informații necunoscute.
Depozitele de date au devenit efectiv o parte
standard a infrastructurii de procesare a
informațiilor.
Datele sunt pe internet. Bazele de date la
Web enabled care au fost transmise link-urile sunt variate
și diferite și au nevoie de o tehnică de
360 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Perioada Eveniment Efect


schimb de date eficientă.
De asemenea, baza de date trebuia să aibă o
disponibilitate foarte mare de lucru
24x7.XML sau eXtended Markup Language
este un standard pentru schimb de date între
diferite baze de date și pagini Web.
Acestea sunt diferite de așa-numitele baze
de date clasice și nu se bazează pe modelul
NoSQL relațional pentru structura lor. Nu se
interoghează datele utilizând limbajul
structurat de interogări, ci limbajul UnQL
sau Query Unstructured care este încă în
stadiu de dezvoltare (este similar cu
XQuery). Aceste baze de date sunt utilizate
în general atunci când se lucrează cu
cantități uriașe de date. Câteva exemple sunt
Mongo DB, CouchBase, HBase folosite de
Facebook, Big Table folosite de Google și
Dynamo DB folosite de Amazon.

În România este cunoscut faptul că Sistemele de Baze de Date şi Sistemele de


Gestiune de Baze de Date s-au dezvoltat ca o disciplină academică şi ca un domeniu de
cercetare, ȋncepând din anii `70. La nivelul instituţiilor de ȋnvăţământ superior au existat
cursuri destinate acestei discipline, iar ȋn institutele de cercetare de profil s-au derulat
programe de cercetare care s-au soldat cu implementări remarcabile printre care s-au
numărat, de exemplu, la ICI: SIGBAD (coordonator: ing. Aurora Butoi), LAMBDA
(SGBDD) (coordonator: Dr. Ec. Aurelian Cojocaru) şi ARGUS (coordonator: mat. Eugen
Maftei); la ITC:LEDA (ing. Gabriel Martin) şi IDAS (coordonator: F. Scânteie) la
Centrul de Calcul al Ministerului Transporturilor.

Referinţe bibliografice
1. Bachman,C. W.,1962. „Precedence Diagrams: The Key to Production Planning, Scheduling and
Control.” In: ProCo Features. Supplement No 24, August 24.
2. Bachman,C. W.,1965. „Integrated Data Store.” în: DPMA Quarterly, January 1965.
3. Bachman,C. W.,1969a. „Software for Random Access Processing.” în: Datamation April 1965.
4. Bachman,C. W.,1969b. „Data Structure Diagrams.” în: DataBase: A Quarterly Newsletter of
SIGBDP. vol. 1, no. 2, Summer 1969.
5. Codd, E. F., (1970). „A relational model of data for large shared data banks” (PDF).
Communications of the ACM. 13 (6): 377
6. Chen, P., 1976. „The Entity–Relationship Model – Toward A Unified View of Data”. ACM
Transactions on Database Systems. New York: Association for Computing Machinery. 1 (1): 9–36,
ISSN 0362-59
1.11 Apariția și evoluția rețelelor de calculatoare
Dr. Mihăiță Drăgan,
Facultatea de Matematică și Informatică,
Departamentul de Informatică, Universitatea din București

1. Introducere și argumente

Omenirea se află acum într-un punct critic – de cotitură, în folosirea tehnologiei


pentru a se extinde și atribui noi abilități de comunicare. Globalizarea Internetului a avut
un succes mai rapid decât și-ar fi putut imagina cineva.
Maniera în care interacțiunile personale, sociale,
comerciale și politice au loc se schimbă rapid pentru a ține
pasul cu evoluția rețelei globale. În următoarea etapă de
dezvoltare umană, inovatorii vor folosi Internetul ca un
punct de start al eforturilor lor – creare de noi produse și
servicii dezvoltate special pentru a profita de capacitățile
rețelei. Deoarece dezvoltatorii își extind limitele cât de
mult este posibil, capacitățile rețelelor interconectate care
formează Internetul vor avea un rol important în succesul
acestor proiecte.
O lume fără calculatoare sau fără Internet este greu de imaginat în prezent,
deoarece acestea au adus un impact uriaș asupra vieții moderne. Totuși, lucrurile nu au
fost întotdeauna așa simple în ceea ce privește tehnologia. Din punct de vedere istoric al
rețelelor, putem spune că apariția acestora poate fi consemnată pornind de la retorica lui
Euler din 1735 a problemei podurilor din Kønigsberg „Se poate trece peste fiecare pod
într-o plimbare?”. Orașul Königsberg din Prusia (astăzi, Kaliningrad, Rusia) se întindea
pe ambele maluri ale râului Pregel, cuprinzând și două insule mari legate una de cealaltă,
și cu diverse alte porțiune ale orașului prin șapte poduri. Problema era de a elabora un
drum prin oraș, care să traverseze fiecare dintre aceste poduri o dată și numai o dată.

Figura 1. Insulele din Kønigsberg, Prusia conectate prin intermediul a șapte poduri
362 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Referitor la această problemă, Euler a făcut următoarele afirmații:


 Graphul contează, nu proprietățile fizice ale insulei, mărimea etc.
 Presupunând că a existat o astfel de plimbare: se începe de la „nodul” u,
se termină la v. Atunci, nodurile u și v pot avea grade impare.
 Toate celelalte noduri chiar trebuie să aibă grade
 Cum rămâne cu graphul podului de la Kønigsberg?
Rețelele au fost utilizate, de asemenea, extensiv în sociologie, punând accent pe
studiile tipice care implicau circulația chestionarelor/rețelelor mici.
Timpul a făcut ca oamenii să fie martori la o schimbare substanțială în domeniul
cercetării în rețele de calculatoare, de la analiza grafurilor unice mici (10-100 noduri) la
cele ale rețelelor la scară largă (milioane de noduri), datorită disponibilității
calculatoarelor și a rețelelor de calculatoare care ne permit să colectăm și să analizăm
date la scară largă.
DEFINIȚIE. O rețea G (numită graph) este un set de noduri N={1, ..., n}
conectate între ele prin intermediul muchiilor (legăturilor). O rețea este reprezentată în
mod obișnuit prin matricea de adiacență care este o nxn matrice A = [Aij] i, j∈N, unde
Aij =
În literatura de specialitate se face referire la un graph ca la un graph direct sau
digraph dacă Aij ≠Aji și la un graph nedirecționat dacă Aij = Aji pentru toți parametrii
N.
Având la bază aceste concepte o cotribuție esențială în dezvoltarea rețelelor de
calculatoare s-au datorat și sistemelor dinamice, liniare și neliniare, precum și
convergenţei, teoremei lui Perron Frobenius, algebrei liniară și funcțiile Lyapunov, dar
mai ales lanțurilor Markov.
Astfel, s-a demostrat că un sistem liniar dinamic poate fi definit astfel:
k ≥ 0, x (k + 1) = Ax (k) + b pentru unele elemente A Rnxn și bRn.
Spre exemplu, lanțul Markov pentru conexiunea dintre două carduri ar arăta astfel

Figura 2. Lanțul Markov pentru conexunea dintre două carduri

Două posibile distribuții de carduri pot fi: (1, 2) sau (2, 1).
Fie Xk ordinea cardurilor în momentul k ≥ 0
P(Xk+1 =(1, 2)) = P(Xk =(1, 2) și cardul 1 ales)+ P(Xk =(2, 1) și cardul 1 ales) =
= P(Xk =(1, 2)) x 0.5 + P(Xk =(2, 1)) x 0.5= 0.5
Lanțul Markov definit pe spațiul de stare N = {1, ..., n}, unde Xk  N reprezintă
variabila aleatoare reprezentând starea la ti k ≥ 0.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 363

Fie

P= : probabilitatea matricei de tranziție a lanțului Markov


non-negativ:
row-stohchastic: .

2. Teoria grafurilor și tehnologia informației

Comunitatea IT folosește aceste descoperiri și propagă informațiile foarte repede.


Astfel, conceptul de rețea de graphuri devine universal valabil prin definirea unui graph G
peste N={1,..., n}, noduri, E muchii. Luând în consideare informațiile de la unul dintre
noduri și răspândindu-le la toate nodurile prin „Gossiping”, se pune întrebarea:
 Cât timp durează propagarea?
Răspunsul la această întrebare poate fi dat prin utilizarea dinamicii Gossip: În
fiecare moment, fiecare nod i N face următoarele:
 dacă nodul i nu are informații, nimic nu se răspândește sau Gossip
 altfel dacă are informații, îl trimite la unul dintre vecinii săi
Fie Pij = P (i trimite informații către j)
prin definiție, , și Pij = 0 dacă j nu este vecinul lui i.
De ce este utilă studierea dinamicii Gossip? Pentru că acesta este modul în care se
răspândesc informațiile sociale. În general, acesta este modul în care se răspândește
efectul de rețea „de contact”, acesta este modul în care sunt construite sisteme de calcul
distribuite pe scară largă, spre exemplu, Cassandra, o bază de date distribuită Open
Source folosită de unele dintre cele mai mari organizații, inclusiv Netflix etc.
Întrebări cheie: „Cât timp este necesar ca toate nodurile să primească
informații?”, „Cum depinde propagarea de structura graphului, P?”
În încercarea de a da răspuns la aceaste întrebări, au fost dezvolate mai multe
tipuri de graphuri:
 graph inel;
 graph stea;
 graph complet.

Figura 3. Modele de graphuri care stau la baza dezvoltării rețelelor

Dar ce sunt rețelele? De ce le studiem pe acestea?


Răspuns: Deoarece prin intermediul acestora se facilitează curgerea fluxului (a
ceva) între entitățile distribuite.
364 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Figura 4. Modele de rețele din lumea reală

În aceste condiții apar rețele sociale, economice și de informații. Rețelele sociale


și economice, redate de unități – noduri – reprezintă indivizi sau firme și legăturile dintre
aceste entități, care nu sunt altceva decât informarea/interacțiunea dintre noduri. Putem
spune că, la un nivel mai larg, studiul rețelelor poate include studiul tuturor tipurilor de
interacțiuni, cum ar fi: transmiterea de informații, legăturile web, schimbul de informații,
comerțul, fluxuri de credite și financiare, prietenie, încredere, răspândirea epidemiilor,
difuzarea de idei și inovație, etc.
Tehnologiile ajută la crearea unei lumi în care:
 Granițele naționale
 Distanțele geografice
 Limitele fizice – devin din ce în ce mai puțin relevante în viața de zi cu zi.
Baza în ceea ce privește domeniul calculatoarelor și tehnologia informației este
reprezentată de conceptul Turing. Conceptul de mașină Turing a fost inventat de
informaticianul și matematicianul britanic Alan Turing în timpul celui de-Al Doilea
Război Mondial, cu scopul de a decoda mesajele germanilor. Ca și un calculator din ziua
de azi, mașina Turing primea instrucțiuni și le executa, mai precis aceasta avea rolul de a
decoda mesajele trimise de naziști, care foloseau o mașină numită Enigma pentru a le
coda. În prezent, Alan Turing este considerat părintele informaticii, datorită contribuțiilor
sale în domeniu.
Unul dintre primele și cele mai populare calculatoare a apărut abia după cel de-al
Doilea Război Mondial, în anul 1946 și era foarte diferit în comparație cu calculatoarele
din prezent. Nevoia de a crea un astfel de sistem apare încă din timpul celui de-al doilea
război mondial, atunci când guvernul american dorea realizarea de calcule în privința
traiectoriilor gloanțelor în funcție de vreme. Deoarece aceste calcule complexe durau un
timp îndelungat, inginerii John Mauchly și J. Presper Eckert s-au gândit să creeze o
mașină pentru a facilita realizarea lor. În felul acesta s-a dezvoltat integratorul electronic
de analiză numerică „Electronic Numerical Integrator Analyzer and Computer –
ENIAC”, asamblat la Universitatea din Pennsylvania. Prin comparație cu un calculator
actual, diferențele majore erau reprezentate de volumul amplu, cântărind până la 30 de
tone, costul ridicat de producție, dar și dificultatea de a lucra cu acesta, fiind nevoie de o
întreagă echipă de tehnicieni pentru a-l utiliza. Printre cei șase tehnicieni angajați pentru a
se ocupa de ENIAC se numărau și două programatoare care au adus mai târziu propriile
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 365

contribuții. Jean Jennings Bartik a condus proiectul cu privire la stocarea și memoria


calculatoarelor, în timp ce Frances Elizabeth Holberton a creat prima aplicație software.
În ciuda costului de producție ridicat pentru calculatoare și a dificultății în lucrul cu
acestea, faptul că puteau realiza calcule de mii de ori mai repede decât un om a convins
cercetătorii că merită investiția.
Deoarece primele calculatoarele apărute nu erau foarte eficiente, a fost necesar un
timp îndelungat pentru a fi pregătite și a le face să funcționeze în scopul în care
utilizatorul dorea. Pentru execuția unui singur program, tehnicianul era nevoit să
introducă casete magnetice și cartele perforate, care conțineau informația digitală.
Procesul se relua la execuția fiecărui program și îngreuna lucrul cu acesta de către mai
mulți utilizatori, astfel încât a fost găsită ca soluție dezvoltarea sistemelor de operare.
Primul sistem de operare apare în anul 1956 sub numele de GM-NAA I/O, deținut de
compania General Motors și a fost creat special pentru a rula pe un calculator al
companiei IBM, numit IBM 704. Sarcina principală pe care o îndeplinea era de a executa
automat un nou program la terminarea celui curent.
Un an mai târziu, în data de 4 octombrie 1957, Uniunea Sovietică își lansează
primul satelit pe orbită, numit Sputnik, aceasta fiind o dată semnificativă în evoluția
Internetului. Deși Sputnik nu avea calități deosebite, el doar trimitea semnale de la
emițătorul radio în timp ce se rotea în jurul pământul, acest eveniment a reprezentat un
motiv de îngrijorare pentru mulți americani și pune în mișcare o dezvoltare a tehnologiei
fără precedent, deoarece oamenii încep să aibă o perspectivă mai serioasă referitor la
domeniile științei și tehnologiei.
Datorită faptului că Războiul Rece era în plină desfășurare, principala teamă a
americanilor o reprezenta un atac asupra liniilor telefonice care urma să îi priveze de
comunicarea la distanță. Prima idee pentru soluționarea acestei probleme a fost propusă
de J.C.R. Licklider, om de știință din cadrul „Institutului de cercetare din Massachusetts
–MIT” și ARPA, care se gândește la o rețea galactică de calculatoare care pot comunica
între ele. Chiar dacă dezvoltarea acestei rețele nu a fost făcută inițial în vederea rezolvării
acestei probleme, în cele din urmă a devenit soluția optimă și, astfel, dacă liniile
telefonice erau distruse, tot exista posibilitatea de a comunica la distanță.
Una dintre măsurile urgente luate de DoD al USA a fost reabilitarea rețelei de
telefonie în 1960, concepută pentru a rezista războiului nuclear.

Figura 5. Rețeaua de telefonie USA 1960. Sursa FEMA


366 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Conform unuia dintre fondatorii primei rețele, ARPANET, în anii ’60, acest prim
experiment cu rețele nu a fost deloc legat de comuncație, ci de a optimiza utilizarea
procesoarelor, sau „time-sharing-ul”. Acesta presupune că oamenii de știință pot partaja
puterea procesorului. Asta deoarce, până în anii ’60, nu exista nici o rețea. Existau mașini
de calcul masive, denumite mainframe-uri, ce se aflau în încăperi speciale și procesau
sarcinile câte una pe rând. Cu time-sharing, aceste mașini de calcul puteau procesa câteva
sarcini în același timp, ceea ce însemna că puterea putea fi folosită de mai mulți oameni
de știință în același timp.
Rețeau Rețelelor (Internetul) reprezintă unul din cele mai de succes exemple a
beneficiilor investiției susținute și a devotamentului pentru a cerceta și dezvolta
infrastructura informațională. Începând cu bazele cercetării în comutarea de pachete,
guvernul, industria și lumea academică au fost parteneri în dezvoltarea și livrarea acestei
tehnologii interesante. În mod evident, odată ce calculatoarele au început să fie conectate
între ele, a apărut problema eficientizării comunicației între aceste calculatoare. Oamenii
de știință de pe mapamond au încercat să rezolve această problemă. Una dintre aceste
soluții a fost comutarea de pachete, „packet switching”. În Marea Britanie, a existat o
rețea comercială, dezvoltată de National Physical Laboratory, dar care nu a avut succes
deoarece nu a primit fonduri suficiente. Însă ei au fost primii ce au introdus ideea de
comutare de pachete, un mod de a evita „aglomerația” în rețele prin segmentarea datelor
de la sursă și reasamblarea lor la destinație.

Figura 6. Rețea de energie electrică USA. Sursa FEMA

Aproximativ în aceeași perioadă, Leonard Kleinrock de la Institutul de


Tehnologie Massachusetts a publicat prima lucrare despre teoria comutării pachetelor, în
iulie 1961 și prima carte pe acest subiect în 1964. Kleinrock a reușit să îl convingă pe
Lawrence Roberts, un alt cercetător al MIT, că este o idee mai bună comunicarea
folosind pachete, față de cea convențională de comutare prin circuite, acesta fiind un pas
important pentru bazele rețelisticii. O altă piesă importantă era crearea unei legături între
două calculatoare.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 367

Pentru a explora acest aspect, Roberts alături de Thomas Merill a conectat două
calculatoare folosind o linie de telefon cu modem (dial-up), pentru a crea prima rețea de
arie largă. Rezultatul experimentului a fost că acele două calculatoare puteau lucra bine
împreună, rulau aplicații și preluau informații unul de la celălalt, dar acest tip de sistem
cu circuit de telefonie era total inadecvat pentru acest scop. Apare confirmarea că
sistemul bazat pe comutarea de pachete inventat de Kleinrock era necesar.
Anul 1965 marchează un alt pas semnificativ în istoria Internetului, atunci când în
cadrul MIT se dezvoltă o modalitate de a trimite informații sub forma unor blocuri de
date. Un bloc de date este o secvență de biți sau octeți de o lungime specifică care
reprezintă informația spartă în bucăți mai mici înainte de a fi livrată la destinație. Modul
acesta de a transmite informația este de mare importanță în ceea ce privește securitatea
datelor transmise. În lipsa acestuia, rețeaua de calculatoare cunoscută la timpul respectiv
drept „ARPAnet” ar fi fost vulnerabilă la atacuri ca sistemul de telefonie din timpul celui
de-Al Doilea Război Mondial.
În ziua memorabilă de 29 octombrie 1969, la ora 22:30, este transmis primul
mesaj din istoria rețelelor de calculatoare. Student la universitatea din California, Charley
Kline, intenționează să transmită împreună cu profesorul său, Kleinrock, mesajul login
către un alt programator din cadrul universității Stanford, Bill Duvall. După transmiterea
primelor două litere din mesaj, „lo”, transmisia eșuează și astfel „lo” reprezintă primul
mesaj transmis vreodată prin intermediul rețelelor de calculatoare. Totuși, după
aproximativ o oră sistemul este redresat și mesajul login este livrat cu succes în întregime.
Odată cu invenția tranzistorului în anul 1948, a circuitului integrat cu 10 ani mai
târziu, și a microprocesorului după mai mulți ani, în anul 1971, calculatoarele au început
să devină din ce în ce mai mici și din ce în ce mai puternice.
De asemena, guvernul american înființează două agenții noi: Administrația
Națională a Spațiului și a Aeronauticii „National Aeronautics and Space Administration –
NASA”, și Agenția de apărare a Cercetărilor Avansate „Advanced Research Projects Agency
– ARPA”, care avea rolul de a dezvolta tehnologii precum rachete, arme și calculatoare.

Figura 7. Noi metode de învățare


368 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Comunicarea, colaborarea şi angajamentul sunt blocurile fundamentale de


construcție ale educației. Instituțiile se străduiesc continuu să sporească aceste procese
pentru a maximiza propagarea de cunoștințe. Rețelele au schimbat modul în care se
învață. Rețelele de încredere și cuprinzătoare suportă şi îmbogățesc experiențele de învățare.
Acestea oferă material de învățare într-un număr mare de formate, cum ar fi activități
interactive, evaluări şi feedback. Conform cu imaginile prezentate în figura 7, rețelele:
• Suportă crearea de clase virtuale.
• Oferă video „la-cerere”.
• Permite spații de colaborare pentru învățare.
• Permite învățarea mobilă.

3. Rețeaua Internet

Oamenii de știință francezi au jucat și ei un rol în dezvoltarea Internetului.


Aceștia lucrau la o rețea științifică denumită CYCLADES, însă din cauza bugetului, s-au
decis să se concentreze asupra conexiunilor directe, dintre calculatoare, în opoziție față de
lucrul cu calculatoare de poartă („gateway computers”). Potrivit unei alte teorii, aceștia
sunt primii care au inventat denumirea de Internet.
Ideea internetului a pornit de la rețeaua Advanced Research Projects Agency
Network (ARPANET), creată de către Departamentul Apărării Statelor Unite (DOD)
pentru cercetări în domeniul rețelisticii. În anul 1972 ARPANET îngloba deja 40 de
calculatoare, fiind creată o mică Rețea de Arie Locală (Local Area Network – LAN).
Aceasta a fost deschisă în anul 1972 pentru publicul larg, fiind demonstrate tehnologiile
prin care funcționau aceste rețele, urmând ca, după un an, doi ingineri de la universitatea
Harvard să dezvolte tehnologia Ethernet care permitea transferul de date pe cablu coaxial.
Un an mai târziu, este propus protocolul de comunicații Transmission Control Protocol
(TCP) care este la rândul lui dezvoltat într-o suită de protocoale (TCP/IP), standardizată
conform documentelor Requests For Comments (RFC), astfel că până în anul 1983 s-a
ajuns la 500 de centre.
Odată rezolvată problema comunicării dintre rețele, partajarea a devenit din ce în
ce mai ușoară. Însă toată această comunicație era bazată strict pe text, ceea ce o făcea
greu de asimilat și procesat de utilizatori. În anii ’80, un britanic, pe numele său, Timothy
Berners-Lee, în timp ce lucra la Organizația Europeană pentru Studiul Nuclear, European
Organization for Nuclear Research (CERN), a dorit să administreze informațiile
oamenilor de știință și să le facă mult mai ușor de a le partaja, ușurând astfel progresul.
Acestea au fost posibile prin inventarea protocolului de intercomunicare Hypertext
Transfer Protocol (HTTP), limbajul HyperText Markup Language (HTML) și
mecanismul Uniform Resource Locator (URL). Sir Berners și-a denumit serviciul web
compus din HTTP, limbajul de descriere HTML și severe web, World Wide Web. Aceste
servicii au făcut parte din compoziția primului program browser denumit Netscape.
Primul site creat a fost la CERN, în Franța, în August 1991. Foarte importantă era și poșta
electronică (e-mail). Aceasta a fost dezvoltată pentru ARPANET în 1972. Majoritatea
traficului în 1976 era reprezentat de e-mail, deoarece mințile academice au adoptat foarte
repede ideea de „post-it” electronic.
Globalizarea Internetului a introdus noi forme de comunicare care permit
indivizilor să creeze informații care pot fi accesate de către o audiență globală.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 369

Unele forme de comunicare includ:


 Mesageria instant (IM)/Text – IM şi text permit comunicare instant, în timp
real, între doi sau mai mulți oameni. Multe dintre aplicațiile IM și text încorporează
caracteristici precum transferul de fișier. Aplicațiile IM pot oferi caracteristici
suplimentare precum comunicare video sau prin voce.
 Social media – Social media constă în site-uri interactive, unde oameni şi
comunități creează şi partajează conținut generat de utilizator, cu prietenii, familia,
colegii şi/sau întreaga lume.
 Instrumente de colaborare – instrumentele de colaborare oferă oamenilor
oportunitatea de a lucra împreună și de a partaja documente. Fără constrângerea unei
locații sau a unui fus orar, indivizii conectați la un sistem partajat, pot vorbi între ei,
adesea prin intermediul unui video interactiv, în timp real. Prin intermediul rețelei, pot
partaja text şi grafice şi pot edita documente împreună. Cu ajutorul instrumentelor de
colaborare întotdeauna disponibile, organizațiile se pot îndrepta rapid către partajarea de
informații şi să-și urmărească obiectivele. Distribuția largă a rețelelor de date înseamnă că
oamenii din locații aflate la distanță pot contribui în mod egal cu oamenii de la centrele
cu populație mare.
 Blogurile – blogurile sunt pagini de web care sunt ușor de actualizat și de
editat. Spre deosebire de site-urile comerciale, care sunt create de experți în comunicații
profesionale, blogurile oferă oricărei persoane o metodă de comunicare a gândurilor
proprii către o audiență globală, fără cunoștințe tehnice despre web design. Există bloguri
cu aproape orice subiect, se pot gândi și comunități de oameni ce se formează adesea în
jurul autorilor de bloguri populare.
 Wikis – sunt pagini web pe care grupuri de oameni le pot edita şi vizualiza
împreună. Spre deosebire de blog, care este mai mult un jurnal personal, individual, wiki
este o creație de grup. Acestea fiind spuse, Wikis ar putea fi supus unei editări şi
verificări mai extinse. Ca și blogurile, wikis pot fi create în trepte, de oricine, fără ajutorul
unei sponsorizări a unei întreprinderi comerciale mari. Wikipedia a devenit o resursă
cuprinzătoare – o enciclopedie online – de subiecte publicate în mod public. Organizațiile
private şi indivizii pot de asemenea să-și construiască propriile wikis pentru a expune
cunoștinte colectate cu privire la un subiect particular. Multe afaceri folosesc wikis ca un
instrument intern de colaborare. Cu ajutorul internetului, oameni din toate colțurile lumii
pot participa în wikis şi pot adăuga perpsective proprii şi cunoaștere cu privire la o
resursă partajată.
 Podcasting – podcasting este un mediu bazat pe audio care permitea iniţial
oamenilor să înregistreze audio și să convertească fişiere audio pentru utilizarea lor.
Podcasting permite oamenilor să trimită întregistrări proprii la o audiență extinsă.
Fișierele audio sunt plasate pe un website (blog sau wiki) de unde alții le pot descărca și
le pot asculta pe propriile calculatoare, laptopuri şi alte dispozitive mobile.
 Partajarea de fişiere Peer-to-Peer (P2P) – Partajarea de fișiere Peer-to-Peer
(P2P) permite oamenilor să partajeze fişiere între ei, fără a necesită stocarea și
descărcarea lor dintr-un server central. Utilizatorul se alătură rețelei P2P prin simpla
instalare a software-ului P2P, lucru ce le permite să localizeze şi să partajeze fişiere cu
alți oameni, în rețeaua P2P. Digitalizarea pe scară largă a fișierelor media, precum fişiere
video și de muzică, a crescut interesul în partajarea P2P. Partajarea de fișiere P2P nu a
370 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

fost primită bine de toată lumea. Mulți oameni s-au îngrijorat de violarea de legi cu
privire la meterialele cu drepturi de autor.
Deși partea complicată a istoriei Internetului a trecut, noțiunea care urma să
ridice provocarea conectării a miliarde de echipamente de rețea era totuși departe de a fi
realitate, dar până în anul 1988 această problemă a fost rezolvată, odată cu apariția
modelului de referință pentru Interconectarea Sistemelor Deschise (Open Systems
Interconnection – OSI).
Odată cu evoluția tehnologiilor ce stăteau la baza acestor mijloace de
comunicații, au fost formate două standarde pe care se bazează toate rețelele, acestea
urmând modelul de protocol TCP/IP, structurat după modelul de referință OSI.

Figura 8. Forme de comunicare

Stiva OSI – Modelul Open Systems Interconnection (OSI) este folosit pentru
realizarea comunicației, dar și pentru testarea acesteia, fiind compus din 7 nivele:

Figura 9. Modelul OSI


ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 371

De la echipamentul sursă, pornind de la nivelul Aplicație unde se realizează


interfața dintre utilizator și aplicația propriu-zisă, se va inițializa Protocol Data Unitul
(PDU) ce va fi transmis. Prin procesul de încapsulare, ce are loc la nivelul 6 (Prezentare),
datele sunt codificate, criptate și comprimate în cazul unui echipament sursă, sau
decodificate, decriptate și decomprimate în cazul echipamentului destinație.
Nivelul 5, nivelul Sesiune, administrează (inițiază, menține și reface) legăturile și
sesiunile dintre echipamentele implicate în comunicare. Pentru aceste trei nivele din stiva
OSI, unitatea de transfer a informației Protocol Data Unit (PDUul) se numește DATA.
Nivelul 4, Transport realizează transferul de informație între aplicații,
segmentând și reasamblând datele. Acesta funcționează cu două protocoale: Transmission
Control Protocol (TCP), care înainte de a face transferul se stabilește o conexiune sigură
între echipamente, și User Datagram Protocol (UDP) care este folosit de aplicațiile care
au nevoie de un transfer rapid cum ar fi fluxul de date video. La PDUul DATA se va
adăuga un Header ce conține adresa port sursă și adresa port destinație, iar noul PDU se
va numi Segment. Această adresare este una numerică și identifică pe fiecare echipament
tipul aplicației aferent datelor.
Nivelul 3, Rețea găsește cea mai bună cale între sursă și destinație, aceasta fiind
selectată după mai multe criterii: al vitezei, al traficului, al numărului de noduri prin care
trece PDUul, setări date de alegerea protocolului de rutare. Se va adăuga la Segment un
nou Header ce conține adresa IP sursă și adresa IP destinație.
Nivelul 2, Legătura de date asigură accesul la rețea, deciziile luându-se pe baza
adresei Media Access Control (MAC) din tabela Content Address Memory (CAM). Acest
nivel este împărțit în două subnivele: Logical Link Control (LLC), care face legătura
software cu nivelul Rețea, și Media Access Control (MAC) care creează o legătură
hardware cu nivelul Fizic. PDUul acestui nivel se numește Frame și este format prin
adăugarea unui Header ce conține adresa MAC sursă și adresa MAC destinație, cât și un
Trailer ce conține Frame Check Sum (FCS) care asigură corectitudinea comunicației
printr-un mecanism numit Cyclic Redundancy Check (CRC).
Nivelul 1, Fizic transferă informația pe mediul de comunicație pe care vor fi
transmise datele, sub forma de biți. Semnalele se vor transmite către echipamentul
destinație putând parcurge o rută ce poate avea mai multe echipamente intermediare.
Echipamentul destinație recepționează informația și începe procesul invers, de
decapsulare (reasamblare). Comunicația se termină prin trimiterea informației către
aplicația destinatarului.
Stiva TCP/IP – este o suită de protocoale de
comunicații ce permite conexiunea utilizatorilor la Internet.
Aceasta urmează structura modelului OSI, dar este
împărțită în 4 nivele:
- Nivelul Aplicație înglobează primele 3 nivele ale
stivei OSI: Aplicație, Prezentare și Sesiune.
- Nivelul Transport are rolul de transfer de
informații între aplicații, segmentând și reasamblând datele.
- Nivelul Internet este echivalentul nivelului 3
(Rețea) și caută o rută optimă către destinație.
- Nivelul Acces la rețea înglobează funcțiile regăsite
Figura 10. Stiva TCP/IP în nivelele 2 (Legătura de date) și 1 (Fizic) din stiva OSI.
372 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Pentru a realiza toate aceste legături între caculatoare prin intermediul rețelelor de
calculatoare era nevoie de un identificator unic (IP) al echipamentelor indiferent de cum
se numeau – calculatoare, imprimante, switchuri, routere, etc. acesta fiind cuprins în stiva
de protocoale TCP/IP, cunoscut sub numele Internet Protocol.
Protocolul IPv4 a fost dezvoltat în anii ’80 și s-a propus prin folosirea a 32 de biți
pentru definirea unei adrese (exexmplu 192.168.100.1). În fiecare câmp dintre acestea 4
pot fi alocați 8 biți:
8 biți * 4 câmpuri = 32 biți.
Fiecare câmp (4 în total) al unei adrese IP poate avea orice valoarea între 0 – 255
(8 biți/câmp, deci în total 256 de valori; 2^8=256). Astfel, adresele IP se împart în mai
multe clase:
Clasa A: 0.0.0.0 – 127.255.255.255 / Masca de rețea pe 8 biți
Clasa B 128.0.0.0 – 191.255.255.255 / Masca de rețea pe 16 biți
Clasa C 192.0.0.0 – 223.255.255.255 / Masca de rețea pe 24 biți
Clasa D 224.0.0.0 – 239.255.255.255 / Masca nealocată
Clasa E 240.0.0.0 – 255.255.255.255 / Masca nealocată
Clasele A, B, C sunt cele folosite în Internet, clasa D fiind rezervată pentru
Adresele de tip Multicast, iar clasa E este o clasă experimentală și nu este folosită.
În anul 2011, mai exact în luna februarie, IANA (Internet Assigned Numbers
Authority) a alocat ultimul spațiu de adrese IPv4. Asta înseamnă că nu mai putem conecta
alte dispozitive la Internet? Nicidecum, de atunci și până acum (2018) numărul de
dispozitive interconectate a crescut foarte mult. Putem observa tendința dezvoltării
rețelelor în următorul grafic:

Figura 11. Estimarea numărului de echipamente interconectate 2012 – 2020

Pentru a folosi eficient toate aceste concepte și tehnologii pionierul computerelor,


Steve Wozniak, a construit un computer mic, Apple I, în 1976, iar costul acestuia, de peste
20.000 de dolari, reprezenta un preț prohibitiv pentru cei care voiau să-l folosească acasă.
Apple II, care a intrat pe piață în 1977, a fost primul microcomputer comercial de succes.
Pe 12 august 1981, la New York, International Business Machines (IBM) a
prezentat primul computer personal, legendarul IBM 5150 PC. Începuse incredibila
evoluție a computerului. PC-ul IBM era dotat cu sistem de operare MS DOS, creat de
compania Microsoft. Mai avea un processor 8088, 84 KB de memorie și un BIOS (sistem
de bază de intrare și ieșire) realizat special pentru computer.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 373

În SUA, prima generație de PC-uri costa aproximativ 3.500 de dolari, cu tot cu


monitor. IBM a vândut aproximativ 35.000 de unități în 1981, dar cererea a căpătat în
scurt timp proporții gigantice. În total, IBM a vândut cam trei milioane din aceste prime
PC-uri, disponibile până în anul 1987.
Astfel, odată cu introducerea calculatorului personal, creșterea numărului de
aplicații din ce în ce mai utile și eficiente, dar și odată cu creșterea popularității
Internetului, tot mai multe firme au dorit să își eficientizeze operațiunile de producție.
Acest lucru presupune achiziția unor calculatoare cât mai performante pentru angajații
firmei, a unor servere cât mai eficiente pentru a putea stoca datele companiei într-un mod
sigur și de încredere, dar și a unor echipamente de rețea suficient de competitive pentru a
putea face față traficului generat de un număr mare de utilizatori ce se pot afla într-o
intreprindere dezvoltată.
Pentru a putea creea o infrastructură corespunzătoare mediului de afaceri în care
va performa, un administrator de rețele trebuie să cunoască, în primul rând, locația unde
firma își va desfășura activitatea. Acest lucru presupune schițarea planului clădirii, a
posibilității amenajării unei camere a serverelor, dar și identificarea tuturor
impedimentelor ce ar putea îngreuna sau pune în pericol desfășurarea normală a rețelei.
Câteva exemple de probleme ar putea fi: conductele de apă, amplasarea iluminării bazată
pe tuburi fluorescente ce pot interfera cu rețeaua wireless, stabilirea traseului parcurs de
cablurile Ethernet, în mod strategic pentru a evita deteriorarea acestora fizică, sau
alterarea semnalului de către dizpozitivele ce emit radiație electromagnetică (cabluri de
alimentare de la rețeaua electrică).
După identificarea acestori factori, un specialist trebuie să știe numărul total de
dispozitive terminale, format atât din calculatoarele utilizatorilor, cât și a serverelor
folosite de aceștia, dar și alte dispozitive (imprimante, telefoane etc.). Bazat pe acest
număr, specialistul trebuie să calculeze numărul de echipamente de rețea formate din
rutere și switch-uri necesar utilizatorilor prezenți, dar trebuie să ia în calcul și o scalare în
viitor. După cunoașterea celor doi factori, specialistul va face o evaluare estimativă a
costurilor, astfel încât, la sfârșitul acestei analize, acesta să poată estima un cost total al
echipamentelor folosite în implementarea rețelei.
De asemenea, persoana desemnată trebuie să configureze echipamentele astfel
încât să satisfacă cerințele clienților. Acest lucru presupune distribuirea echipamentelor
terminale în departamente, cărora li se pot aloca diferite clase de adrese IP, configurarea
switch-urilor pentru a se putea face această compartimentare la nivel logic al
departamentelor, securizarea porturilor folosite de către utilizator, dar și configurarea
ruterelor pentru a găsi calea optimă dintre rețele.
În mod tradițional, toate etapele ce trebuie parcurse se desfășoară în medii de
planificare separate: planificarea amplasării dispozitivelor se face fizic, pe un plan
arhitectural al clădirii, iar configurarea dispozitivelor de rețea se face electronic, din linia
de comandă a acestora.
Anul 1982 aduce reunirea principalelor rețele: ARPAnet, MILnet, BITNET
(Because It’s Time NETwork – apărută în mediul universitar), USENET (apărută tot în
mediul universitar, dar care oferă și o serie de servicii comerciale) și a altor rețele luând
naștere Internetul, sub denumirea de Internetwork System (Sistem Interconectat de rețele).
374 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Evoluția Internetului este evidențiată în continuare de adăugarea de noi servicii:


serviciul de informare GOPHER, serviciul de transfer de fișier FTP, serviciul World
Wide Web etc.
Ziua de 1 ianuarie 1983 marchează trecerea de la protocolul NCP (Network
Control Protocol) la TCP/IP (Transport Control Protocol / Internet Protocol). Numărul
calculatoarelor conectate la rețeaua Internet a crescut rapid de la un an la altul, astfel:
 1024 în 1984;
 5089 în 1986;
 28000 în 1987;
 130000 în 1989.
Un navigator web este un program special creat pentru a interpreta și afișa
fișierele din spațiul web. Se poate referi la browser ca fiind clientul, deoarece este cel care
face cererea de informații de la server, cel din urmă fiind reprezentat de calculatorul sau
calculatoarele pe care sunt stocate datele cerute. Legătura dintre clienți și servere este
realizată prin Internet.
Primul navigator web poartă numele de World Wide Web și devine cunoscut mai
apoi, sub numele de Nexus. Curând, mai multe browsere apar, cel mai popular fiind
Mosaic care a apărut în anul 1992, după ce a fost dezvoltat de un grup de studenți și
cercetători de la Universitatea din Illinois. Mosaic, cunoscut mai târziu sub denumirea de
Netscape, oferea utilizatorilor un mod simplu și prietenos de a căuta informații în spațiul
virtual. De asemenea, implementa pentru prima dată funcționalitatea de a vedea pe
aceeași pagină atât conținut text, cât și imagini, lucru de care navigatoarele web apărute
anterior nu dispuneau. Fondatorul Netscape pune bazele companiei „Mosaic
Communications Corporation” în anul 1994 și, astfel, intră într-o competiție de
dominanță cu browserul Internet Explorer de la Microsoft, cel din urmă câștigând.
În prezent, cele mai populare navigatoare web sunt Google Chrome, Mozilla
Firefox și Opera. Prin comparație, Google Chrome este cel mai rapid, dispune de cea mai
bună integrare pentru dispozitive mobile și are un aspect simplu și plăcut, însă marele
dezavantaj îl reprezintă consumul mare de resurse. Firefox, pe cealaltă parte, nu dispune
de o integrare mobilă la fel de bună și nici nu este la fel de rapid precum Chrome, însă
încă primește actualizări frecvente și este un browser capabil. Opera se poate considera o
alternativă pentru Chrome, deoarece este bazat pe același tehnologii, însă, prezintă marele
avantaj de a încorpora cele mai bune funcționalități atât din Chrome, cât și din Firefox.
Tot în anul 1992, congresul american a luat decizia că spațiul virtual poate fi
folosit pentru scopuri comerciale și astfel, companiile au început să-și creeze pagini web,
denumite site-uri, nu doar pentru a-și promova bunurile și serviciile pe piață, dar și pentru
a le vinde. Un site reprezintă o colecție de pagini web grupate împreună și între care se
poate naviga, fiind legate una de cealaltă într-un mod sau altul prin referințe numite
legături (linkuri).
Un link este un text care la acționarea lui afișează o altă pagină a site-ului sau un
alt site. Site-urile sunt stocate pe servere web și pot fi accesate prin intermediul unui
client. Chiar dacă este posibil să transformăm un calculator într-un server web, din motive
de securitate este recomandat să nu facem acest lucru, pur și simplu să închiriem spațiu pe
un server deținut de altcineva. Site-urile web pot fi accesate prin intermediul protocolului
HTTP menționat anterior, folosind o tehnologie numită localizator uniform de resursă,
„Uniform Resource Locator – URL”.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 375

Spre exemplu, http://google.ro, http este protocolul care face cererea de


informații, în timp ce google.ro este URL-ul. La tastarea adresei în navigatorul web,
protocolul HTTP se ocupă cu găsirea domeniului sistemului pentru a localiza unde sunt
stocate paginile web pentru google.ro și pentru a le afișa. Domeniul sistemului, „Domain
Name System – DNS”, este un serviciu de registru Internet distribuit. DNS se ocupă cu
translatarea numelor domeniilor în adrese IP și astfel este afișat site-ul Web în browser.
La acessarea unui alt site sau al altei pagini din cadrul aceluiași site procesul se reia. În
ceea ce privește asignarea numelor pentru fiecare site web în parte, deținătorul siteu-lui
web are posibilitatea de a-și alege propriul nume și a-l înregistra în directorul global DNS
prin intermediul companiilor care oferă servicii de înregistrare a numelor.
Un nume de domeniu are în componență numele propriu-zis, dar și un sufix
alcătuit din două sau trei litere. Acest sufix este important și definește un site. În general,
site-urile cu sufixul .com sunt internaționale sau înregistrate în Statele Unite ale Americii.
Sufixul .co.uk descrie site-uri înregistrate în Regatul Unit, respectiv .ro este folosit pentru
site-uri din România și astfel există un sufix pentru aproape orice țară. Câteva excepții le
reprezintă sufixele .edu, utilizate de siteurile oficiale ale educației, .org de obicei folosite
de organizații non-comerciale și .net pentru siteuri ascociate cu Internetul. De asemenea,
unele sufixe, cum este .gov pot fi folosite doar de instituții guvernamentale. Un nume de
domeniu poate fi înregistrat doar dacă altcineva nu l-a revendicat până atunci. Numele de
domeniu nu poate fi cumpărat pur și simplu, dar poate fi închiriat pe o perioadă de la 1 la
10 ani. Când perioada de închiriere expiră deținătorul are posibilitatea de a îl reînnoi, iar
dacă decide să nu îl reînnoiască acesta devine disponibil pentru a fi înregistrat și închiriat
de oricine.

Fig. 12. Structura DNS.

În prezent, spațiul virtual are o multitudine de utilizări, cele mai populare sunt
rețelele sociale, posibilitatea de a face cumpărături online și accesarea de conținut media
la cerere.
Astfel, începând cu anul 1991 este momentul în care National Science
Foundation, care superviza modul de operare peste rețele, a ridicat restricțiile impuse de
domeniul comercial, ceea ce a produs o adevărată „explozie” în creșterea numărului de
calculatoare conectate:
376 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 992.000 în 1992;
 1.776.000 în 1993.
În 1993, sesizând importanța deosebită, Casa Alba deschide o cutie poștală
(president@whitehouse.gov).
Anul 1994 marchează realizarea primelor transmisii audio și video peste marea
de rețele de calculoatoare. În fiecare lună se conectau la Internet peste un milion de noi
utilizatori. Internet Society estimează că aproximativ 115 țări dispuneau de o conexiune la
rețeaua informatică mondială.
Creșterea exponențială a numărului calculatoarelor conectate scoate în evidență
evoluția deosebit de rapidă a Internetului, remarcându-se, prin analogie, o creștere
importantă și în ceea ce privește numărul de utilizatori.

4. Internetul în România

Calea pe care masajul o parcurge de la sursă la destinație poate fi la fel de simplă,


precum un cablu ce conectează un calculator cu altul, sau complexă precum o rețea care
se întinde peste lumea întreagă. Această infrastructură de rețea este platforma care suportă
rețeaua, oferă un canal stabil și de încredere peste care comunicațiile au loc.
Infrastructură de rețea conține trei categorii de componente:
• Dispozitive;
• Medii de comunicaţie;
• Servicii.
Dispozitivele şi mediile de comunicaţie reprezintă elementele fizice, sau
componenta hardware, ale rețelei. Hardware reprezintă adesea componenta vizibilă a
platformei de rețea, cum ar fi laptop, PC, switch, router, punct de acces wireless sau
cablajul folosit pentru a conecta dispozitivele. Ocazional, unele componente ar putea să
nu fie vizibile. În cazul mediului wireless, mesajele sunt transmise prin aer folosind o
frecvență radio invizibilă sau unde infraroșii.
Componentele de rețea sunt utilizate pentru a oferi servicii şi procese. Sunt
programe de comunicații, numite software, care rulează pe dispozitivele din rețea. Un
serviciu de rețea oferă informații ca răspuns la o cerere. Serviciile includ mai multe
aplicații cunoscute din rețea pe care oamenii le folosesc în fiecare zi, cum ar fi servicii de
e-mail și servicii web. Procesele oferă funcționalitatea care direcționează şi transferă
mesajele prin rețea. Procesele sunt mai puţin vizibile pentru ochiul uman, acestea fiind
critice pentru operațiile din rețele.
Dispozitivele din rețea cu care oamenii sunt familiari sunt numite dispozitive
finale sau host-uri. Aceste dispozitive formează interfaţă dintre utilizatori şi rețeaua de
comunicare ce stă la bază.
Unele exemple de dispozitive finale sunt:
• Computere (stații de lucru, laptopuri, servere de fişiere, servere web etc.).
• Imprimante de rețea.
• Voce peste protocolul de Internet (VoIP).
• Camera de securitate.
• Dispozitive mobile (cum ar fi smartphone, tablete, PDA, cititoare de
debit/credit wireless şi scanare de coduri de bare).
Un dipozitiv host este fie o sursă, fie o destinație a mesajului transmis prin rețea,
conform animației. Pentru a distinge un host de celălalt, fiecare host din rețea este
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 377

identificat de o adresă. Atunci când un host inițiază o comunicare, folosește adresa


hostului destinației pentru a specifica unde mesajul Dispozitivele intermediare
interconectează dispozitivele finale. Aceste dispozitive oferă conectivitate şi funcționează
“în background” pentru a se asigura de faptul că datele traversează rețeaua în mod corect.
Dispozitivele intermediare conectează hosturi indivituale la rețea şi pot conecta mai multe
rețele individuale pentru a forma legătura între rețele diverse „internetwork”.
Exemple de dispozitive de rețea intermediare sunt:
• Network Access (switchuri și puncte de acces wireless)
• Internetworking (routere)
• Securitate (firewalluri)
Managementul datelor așa cum sunt transferate în rețea reprezintă, de asemenea,
un rol de dispozitiv intermediar. Aceste dispozitive folosesc adresa hostului destinație,
împreună cu informații despre interacțiunile din rețea, pentru a determina calea pe care
mesajele ar trebui să o parcurgă prin rețea.
Procesele ce rulează pe dispozitivele intermediare de rețea efectuează
următoarele funcții:
 Regenerează și retransmit semnalele de date.
 Mențin informații cu privire la căile existente în rețea şi internwetwork.
 Notifică alte dispozitivele cu privire la erori şi eșecuri de comunicare.
 Direcționează datele pe o cale alternativă în cazul în care există un eșec de
legătură (link).
 Clasifică şi direcționează mesajele în concordanță cu prioritățile QoS.
 Permit și resping fluxul de date, bazându-se pe setările de securitate. trebuie
să fie transmis.
Internetul a schimbat modul în care interacțiunile sociale, comerciale, politice şi
personale au loc. Natura imediată a comunicațiilor din Internet încurajează crearea
comunităților globale. Comunitățile globale permit interacțiunea socială, care depinde de
locație sau de fusul orar. Crearea de comunități online pentru schimbul de idei şi
informații are potențialul de creștere a oportunităților de productivitate din întreaga lume.
În România, Internetul și-a făcut apariția abia în 1993, evoluția sa fiind legată,
corespunzător datelor prezentate de ICI (Institutul de Cercetari în Informatică), de
următoarele evenimente principale:
 1971 – au demarat la ICI primele studii din România privind rețelele de
calculatoare (proiectul CAMELEON);
 1975 – au fost fabricate primele modemuri românești (Institutul de Proiectări
în Automatizări) și au fost testate liniile de comunicație din România pentru
transmisia de date (ICI și Ministerul Transporturilor și Telecomunicațiilor);
 1991 – la initiațiva Academiei Române, a Ministerului Învățământului și a
Comisiei Naționale de Informatică, a fost aprobată finanțarea, din bugetul
statului alocat cercetării, unui proiect de conectare la subrețeaua EARN
(European Academic Research Network), având ca prime noduri ICI,
Institutul de Fizică Atomică și Universitatea „Politehnică” București;
 1992 – primul nod românesc, care a realizat legătura internațională cu EARN
prin Univesitatea din Viena, a devenit operational la ICI (ROEARN.
BITNET); la acest nod s-au conectat Institutul de Fizică Atomică,
Universitatea „Politehnică” București, Academia de Studii Economice
378 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

București, Universitatea Tehnică Timișoara etc; în martie 1993, nodul asigura


conectivitate completă la Internet;
 1992 – s-a proiectat prima concepție-cadru a unei rețele pentru cercetare și
învățământ superior, denumită RNC;
 1993 – în februarie, s-a înregistrat domeniul .ro;
 1993 – în luna iunie, infrastructura de comunicații a Univesității „Politehnica”
București a devenit operațională (RoEduNet);
 1993 – a apărut SC EUNET SRL, primul operator comercial Internet din
România;
 1995 – s-au stabilit prioritățile importante pentru Societatea Informațională în
România, în cadrul Strategiei de aderare la Uniunea Europeană;
 1998 – 20.000 de utilizatori au fost înregistrați în domeniul .ro.
În Romania, Internetul s-a impus greu, în primul rând din cauza insuficienței
suportului material: calculatoare și echipamente de comunicație. Deși piața românească în
domeniul tehnologiei informației este foarte dinamică, dimensiunea sa este încă restrânsă
ca urmare a gradului redus de dotare cu calculatoare (4,2 calculatoare la mia de locuitori)
și a insuficienței fondurilor alocate (cheltuielile din acest domeniu fiind de numai 25
dolari/locuitori, față de 38 dolari/locuitor în Bulgaria și 2.500 dolari/locuitor în Canada).
Această comparație reflectă faptul că în țara noastră dezvoltarea societății informaționale
este încă la un nivel scăzut, în raport cu nivelurile altor state consacrate în acest domeniu.
Prezența pe Internet a populației din România este foarte mică în comparație cu
amploarea și dinamica fenomenului Internet în Europa și în întreaga lume. Un aspect
pozitiv îl reprezintă însă faptul că penetrarea Internetului în România a atins 16% în anul
2003, înregistrându-se o creștere de 8 ori față de anul 1998. Această evoluție reprezintă
consecința creșterii numărului de utilizatori și a vitezei conexiunilor și este comparabilă
cu cea înregistrată în alte țări ale Europei Centrale și de Est.
Echipamentele și protocoalele prin care calculatoarele de atunci comunicau pot
părea brute și incomplete, dacă privim standardele din ziua de azi, dar au funcționat
suficient de bine pentru a demonstra productivitatea crescută în a partaja informații
electronic între calculatoare sau programe de calculator.
ARPANETul original s-a transformat în Internet, el fiind bazat pe ideea că vor
exista mai multe rețele independente de design arbitrar, începând cu ARPANET ca rețea
pionier, dar în scurt timp va include rețele de sateliți, rețele de radio la sol sau rețele de
senzori cu conectivitate fără fir (wireless).

5. Tehnologia Internet of Things (IoT)


În societatea modernă, atașarea unui calculator la o rețea s-a dovedit a fi o
activitate foarte eficientă pentru educație, comerț, știință sau medicină. Rețelele de
calculatoare sunt o sursă vastă de cunoștințe, ele pot furniza resurse necesare pentru a
prezice vremea, identifica donatori și primitori de organe sau chiar pentru a analiza
complexitatea genomului uman.
Deși au multiple funcții utile oamenilor, soluțiile tehnice fie ele software sau
hardware nu pot înlocui resursele de energie convenționale (petrol, gaz, cărbune, lemn)
cu o altă sursă care poate face același lucru.
Prin soluțiile tehnologice computerizate, inclusiv prin Internetul Tuturor
Lucrurilor (Internet of Things – IoT), se urmărește doar o țintă obișnuită: eficientizarea
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 379

sau reducerea consumului, dacă vorbim de industrii, și reducerea timpului destinat


treburilor casnice, dacă vorbim de viața omului de zi cu zi.
IoT unește oameni, procese, date și lucruri pentru a face conexiunile din rețea
mai relevante şi mai prețioase. Transformă informațiile în acțiuni şi creează noi
capacități, experiențe mai bogate și oportunități economice fără precedent pentru
oameni, afaceri şi țări.
 Ce altceva se crede că vom fi capabili să facem cu ajutorul rețelei ca o
platformă?
Progresele în tehnologiile de rețea repezintă, probabil, cei mai semnificativi
agenți de schimbare din lumea de astăzi. Aceștia ajută la creare unei lumi în care
granițele naționale, distanțele geografice şi limitările fizice devin mai puţin relevante și
prezintă obstacole în continuă scădere.
Internetul Tuturor Lucrurilor poate părea un subiect nou în industrie, însă nu este
deloc așa. La sfârșitul secolului XX, începutul secolului XXI, Kevin Ashton punea bazele
conceptului astăzi numit IoT, în laboratorul său de la MIT. El a fost pionierul acestei
noțiuni pe măsură ce căuta metode prin care compania Procter&Gamble își poate
îmbunătăți afacerea, legând identificarea prin Frecvență Radio (Radio-Frequency
Identification – RFID) la internet. Conceptul era simplu, dar puternic. Dacă toate
obiectele din viața de zi cu zi sunt echipate cu identificatoare și dețin plăci de rețea
wireless, aceste obiecte pot comunica între ele și pot fi administrate de calculatoare.
Într-un articol din anul 1999 pentru Jurnalul RFID, Ashton a scris: „dacă ar
exista computere care ar ști tot ce este de știut despre orice lucru existent, folosind
datele adunate cu ajutorul senzorilor sau prin alte metode, dar fără nici un ajutor uman,
omenirea ar fi capabilă să urmărească orice, implicit să reducă pierderile și să scadă
costurile”[1]. RFID și tehnologia bazată pe senzori permit calculatoarelor să observe,
identifice și să înțeleagă întreaga lume fără limitările datelor introduse de om.
Deși Ashton a fost pionierul IoT, primul dispozitiv dotat cu această tehnologie a
fost creat cu aproximativ un deceniu înainte. În urma unei provocări lansate în octombrie
1989 la conferința INTEROP, John Romkey creează primul dispozitiv dotat cu IoT.
Președintele conferinței, Dan Lynch, l-a provocat pe Romkey să-și conecteze prăjitorul
de pâine la Internet. Acesta din urmă a reușit în anul 1990, să conecteze aparatul la un
calculator și utilizând stiva de protocoale TCP putea să-l pornească.
Totuși la momentul dezvoltării viziunii lui Ashton, IoT avea nevoie de inovații
majore pe plan tehnologic, problema principală fiind interconectarea tuturor obiectelor
electronice de pe planetă. Tipul de conectivitate wireless implementată în echipamente
trebuia de asemenea descoperit.

Figura 13. Estimarea numărului de echipamente interconectate având la bază IoT


380 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Astăzi, aceste obstacole au fost depășite. Costurile necesare implementării unei


rețele wireless au scăzut considerabil, iar odată cu apariția Protocolului de Internet
versiunea 6 (Internet Protocol version 6 - IPv6) s-a putut crea și alocarea de adrese către
miliarde de echipamente (10 36). Companiile de echipamente încorporează tehnologia
wireless sau celulară într-o gamă foarte largă de dispozitive.
Protocolul „Internet Protocol version 6” (IPv6) lucrează la același nivel din stiva
de protocoale TCP/IP ca IPv4, nivelul Internet, sau în stiva de protocoale OSI, la cel de-
al 3-lea nivel (rețea). Asemănător cu IPv4, IPv6 este un protocol datagramă fără
conexiuni prealabil stabilite, nesigur ce are ca prim scop adresarea și rutarea pachetelor
între hosturi. Faptul că IPv6 nu are conexiuni stabilite în prealabil înseamnă că livrarea
pachetelor către destinație nu este garantată. De livrarea la destinație, corectarea erorilor
și recuperarea pachetelor pierdute se ocupă un alt protocol dintr-un strat superior din
stiva de protocoale TCP/IP, cum ar fi Transmission Control Protocol (TCP).
Adresele IPv6 sunt scrise ca hexteți cu două puncte (:) între ele, iar fiecare
valoare de 16 biți este afișată în hexazecimal, folosind numerele de la 0 la 9 și litere de la
A la F. Un exemplu de adresa IPv6 este 2001:DB8:ACAD:1:93A:9F:EFE5:246C. Nu
este neobișnuit ca adresele IPv6 să aibă secvențe consecutive de zerouri. În astfel de
cazuri, exact una dintre acele secvențe poate fi eliminată. Astfel 2001:db8:31:0:0:0:0:1
devine 2001:db8:31::1, iar adresa loopback IPv6 0:0:0:0:0:0:0:1 devine ::1.

Figura 14 – Amplasarea protocolului IPv6 în stiva de protocoale OSI, TCP/IP

Un pachet IPv6 este format dintr-un header IPv6 și de un payload IPv6.


Payloadul IPv6 este format din 0 sau mai multe headere de extensie IPv6 și un alt
protocol dintr-un strat superior, cum ar fi Internet Control Message Protocol version 6
(ICMPv6), un segment TCP, un mesaj UDP.

Figura15. Structura unui pachet IPv6


ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 381

Există mai multe tipuri de adresări IPv6, diferite față de cele din IPv4:
 Link local – sunt folosite pentru a comunica doar local, și nu pot fi rutate în
Internet. Aceste adrese încep cu FE80 și sunt folosite pentru funcțiile de
administrare internă a IPv6. (Ex: FE80::/10)
 Site local – reprezintă echivalentul spațiului de adrese private RFC 1918 în
IPv4. Totuși, IETF a găsit situația în care diferite organizații folosesc același
spațiu de adresare, lucru ce nu este de dorit; astfel au creat adrese „unique site
local” unde fiecare primește un bloc selectat aleator de la spațiul de adrese
începând cu FD. (Ex: FD00::/8)
 Multicast – reprezintă un grup de adrese, deci fiecare pachet trimis către o
adresă multicast este primită de toți membrii grupului. Adresele multicast
încep cu FF și pot fi folosite pentru aplicații unde mai multe hosturi trebuie să
primească aceeași informație în același timp, cum ar fi transmisii video în
direct și de asemenea pentru configurarea automata și descoperire de rețele
(autoconfiguration și discovery). (Ex: FFX1::/16 echivalentul adresei
127.0.0.1/8 din IPv4)
Spațiul de acoperire a rețelelor mobile a crescut exponențial în ultimii ani,
majoritatea rețelelor furnizând cel puțin viteze de 100 mb/s. De asemenea, durata de viață
a bateriilor a fost mult îmbunătățită, pentru a răspunde cerințelor din piață și a acoperi
necesitatea folosirii în atâtea tipuri de dispozitive mobile, iar încărcarea solară a fost
încorporată în numeroase dispozitive. Conform unui studiu realizat în anul 2015,
compania Cisco susține că, până în anul 2020, vor există 50 de miliarde de dispozitive
interconectate.
Evoluția spectaculoasă a determinat numeroase guverne să investească masiv în
IoT. În 2015, guvernul Marii Britanii a alocat 40 de milioane de lire pentru cercetare în
domeniul dispozitivelor inteligente. Înainte, premierul Chinei, Wen Jibao, a denumit IoT-
ul un domeniul cheie pentru industria chineză.
IoT descrie un sistem unde obiectele din lumea fizică și senzorii din interiorul său
atașați de aceste obiecte, sunt conectate la rețele wireless și conexiuni cablate. Acești
senzori folosesc diferite tipuri de conexiune locală: RFID, Near Field Communication
(NFC), wireless sau Bluetooth. Senzorii pot avea de asemenea conectivitate Sistem
Global pentru Comunicații Mobile (Global System for Mobile Communications-GSM),
Third Generation (3G) și Long-Term Evolution (LTE).
Tipul de dată folosit în tehnologia IoT poate fi de dimensiune mică și frecvență în
transmitere. Numărul de dispozitive sau noduri care se conectează la rețea, este de
asemenea mai mare în IoT decât în tehnicile tradiționale de computerizare. Comunicările
mașină cu mașină și inteligența suportată de aceste dispozitive vor permite afacerilor să
automatizeze diferite sarcini de bază, fără a depinde de aplicații și servicii centrale sau
bazate pe tehnologii cloud.
Datorită vastelor posibilități de utilizare a senzorilor, IoT propune:
 Conectarea lucrurilor artificiale, dar și a celor vii.
Teste și încercări timpurii arată că rețelele IoT au început prin conectarea
echipamentelor industriale. Acum viziunea IoT s-a extins de la echipamente
industriale la obiecte din viața de zi cu zi.
Tipurile de dispozitive dotate cu această tehnologie variază de la turbine pe
gaz la automobile. Spre exemplu, Uzină Bavareză de Motoare (Bayerische
382 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Motoren Werke AG – BMW) și General Motors (GM) au făcut echipă cu AT&T


pentru a introduce tehnologia LTE în mașinile lor, pentru a schimba modul în
care oamenii călătoresc.
De asemenea, această tehnologie este extinsă și la organisme vii, cum ar fi
plantele, animalele de fermă și oamenii. În Essex, Anglia, există un proiect de
monitorizare al vacilor folosind date colectate de la senzori special creați, pentru
a verifica starea de sănătate și comportamentul în cireadă.
Pentru oameni există deja diferite tipuri de dispozitive cum ar fi brățările
pentru sport sau ceasurile inteligente. Un astfel de ceas poate fi folosit ca
pedometru, poate monitoriza caloriile arse, bătăile inimii și multe alte date de
acest fel. Totuși, nu este vorba doar de a te menține în formă. Există multe
aplicații sau dispozitive care pot monitoriza glicemia pentru persoanele care
suferă de diabet. În viitor se dorește crearea de dispozitive care pot fi configurate
de către doctori, în funcție de nevoile speciale ale fiecărui pacient în parte.
Însă cea mai ușor de ținut minte ca aplicație este “casa inteligentă”. Sisteme
de securitate permit monitorizarea casei chiar și atunci când persoana nu este
acasă. Majoritatea obiectelor electrice pot fi conectate la telefonul mobil, iar
utilizatorul poate modifica de la aerul condiționat, încălzire, televizor, calculator,
sisteme video și audio până la becuri. De asemenea technologia IoT permite
urmărirea copiilor sau animalelor lăsate singure în casă, acesta fiind un lucru
foarte util și folosit la scară largă.
 Folosirea senzorilor pentru colectarea datelor. Obiectele fizice care sunt
conectate vor deține unul sau mai mulți senzori. Fiecare senzor va monitoriza o
condiție specifică cum ar fi locație, vibrare, mișcare sau temperatură. În IoT,
acești senzori se vor conecta unul la celălalt, iar mai apoi la sisteme care pot
transforma informațiile venite din partea senzorilor, pentru a putea fi intepretate
de către cititor. Acești senzori pot produce noi informații utile, pentru industrie
sau pentru oameni de rând.
 Schimbarea tipului de obiecte care pot comunica peste o rețea IP. În trecut
oamenii comunicau cu mașini și cu alți oameni. Dacă toate echipamentele ar
putea avea putere de comunicare, știința ar evolua mai rapid, putând să anticipeze
sau să elimine actualele probleme pe orice plan, iar echipamentele care vor
funcționa pe baza tehnologiei IoT vor partaja informații despre starea lor și
despre mediul înconjurător cu oameni, sisteme software sau alte mașini. Viitorul
evoluției prevede că fiecare lucru va avea o amprentă digitală și conectivitate,
ceea ce înseamnă că vom putea identifica, urmări și comunica cu obiectele.
În momentul actual există numeroase temeri legate de dispozitivele inteligente.
Acestea apar în special din creșterea și dezvoltarea rapidă care a condus în numeroase
cazuri la nerespectarea unor măsuri de securitate. Unele dintre aceste breșe de securitate
pot pune serios intimitatea și chiar viața oamenilor în pericol. Dispozitivele controlate de
calculator dintr-o mașină s-au dovedit vulnerabile în fața atacatorilor cibernetici, lăsându-
i pe aceștia să controleze părți vitale ale mașinii. Unul dintre cele mai recente cazuri de
atacuri cibernetice asupra IoT a fost un atac Distribuit de Negare a Serviciilor
(Distributed Denial of Service - DDoS) asupra unui principal furnizor de servere pentru
nume de domeniu (Domain Name Server - DNS), Dyn, cauzând întreruperea funcționării
unor site-uri web importante.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 383

Este important să luăm în considerare amenințările de securitate şi


vulnerabilitățile atunci când se planifică o implementare de rețea. Toate dispozitivele de
rețea trebuie să fie securizate. Acestea includ routerele, switchurile, dispozitivele de
utilizator final şi chiar dispozitivele de securitate. Rețelele trebuie să fie protejate
împotriva software-ului rău intenționat, cum ar fi virușii, caii Troieni şi viermii. Software-
ul antivirus poate detecta mulți viruși şi aplicații cai Troian şi poate preveni împrăștierea
lor în rețea. Cel mai eficient mod de combatere a atacului cu un „vierme” este descărcarea
actualizărilor de securitate de la un furnizor de sistem de operare şi „peticirea” tuturor
sistemelor vulnerabile.
Rețelele trebuie să fie de asemenea protejate de atacurile de rețea. Atacurile de
rețea pot fi clasificate în trei mari categorii: de recunoaștere, atacuri de acces şi denial of
service. Există multe moduri de protecție a unei rețele de atacurile de rețea.
 Serviciile de securitate de rețea Authentication, Authorization, și Accounting
(AAA, sau „triple A”) oferă cadrul primar al setării controlului accesului pe
un dispozitiv de rețea. AAA este un mod de control asupra celor ce au permis
accesul la rețea (autentificare), ce pot face în acest timp (autorizare) şi
vizualizarea acțiunilor efectuate în timpul accesări rețelei (contabilitate).
 Un firewall este unul dintre cele mai eficiente instrumente de securitate
disponibile pentru protejarea utilizatorilor interni din rețea de amenințările
externe. Un firewall se află între două sau mai multe rețele şi controlează
traficul dintre ele şi ajută la prevenirea accesului neautorizat.
 Pentru a proteja dispozitivele de rețea, este important să utilizăm parole
puternice. De asemenea, atunci când accesăm dispozitivele de rețea de la
distanţă, este recomandat să activăm SSH, în schimbul Telnet nesecurizat.
O altă temere o reprezintă fragmentarea platformei IoT. Aceasta se datorează în
mare parte din lipsa standardelor tehnice, dând naștere la situația actuală unde există
numeroase variațiuni atât din punct de vedere hardware cât și din punct de vedere
software.
Impactul asupra mediului este văzut și el ca o problemă destul de importantă
deoarece în urma evoluției tehnologice rămân o mulțime de dispozitive învechite,
înlocuite cu cele noi. Acestea sunt foarte nocive deoarece conțin materiale sintetice,
extrem de toxice pentru mediu. Fără o politică de reciclare se poate ajunge ușor la un
dezastru ecologic.
Putem sublinia faptul că în ziua de astăzi calculatorul reprezintă un bun
indispensabil, chiar dacă nu este folosit într-un mod intenționat deoarece acestea sunt
integrate în aproape orice domeniu din lumea modernă. De la mașini inteligente, care
oferă funcții de navigare și frânare automată, până la infrastructură, folosite la sisteme
electrice, cum ar fi controlul traficului aerian. O lume modernă pare imposibilă fără
calculatoare menite să colecteze și să analizeze date, iar acest lucru face posibilă
îmbogățirea cunoștințelor despre tot ce ne înconjoară.
384 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Bibliografie
[1] Popa M., „Bazele teoretice ale reţelelor de calculatoare”, Bucureşti, Ed. Univ. din Bucureşti, 2004.
[2] Andrew S. Tannenbaum , „Computer Networks”, Editura Pearson Education, 2002.
[3] Popa M., Popa Mariana, „Grafuri și Rețele”, Ed. Fundația România de Mâine, Bucureşti, 2003.
[4] Rick Graziani, „IPv6 Fundamentals”, Editura Cisco Press, 2012.
[5] ASHTON, K. „That ‘Internet of Things’ Thing. In the real world, things matter more than ideas.” Jurnalul
RFID, 22 June 2009.
[6] „FFIEC Information Technology Examination Handbook”, Septembrie 2016.
[7] CURTIN, M. „Introduction to Network Security”, compania Megasoft Online, 1997.
[8] Dr. KANG, L. „Internet of Things:Wireless Sensor Networks”, International Electrotechnical
Commission, Elveția, 2014.
[9] MUKHERJEE, N. şi NEOGY, S. „Building Wireless Sensor Networks: Theoretical and Practical
Perspectives”, CRC Press, 2016.
1.12 Ideile inovatoare ale apariției sistemului Internet
Marin Vlada1
Universitatea din Bucurști

MOTTO:
„As We May Think” („Aşa cum am putea crede”)
Vannevar Bush, 1945

„The collection of people, hardware, and software – the multiaccess computer


together with its local community of users – will become a node in a geographically
distributed computer network. Let us assume for a moment that such a network has
been formed.” J. C. R. Licklider,
Robert Taylor, The Computer as a Communication Device, 1968

„Progresele tehnologice continuă să transforme modul în care noile generaţii trăiesc,


muncesc, se joacă sau învaţă.”
Intel® Learning Series, 2013

Apariţia şi dezvoltarea sistemului Internet s-a realizat prin cercetări şi rezultate în


cadrul proiectului militar ARPANET (Advanced Research Projects Agency Network), de
la Departamentul Militar al Apărării al SUA, desfăşurat în perioada 1962-1975, şi care a
condus la prima reţea de calculatoare ce a implementat „packet switching” şi noul
protocol TCP. Ideile care au dat naştere la crearea sistemului Internet au fost gândite de
oameni ca: Vannevar Bus (1890-1974), Joseph Carl Robnett Licklider (1915-1990),
Larry Roberts, Paul Baran, Douglas Engelbart (1925-2013), Vint Cerf, Robert Kahn,
Robert Metcalfe, Ted Nelson, Tim Berners-Lee, Marc Andreesen, Linus Torvalds,
consideraţi ca pionieri ai Internetului.

Argumente şi context privind dezvoltarea Internetului

Succesul şi dezvoltarea sistemului Internet, ce înglobează progrese ale ştiinţei şi


tehnologiei, se datorează diversităţii şi flexibilităţii unor factori ce sunt permanent într-o
dinamică rapidă şi chiar haotică:
 factori ştiinţifici, tehnologici, sociali, culturali, economici, politici, militari
etc., factori ce au influenţat conceperea, proiectarea şi dezvoltarea sistemului
Internet; un exemplu ar fi 4 octombrie 1957, când în URSS a fost lansat în
spaţiu cosmic satelitul Sputnik (83.6 kg), primul satelit artificial al
pamântului, şi când liderii SUA erau îngrijoraţi de un prim atac sovietic ce ar

1
M. Vlada, Idei inovatoare şi pionierii Internetului, 2013, http://www.c3.cniv.ro/?q=2013/internet,
http://www.elearning.ro/idei-inovatoare-si-pionierii-internetului
386 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

putea fi un atac preventiv; a fost momentul când la Departamentul Militar al


Apărării SUA au început mai multe proiecte de cercetare; drept urmare, la 31
ianuarie 1958 a fost lansat Explorer 1 (14 kg.), primul satelit artificial lansat
de SUA, fiind al treilea după sateliţii URSS Sputnik 1 şi 2.

ARPANET logical map, March 1977, Sursă: http://en.wikipedia.org/wiki/ARPANET

 factori privind ideile inovatoare şi cercetările din ştiinţă şi tehnică, invenţiile şi


descoperirile ce au influenţat experimente, demonstraţii şi realizări în
dezvoltarea sistemului Internet; de exemplu, rolul şi influenţa lui Vannevar
Bush în timpul celui de-Al Doilea Război Mondial, ce a facilitat relaţii şi
colaborări între guvernul federal al SUA, comunitatea ştiinţifică americană şi
mediul de afaceri; după război acesta a ajutat la instituţionalizarea acestor
colaborări şi, drept urmare, s-au creat organizaţii precum National Science
Foundation (NSA) şi Advanced Research Projects Agency (ARPA); de
asemenea, în anul 1974, Vint Cerf (cunoscut pentru unii ca „părintele
Internetului”) şi Robert Kahn au scris un nou protocol TCP (Transmission
Control Protocol), descris în articolul „A Protocol for Packet Network
Intercommunication” şi care va deveni standardul acceptat pentru Internet.

Sistemul Internet şi-a inceput implementarea prin cercetări şi rezultate în cadrul


proiectului militar ARPANET (Advanced Research Projects Agency Network), de la
Departamentul Militar al Apărării al SUA (U.S. Department of Defense), desfăşurat în
perioada 1962-1975, şi care a condus la prima reţea de calculatoare ce a implementat
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 387

„packet switching” şi noul protocol TCP. Prin implicarea lui Larry Roberts de la
Massachusetts Institute of Technology (MIT) ce a realizat arhitectura reţelei de
calculatoare, s-a obţinut o realizare revoluţionară în ziua de 29 octombrie 1969 (29
octombrie este declarată Ziua Internetului), la ora 22:30, când s-a transmis un mesaj de la
un calculator (SDS Sigma 7, Scientific Data Systems, ce concura cu IBM 360) aflat în
laboratorul de la University of California, Los Angeles (UCLA) (condus de profesorul
Leonard Kleinrock), la un calculator (SDS 940) de la Stanford Research Institute (SRI).
Dezvoltarea şi succesul sistemului Internet se datorează studiilor, cercetărilor,
experimentelor şi rezultatelor în cadrul proiectelor destinate pentru reţele de calculatoare
şi comunicaţii, protocoale de comunicaţii, conexiunea la Internet, utilizarea serviciului de
e-mail, World Wide Web, dezvoltarea de pagini web, limbaje şi tehnologii web.
Dacă în deceniul 70 (secolul XX), la nivel universitar, erau câteva discipline
proprii informaticii, astăzi există domenii complexe ale Informaticii: Programare şi
Software Engineering, Reţele de calculatoare şi Computing, Baze de date şi sisteme
informatice, Programare şi dezvoltare Web, Grafică pe calculator şi realitate virtuală,
Geometria computaţională, Modelare şi simulare, Calcul paralel şi distribuit, Inteligenţă
artificială şi sisteme expert, Ingineria cunoaşterii etc.
Complexitatea aplicaţiilor de utilizare a calculatorului în diverse domenii de
activitate (inclusiv în educaţie) a determinat perfecţionarea atât a sistemelor de operare şi
limbajelor de programare, cât şi a tehnologiilor şi platformelor. Au fost concepute şi
elaborate noi sisteme de operare, noi limbaje de programare, noi tehnologii. Dacă în anii
’70 inventarea şi utilizarea microprocesorului au însemnat o revoluţie în domeniul
arhitecturii calculatoarelor, în anii ’90 a fost o adevărată revoluţie atât în domeniul
reţelelor de calculatoare, cât şi în domeniile limbajelor de programare (Java şi
JavaScript) şi sistemelor de operare (Linux, Windows). Astfel, au apărut tehnologiile
Web. Trebuie menţionate dezvoltarea şi
evoluţia limbajului C++ care în anii ’80
a implementat şi dezvoltat modelul
orientat spre obiecte (modelul
programării obiectuale are rădăcini în
limbajele SmallTalk, Lisp etc.) şi
programarea orientată spre obiecte
(OOP-Object Oriented Programming);

La începutul anilor ’90 a apărut


limbajul HTML (Hypertext Markup
Language), ce a determinat răspândirea
paginilor Web statice şi dezvoltarea
explozivă a sistemului WWW (World
Wide Web). Necesitatea elaborării
paginilor Web dinamice a determinat
apariţia diverselor tehnologii:
JavaScript, JavaServer Pages (JSP),
VBScript, PHP, ASP, Macromedia Dreamweaver etc., tehnologii destinate pentru
aplicaţii server, iar altele pentru aplicaţii client. În domeniul aplicaţiilor grafice dinamice
şi interactive ultimii 10 ani au fost dominaţi de tehnologiile Java şi Flash.
388 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Idei inovatoare şi pionierii Internetului

Ideile care au dat naştere la crearea sistemului Internet au fost găndite – unele cu
mult înainte – de oameni ca Vannevar Bus (1890-1974), Joseph Carl Robnett Licklider
(1915-1990), Lawrence (Larry) Roberts, Paul Baran, Douglas Engelbart (1925-2013),
Vint Cerf, Robert Kahn, Ted Nelson, Tim Berners-Lee, Marc Andreesen, Linus Torvalds,
consideraţi ca pionieri ai Internetului:

 1945 – maşina teoretică „Memex”, ce reprezintă ideile lui Vannevar Bush


pentru automatizarea şi îmbunătăţirea memoriei umane (the automation or
augmentation of human thought) descrise în articolul „As We May Think” din
Atlantic Monthly. În articol se descrie o maşină/un dispozitiv teoretic care să
extindă competenţele memoriei umane prin intermediul calităţii asociative a
memoriei în procesul prelucrărilor, aşa cum se realizează prin amintiri. Acest
dispozitiv avea funcţii de stocare şi procesare a informaţiilor prin intermediul
unor componente: birou cu un ecran de vizualizare a diverselor informaţii,
butoane de selecţie, dispozitiv de stocare pe microfilm (a se vedea The von
Neumann Architecture of Computer Systems, First Draft of a Report on the
EDVAC, John von Neumann's 1945, http://www.wps.com/projects/EDVAC/).
Un utilizator „Memex” avea posibilitatea să utilizeze diverse legături între
documente prin conceptul de „hypertext” şi prelucrare asociativă;
 1960 – lucrarea „Man Computer Symbiosis”, concepută de J.C.R. Licklider, în
care era descrisă ideea principală de utilizare a calculatoarelor în timp real,
prin calcul interactiv, ceea ce ar face munca de rutină si prelucrarea
informaţiilor într-un mod mult mai eficiente. Viteza de procesare şi utilizarea
de interfeţe comode, uşor de folosit, ar permite oamenilor să interacţioneze cu
computerele în luarea deciziilor pentru rezolvarea problemelor complexe, aşa
cum sunt în domeniul militar (interacţiunea Om - Computer). J.C.R. Licklider
a fost unul dintre cei mai influenţi oameni pentru dezvoltarea informaticii. În
calitate de director (în perioada 1962-1966) al Information Processing
Techniques Office (IPTO), o divizie ARPA, a dat prioritate de finanţare
pentru multe proiecte de cercetare. Acestea au condus la inventarea pentru
„mouse”, „hypertext”, „windows”, multe din ideile sale au anticipat apariţia
interfeţelor grafice, e-commerce, biblioteci digitale, online banking, din aceste
motive a fost numit „Computing's Johnny Appleseed”, omul ce a prevăzut
apariţia erei digitale;
 1966 – Robert (Bob) Taylor, director în perioada 1966-1969 al Information
Processing Techniques Office (IPTO), a facilitat crearea reţelei de calculatoare
de la ARPA, arhitectul acestei reţele fiind Lawrence (Larry) Roberts ce a fost
adus special de la MIT (Lincoln Laboratory). Reţeaua ARPANET a fost
implementată folosind „packet switching” şi reprezinta baza sistemului
Internet. Arhitectura ARPANET s-a bazat pe ideile lui Paul Baran, care a
inventat un nou sistem cunoscut sub numele de „packet switching” (schimb de
pachete). Baran a sugerat ca reţeaua să fie o reţea distribuită astfel încât să
facă faţă în cazul unui atac nuclear. Mitul că Internetul a fost creat ca o reţea
de comunicaţii pentru cazul unui război nuclear poate fi adevărat, dar scopul
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 389

principal al creatorilor ARPANET a fost de a facilita comunicaţiile normale


între cercetători;
 1973 – Este inventată tehnologia Ethernet de către Bob Metcalfe, David
Boggs, Chuck Thacker şi Butler Lampson de la Xerox PARC. În anul 1979
este fondată 3Com Corporation de către Robert Metcalfe si Howard Charney,
Bruce Borden, Greg Shaw. Legea Metcalfe prevede că valoarea unei reţele de
telecomunicaţii este proporţională cu pătratul numărului de utilizatori
conectaţi (n2). Legea este formulată pentru prima dată în această formă de
către George Gilder în 1993 și atribuită lui Robert Metcalfe în ceea ce priveşte
tehnologia Ethernet;
 1975 – Douglas Carl Engelbart (1925-2013), ca director la SRI (Stanford
Research Institute, Augmentation Research Center), a avut contribuţii
remarcabile la dezvoltarea diverselor tehnologii (human-computer interaction,
augmenting human intellect, mouse, hypertext, networked computers,
graphical user interfaces, groupware, interactive computing) şi pentru care a
fost medaliat cu ,America's highest technology award”, în anul 2000, „For
creating the foundations of personal computing including continuous real-
time interaction based on cathode-ray tube displays and the mouse, hypertext
linking, text editing, on-line journals, shared-screen teleconferencing, and
remote collaborative work”. Dr. Engelbart a facilitat transferarea la Xerox
PARC a unor specialişti, unde au fost create conceptele: „bit-map”, „display”,
„icon”, „desktop”, „overlapping windows”. Când Steve Jobs a creat Apple
Computer, Douglas Engelbart a înţeles imediat ce urma să fie MacIntosh.
Douglas Engelbart este considerat inventatorul mouse-ului. SRI a emis licenţe
pentru mouse în numele Xerox şi Apple Computer. Mouse-ul nu a fost adoptat
ca uz general decăt după anii 1980, când a inceput utilizarea lui la
calculatoarele Apple;
 1978 – Vinton (Vint) Cerf și Robert Kahn sunt inventatorii protocolului de
reţea TCP/IP (Transmission Control Protocol / Internet Protocol), în anul
1974. Vint Cerf ca manager al programului „Internet ARPA” la ARPA, în
anul 1978, a împărţit protocolul TCP în două părţi, una pentru pachete de
rutare şi alta un protocol separat Internet Protocol (IP). Protocolul TCP va
rămâne responsabil pentru împărţirea mesajelor în datagrame, reasamblare
mesaje, detectarea erorilor, aranjarea pachetelor în ordinea corectă şi
retrimiterea unor pierderi de pachete. Noul protocol a fost numit TCP/IP.
Acesta a devenit standard pentru toate comunicaţiile Internet. În martie 1982,
Departamentul Apărării al SUA a declarat TCP/IP ca standard pentru toate
reţele de calculatoare din domeniul militar. Vinton G. Cerf și Robert E. Kahn
au primit AM Turing Award, în anul 2004, premiu considerat a fi echivalent al
Premiului Nobel pentru domeniul calculatoarelor. Vint Cerf considerat „the
father of the Internet”, a fost medaliat cu America's highest technology award,
în anul 1997, şi cu prima medalie Queen Elizabeth Prize for Engineering, în
anul 2013;
 1970-1990 – Proiectul Xanadu considerat primul proiect de hypertext, fondat
de Ted Nelson, în anul 1960, după ideile lui Vannevar Bus (1890-1974). Ted
390 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Nelson a publicat rezultatele sale în lucrările Computer Lib/Dream Machines


(1974) şi Literary Machines (1981);
 1989/1990 – Inventarea WWW (World Wide Web) de către englezul Tim
Berners-Lee, absolvent de la Oxford, şi care la CERN (European
Organization for Nuclear Research, Laboratorul European pentru Fizica
particulelor din Geneva) a scris programul „Enquire” (Întreabă) pentru a fi un
„substitut de memorie” („memory substitute”) în folosul său personal pentru a-
şi aminti de conexiuni între diferite persoane ţi proiecte de la activităţile din
laboratorul unde lucra. În anul 1990 a scris Hypertext Transfer Protocol
(HTTP) pentru a comunica documente hypertext pe Internet, apoi a conceput
un sistem de adrese pe Internet numit Uniform Resource Identifier (URI),
adică Uniform Resource Locator (URL). De asemenea, a scris un program
destinat unui client Internet (browser), numit „WorldWideWeb”, pentru a
prelua şi vizualiza documente hypertext. Paginile hypertext au fost formatate
folosind limbajul Hypertext Markup Language (HTML). A conceput şi scris
primul server web (software) care stochează pagini web pe un calculator şi le
face disponibile pentru a fi accesate de către alţii, oriunde şi oricând din
Internet, cunoscut sub numele de „info.cern.ch”. În anul 1991, Tim Berners-
Lee a făcut disponibile pe Internet browserul său WorldWideWeb şi software-
ul de server web, a postat anunţuri pe mai multe grupuri de ştiri. Multi
entuziaşti ai calculatoarelor din întreaga lume au început înfiinţarea propriilor
servere de web. Visul său – crearea unui spaţiu informaţional global – se
realizează în cele din urmă. În anul 1994, Tim Berners-Lee fondează World
Wide Web Consortium (W3C);
 1994 – Marc Andreesen, în anul 1992, încă student la National Center for
Supercomputing Applications (NCSA) de la University of Illinois, a decis să
dezvolte un browser care a fost mai uşor de utilizat şi mai bogat grafic
(browser-ul Mosaic). Succesul programului Mosaic a fost atât de mare încât a
fost pe prima pagină a secţiunii de afaceri din New York Times.
Administratorii de la NCSA au fost citaţi în articol, dar nu a existat nici o
menţiune despre Andreesen şi Eric Bina, colegul cu care colaborase la proiect.
Din aceste motive, atunci când a absolvit, în anul 1993, aceştia au preluat
programul pentru ei. Andreesen s-a mutat în Silicon Valley din California,
după care, cu alţi colegi, în anul 1994, a fondat Mosaic Communications
Corporation, nume schimbat apoi în Netscape Communications Corporation,
în urma unui conflict cu University of Illinois. La baza fundaţiei Mozilla stă
Netscape Communications Corporation şi navigatorul Netscape, versiunea 1.0
a acestuia fiind lansată pe 10 decembrie 1994, sub numele Netscape
Navigator. Aplicaţia s-a extins, devenind o soluţie completă pentru aplicaţii
internet, incluzând, printre altele, un navigator, client de poştă electronică şi
editor de cod HTML. Un pas important în istoria Firefox este deschiderea
codului sursă al suitei de aplicaţii Netscape Communicator, şi pornirea
proiectului Mozilla, la data de 31 martie 1998. În anul 1994 apare Yahoo!;
 1991 – Apare sistemul de operare Linux, un model de Software free şi Open
source (1991). Linus Torvalds, student în vârstă de 21 de ani de la
Universitatea din Helsinki, Finlanda, a început să elaboreze un sistem de
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 391

operare pentru Intel 80386 şi un driver de terminal. La data de 25 august 1991


Linus Torvalds a postat despre proiect informaţii într-un grup de ştiri pe
Usenet (comp.os.minix). După aceea, mulţi oameni au contribuit la proiect
prin multe linii de cod, realizând o comunitate de specialişti pentru finalizarea
şi perfecţionarea sistemului Linux. Astfel, s-a creat ideea voluntariatului
pentru crearea de produse software free şi open source. La momentul
respectiv, proiectul GNU General Public License (GPL) a creat multe din
componentele necesare pentru un sistem de operare gratuit. Sistemul Linux va
deveni pe scară largă cel mai important sistem de operare instalat pe diverse
servere. În anul 1998, Linus Torvalds a primit EFF (Electronic Frontier
Foundation) Award Pioneer Award. De asemenea, în anul 2012, împreună cu
Shinya Yamanaka a primit Millennium Technology Prize al Academiei
Tehnice din Finlanda („in recognition of his creation of a new open source
operating system for computers leading to the widely used Linux kernel”).
 1995-2010 – Evenimentele importante privind sistemul Internet şi tehnologiile
web: se lansează sistemul de operare Windows 95 împreună cu Internet
Explorer, Amazon.com şi motorul de căutare Altavista (1995), apare
platforma şi limbajul Java de la Sun Microsistem (1995), apare limbajul PHP
(1995), apare limbajul pentru baze de date MySQL (1995) – produsele
software LAMP sunt reprezentate de Linux, Apache, MySQL, Perl şi Python,
apare limbajul Java Script (1996), se înfiinţează Google (1998), se lansează
enciclopedia liberă Wikipedia (2001), se lansează reţeaua socială Facebook
(2004), se lansează YouTube (2005), Apple lansează iPad, deschizând era
tabletelor şi un nou mod de a accesa Internetul (2010).

Bibliografie
1. Internet Pioneers, http://www.ibiblio.org/pioneers/index.html
2. ARPANET, http://en.wikipedia.org/wiki/ARPANET
3. EFF (Electronic Frontier Foundation Pioneer Award) Pioneer Award, http://en.wikipedia.org/
wiki/EFF_Pioneer_Award
4. Linux kernel , http://en.wikipedia.org/wiki/Linux_kernel
5. Vannevar Bush, As We May Think, 1945, http://www.theatlantic.com/magazine/archive/1945/07/as-we-
may-think/303881/
6. Robert W. Taylor, In Memoriam: J. C. R. Licklider (1915-1990), Systems Research Center, Palo Alto,
California , Digital Equipment Corporation, 1990
7. Memex, http://memex.org/licklider.pdf
8. A Biographical Memoir by Robert M. Fano, National Academies Press, Washington D.C., 1998,
http://www.nap.edu/html/biomems/jlicklider.pdf
9. The von Neumann Architecture of Computer Systems , First Draft of a Report on the EDVAC, John von
Neumann's 1945, http://www.wps.com/projects/EDVAC/
10. Douglas Carl Engelbart (1925-2013) , http://www.dougengelbart.org/
11. Internet History, http://www.livinginternet.com/i/ii.htm
12. Tim Berners-Lee, CERN, Information Management: A Proposal, http://www.w3.org/History/
1989/proposal.html
13. World Wide Web Consortium (W3C) , http://www.w3.org/
14. 20 de ani de Internet, HotNews, http://economie.hotnews.ro/stiri-20_ani_internet-15975871-cronologie-
mom...
15. M. Vlada, http://ebooks.unibuc.ro/informatica/Birotica/index.htm
16. M. Vlada, http://mvlada.blogspot.ro/2013/11/2013-20-de-ani-de-internet-in-romania....
17. M. Vlada, Web Programming & Technologies, http://www.unibuc.ro//prof/vlada_m/
Web_Programming.php
1.13 From recursivity to the Turing universal machine and
Horn clauses1

Marin Vlada (1), Adrian Adăscăliţei (2),


Universitatea din Bucurști, (2), Universitatea Tehnică „Gh. Asachi” din Iași

The article describes the contribution of Romanian scientists in several fields of scientific research,
on the fundamentals of calculus theory, the fundamentals of cybernetics, the algebra theory of
automatic mechanisms, the mathematical logic applied to the construction and use of the first
electronic computers, etc. In the 1960s, Romania was considered among the first countries in the
world (after the USA, England, USSR, Germany, France, Japan, Austria, the Netherlands, Italy,
Denmark) on research and efforts to build an electronic computer. The Romanian School of
Mathematics developed under the influence of the Romanian mathematicians who supported their
doctorates with prestigious mathematicians from France, Germany, and Italy. Mathematician
Gabriel Sudan (1899-1977) published in 1927 (before W. Ackermann, 1928) the first recursive
function that is not primitive recursive. Dr. Ştefan Odobleja (1902-1978) - a professional military
doctor, is one of the forerunners of generalized theoretical cybernetics and Artificial Intelligence,
the author of "Consonant Psychology," published in Paris for the first time in 1938. In the 1950s,
Grigore Moisil (1906-1973) developed a new theory of finite automata and proposed what is known
today as "Łukasiewicz–Moisil algebras" and which Gr. Moisil applied to the logic of commutation
circuits, which is an important contribution to the development of computer science.

Contribution of Romanian scientists to the appearance of electronic


computers
MOTTO:
“Sciences and theories have an evolution and development, but also a dynamic
of concepts and terms that can change through new meanings and new valences.
Man is the result of his own efforts for knowledge and learning, and of the influences of
society (phenomena, processes, decisions, etc.) which works on him. The destiny of the people,
but also the destiny of the institutions (structures for organizing the activities of a human
society) are influenced and guided by a multitude of factors, events and moments resulting
from processes, phenomena (controlled or not by people), deliberate decisions at the
individually, collectively, regionally or globally levels.”
M. Vlada (ICVL & CNIV Projects, 2011)

Today, Informatics is part of the exact science class, together with Mathematics,
Physics and Chemistry. Mathematics is the oldest in the class of exact sciences, and
Informatics is the science with the most vertiginous development, with a revolutionary
impact for all other sciences, as well as for all fields of activity of human society.
Computer Science has emerged and developed as a science in the second half of the 20th
century, after 1960, when the modern computer (computing machine), designed by

1
The 12th International Conference on Virtual Learning ICVL 2017, http://c3.icvl.eu/2017/proceedings
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 393

mathematician John von Neumann (1903-1957) and based on computability of Alan


Mathison Turing's ideas (1912-11954). Informatics has developed theories, methods and
techniques of data / information / knowledge processing using computer performance that
is designed after the architecture of John von Neumann [29], the architecture based on A.
Turing's works (1936) describing the so-called Turing machine [30]. In 1943, Turing built
Colossus, the first electronic digital computer to decrypt German codes, and in the period
1945-1946 he contributed to the prototype of the Automatic Computing Engine,
physically made later in 1950. In 1946, Turing presented a paper what is the first detailed
project of a stored program calculator. At present, this architecture is recognized and
valid.

In Romania, one can speak about a high level of development and use of
Information and IT&C (Information and Communication Technology) as a result of the
scientific progress generated by mathematicians who, in collaboration with physicists,
engineers, etc. made possible the emergence of computers and, above all, the methods
and technologies of computer use in solving various problems in the scientific, technical,
economic, social, medical, military, etc. areas. Worldwide, in the 1940s, with the
development of newer and more powerful computing machines, the term Computer
(calculating man) referred to machines rather than to their human predecessors. It became
clear that these computers could be used for complex mathematical computations, and
computer science / computer science expanded to study computing in general.
Informatics began to be established as a distinct academic discipline in the 1950s and
early 1960s.
The first IT specialization in the world, the Cambridge Diploma in Computer
Science, began at the University of Cambridge at the Computer Laboratory in 1953. The
First Computer Specialization science / computer studies in the United States was at
Purdue University in 1962 ("Computer Science Pioneer Samuel D. Conte dies at 85",
Purdue Computer Science, July 1, 2002. Retrieved December 12, 2014.). In Romania, in
1960, at the initiative of Professor Grigore C. Moisil, the Department of Computing was
founded within the Faculty of Mathematics, which he graduated for many generations,
and in February 1962, through the efforts of Professor Grigore C. Moisil supported by the
professors at the Faculty of Mathematics and Physics, was established the "Computer
Center of the University of Bucharest" (CCUB) [37].

Initially, although many people believed that it was impossible for the field of
computers to be a scientific field of study at the end of the 1950s, it gradually became
accepted among the academic community. The IBM (International Business Machines)
brand that was part of this IT revolution. IBM 704 (1954) and then IBM 709 computers
were launched, which were widely used, although the cost of these computers was very
high. Over time, significant improvements have been made in the use and efficiency of
computing (computers). Modern society has seen significant change in IT users, from
users only by experts and professionals to users in all areas of activity. Initially,
computers were quite expensive and some human help needed for efficient use - partly
from computer operators. As computer adoption became more widespread and more
accessible, less human assistance was needed for common use [21]. We mention that in
the 1960s Romania was considered among the first countries in the world (after USA,
394 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

England, USSR, Germany, France, Japan, Austria, Holland, Italy, Denmark) on research
and efforts to build electronic computer. The Romanian School of Mathematics
developed under the influence of the Romanian mathematicians [32, 37] who took their
doctorates in the following countries (in 1860 the University of Iasi was founded, and in
1864, the University of Bucharest):
 France – the first doctors in mathematics in Paris: Spiru Haret (1878), David
Emmanuel (1879), Constantin Gogu (1882) and Nicolae Coculescu (1895),
followed by Gheorghe Titeica (1899), Dimitrie Pompeiu (1905), Traian
Lalescu (1908), Constantin Popovici (1908), Simion Stoilow (1916), Miron
Nicolescu (1928), Alexandru Ghika (1929), Alexandru Froda (1929), Nicolae
Teodorescu (1931), Tiberiu Popoviciu 1935), Caius Iacob (1935);
 Germany – Alexander Myller (1906), Victor Valcovici (1913), Gabriel Sudan
(1925), Dan Barbilian (1929);
 Italy – Octav Onicescu (1920), Gheorghe Vranceanu (1924), Gheorghe Mihoc
(1930), Ion Creanga (1930), Mendel Haimovici (1932).

After 1940, a leading role was played by the mathematician acad. Grigore C.
Moisil (in 1942 he transferred from Iasi to Bucharest) – today he was considered the
founder of the Romanian computer science, who with great vision and enthusiasm fought
and acted to concentrate the efforts of researchers and scientists for the appearance of the
computer electronics and use to solve complex problems in all areas of people's activity.
Moreover, he considers a mathematician's duty to get involved in creating a community
of scientists and scientists to collaborate on using computers to solve problems in society.
It forecasted a new era in world science and technology through the appearance and use
of the computer. "In the 1950s, Moisil developed a new theory of finite automata and
proposed what is known today as" Łukasiewicz–Moisil algebras (LMn algebras)"and
which Grigore Moisil (1906-1973) applied to the logic of commutation circuits, an
important contribution to the development of computer science. "Andrei Neculai [18]. In
[11] is presented the definition of Łukasiewicz–Moisil algebras (LMn algebras):

Definition. Let J  {1,2,...,n  1} . An n-valued Łukasiewicz-Moisil algebra (n≥2) or an LMn bf

algebra for short is a algebra A  (A, ,, ¯, (rj ) jJ ,0,1) of type (2,2,1, (1) jJ ,0,0)
such that:

(i) (A, ˅, ˄, ¯, 0, 1) is a De Morgan algebra,

(ii) the unary operations r1, r2, … ,rn-1 fulfil the following axioms:
for every x, y  A and every i, j  J ,
(L1) rj(x˅ y) = rjx˅ rjy
(L2) rjx˅(rjy)¯ = 1
(L3) rj o ri = ri
(L4) rj(x¯) = (rn-jx)¯
(L5) r1x ≤ r2x ≤ … ≤ rn-1x
(L6) if rjx ≤ rjy for every j  J , then x=y; this is the determination principle.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 395

If A fulfils (i) and only (L1)-(L5) we shall say that A is an LMn pre-algebra.

In this effort Gr. C. Moisil encountered obstacles, some of them even from some
colleagues in the university, or from the governing bodies of the country, obstacles
generated by the political context of that period, but also by the mentalities of some
reserved people in terms of change and evolution. For example, after 1970, he became
divergent with his former friend and colleague Nicolae Teodorescu, dean of the Faculty
of Mathematics, having to transfer his teaching to the Faculty of Philosophy and the
Faculty of Law. Professor Constantin P. Popovici's testimony is proof of this: Gr. C.
Moisil proposes to the Dean and the Teaching Council that a number of specialists
outside the faculty should be invited to hold some lessons on the current research of
mathematics and the use of computers in solving problems from the fields; The Teaching
Council did not approve this proposal, killing Moisil. Instead, he was helped by Mircea
Malita, colleague of the faculty, minister of education from 1970 to 1972. From his
memories of Moisil, Mircea Malita tells that when he was a minister, he often came to the
ministry because it insists greatly that it is time to start the computerization of Romania:
the establishment of computer schools (High schools and vocational schools),
departments of computer science transformed into faculties of computer science,
computer centers etc. However, Moisil managed to impose that in 1971, the specialization
of Informatics appeared at the major universities in Romania. On January 27, 1973, Gr.
C. Moisil wrote a memo to the Dean of the Faculty of Mathematics, I. Bucur, regarding
some proposals for the training of IT teachers and specialists, where he concluded:
"That's why I think, for the mathematical progress in our country, it is dangerous to teach
computer science somewhere outside the mathematics faculty"[14], reproduction after
[15]. The evolution of history gave Moisil justice. He succeeded, for a relatively briefly
period, to see the evolution of this specialization, because on May 21, 1973, he died in
Ottawa, Canada ,after having had several conferences at several US universities.

Internationally, Acad. Gr. C. Moisil, was recognized as the first Romanian having
contributions to the emergence and development of computers in Romania, being
awarded (post-mortem) with the Computer Pioneer Award by IEEE Computer Society [8,
34]: "For the development of the polyvalent logic switching circuits, the Romanian
School of Computing, and the support of the first Romanian computers." The award was
handed over to Moisil's wife, Viorica Moisil, in a ceremony held at the Government of
Romania in 1996 (fig. 1).

In Bucharest, at the Institute of Atomic Physics Bucharest - Măgurele, between


1954 and 1959, the first Romanian computers (first generation CIFA-1 (1957) and CIFA-
2 (1959) were realized, by the team led by eng. Victor Toma and under the scientific
leadership of Tudor Tanasescu. It followed in 1964, the computer built with transistors
(generation II), CET500. In 1969, the "Computer Center of the University of Bucharest"
(CCUB) was equipped with an American computer system IBM 360/30 (originally the
IBM 360 computer was in the Bucharest exhibition, after which it was bought from the
IBM subsidiary Vienna), which has been used to train many generations of computer
scientists, contributing to the IT program in Romania. In October 1965, Grigore C. Moisil
became Head of the Computer Engineering Department at the Faculty of Mathematics
396 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

and Mechanics where he taught Special Chapters of Calculus Machines and Programming
Theory. In 1966 an important event was the International Colloquium "Computer
Techniques and Computers", organized by the Computer Center of Bucharest University
(CCUB), ASE and “Politehnica” University in Bucharest, on the basis of financial
support from the Romanian Government. The CCUB's young researchers have
contributed substantially to the organization of this Colloquium [42]. The colloquium has
brought new experiences in the field of computers [37, 42]. In 2003, recognizing them as
pioneers of Romanian informatics, the Romanian presidency awarded Victor Toma,
Armand Segal, Vasile Baltac, Gheorghe Farkas, Mircea Bocu and Emil Muntean, with
the National Order of Knight's Grave Service.

Fig. 1. Gr. C. Moisil, Computer Pioneer Award of IEEE Computer Society, 1996 [16, 34]

In Cluj-Napoca, at the Computer Institute, computers MARIKA (1959),


DACICC-1 (1959-1963) and DACICC-200 (1968) were built. In 1962, the Department of
Computer Engineering was established, where the first computer courses were taught, one
in the fourth year, Computing Machines, held by confessor Kiss Ernest, and another
Programming in the FORTRAN language, taught by Prof. D. D. Stancu. It is worth
mentioning that during the period 1950-1961, the MECIPT-1 computer was built at the
Polytechnic Institute of Timisoara, using the original design of Iosif Kaufmann and eng.
William Löwenfeld. The dome of the central pavilion of the “Romexpo” building, located
in the ”Piata Presei Libere” Square, was designed with the MECIPT-1 computer. Also,
using the MECIPT-1 computer, the calculation tables for concrete casting in the Vidraru
dam were listed.

In 1958-1960, Professor Adolf Haimovici initiated a series of conferences on


"Applied Mathematics and Computer Science" in University “Al. I. Cuza” of Iaşi, and in
1960 he held his first "Elements of Informatics" course, while in 1961, Professor Costică
Cazacu introduces in the course "Complementary Mathematics" which includes
Programming Theory Elements and Game Theory. In the curriculum of the Faculty of
Mathematics in Iasi, the first course of "Calculable Machines" appeared. In 1968 the first
Romanian book in this field is published "Universal Computers and Programming
Theory" authored by Professor Costica Cazacu. In 1965, the Department of
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 397

Computational Machines was established, which became the Department of Computer


Science in 1971. In 1992, the Faculty of Informatics was founded based on the
Department of Computer Science from the Faculty of Mathematics, the first Faculty of
Informatics in Romania. Professor Călin Petru Ignat was the director of the University's
Computer Center where, in 1979, was initiated the first National Computer Science
Symposium, “INFO-IASI”.

Calculation Theory and Cybernetics


"Development of Western science is based on two great achievements:
the invention of the formal logical system (in Euclidean geometry)
by the Greek philosophers, and the discovery of the possibility to find out causal
relationships by systematic experiment (during Renaissance)."
Albert Einstein (1953)

Today, it can be appreciated that there is an important period in the emergence


and evolution of Informatics, and in the construction of computers: The period 1920-1940
(Fundamentals and Concepts), where the ideas and concepts of calculus theory, the study
of recursive functions, as well as defining formal systems and calculus limits, completing
the concept of algorithm as a support for a computing machine (Turing machine or Post
machine); in this period came the ideas and studies on Cybernetics, which laid the
foundation for the concept of system (for man and machine), system science (control and
communication between the components of a system) and which led to the construction
of computer systems [ 41].
Analyzing the development of ideas, theories, concepts, and building of computing
systems, one can assert that there are two important directions in computer evolution:
 Hardware Component – represented by systems (computing units –
microprocessor, storage units – memory, communication units-bus), electronic
circuits (equipments), Input / Output devices;
 Software Component – represented by algorithms, languages and programs
(operating systems, programming languages, computer systems and applications).
Cybernetics has helped define a schematic scheme for a cybernetic system that
applies to all hardware and software components: INPUT  PROCESSING 
OUTPUT. Time has shown that this scheme of a cybernetic system shapes the structure
and functioning of the most important concepts in Informatics:
 Computer system (computer);
 Algorithm;
 Program;
 Information System (Problem Solving).
These aspects were not realized if calculability problems (calculus theory) and problems
related to the development of computer systems (cybernetic systems) of the electronic
computer were not elucidated [12].
In this context, the invention and construction of the modern / digital computer was
possible through the emergence of new sciences and new products:
 Computer Science and Cybernetics 2;
2
The roots of the cybernetic theory: "Ştefan Odobleja (1902–1978) was a Romanian scientist, one of the
precursors of cybernetics. His major work, Psychologie consonantiste, first published in 1938 and 1939, in
398 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

 Languages and Algorithms;


 Input/Output Devices;
 Memory and storage environments.

In the field of Cybernetics, Romania is represented by the scientist Ştefan


Odobleja (1902-1978) – a military medical professional, being one of the precursors of
the Generalized Theoretical Cybernetics and Artificial Intelligence, the author of the 2
volume "Consonant Psychology" published in Paris for the first time date in 1938
(volume I) and then in 1939 (volume II). The paper has set out many of the major themes
on cybernetics and thinking systems (introduced the concept of feedback, with the
meaning of reversible links or reverse links, provided the telecommunication model, as
well as the ideas on automation of thinking - which underlies Artificial Intelligence).
From this point of view, Stefan Odobleja was a real visionary for a new thinking -
algorithmic thinking, which led to the emergence of computers. An important role in the
two values is that, for the world premiere, the concepts of System and Model are
introduced.
As a discipline, Cybernetics (the name comes from the Greek "cybernetos"
meaning "stormy") was established by Norbert Wiener, Warren McCulloch and Walter
Pitts (“A Logical Calculus of the Ideas Immanent in Nervous Activity”, 1943), Arturo
Rosenblueth and others such as W. Ross Ashby (“Design of Brain, 1952), mathematician
Alan Turing and W. Gray Walter (one of the first to build autonomous robots from animal
behavior study).
"Cybernetics is a homogenous and coherent scientific complex, a science resulting from
the blending of at least two sciences - psychology and technology; it is a general and
integrative science, a crossroads of sciences, involving both animal and car psychology.
It is not just a discipline, circumscribed in a narrow and strictly defined field, but a
complex of disciplines born of psychology and centered on it, branched out as branches
of a tree in its stem. It is a stepwise synthesis, a suite of multiple, often reciprocal,
modeling; syntheses and modeling in which, as a priority, and as a great importance, the
modeling of psychology on the technique and then the modeling of the technique on
psychology. Cybernetics is an intellectual symphony, a symphony of ideas and sciences."
Stefan Odobleja, 1978 [5].

Cybernetics and Mathematics are the sciences that have provided the foundation
for the development of various theories for electronic computer building: Data Systems
and Structures, Electronic Circuits and Devices, Computational Algorithms and
Programming Languages. In some of these aspects, it took many years, even hundreds of
years, for finalization and use. E.g.:
 Algorithm concept – description of some computational processes to be
executed by man or a machine; Abu Abdullah Muhammad bin Musa al-
Khwarizmi (ca. 780 – ca. 850) Baghdad (now in Iraq) used for the first time
precise and clear rules to describe computational processes (fundamental
arithmetic operations) in his work "The Compendious Book on Calculation by

Paris, established many of the major themes of cybernetics regarding cybernetics and thinking systems ten
years before the work of Norbert Wiener(1894-1964) was published, in 1948." [12]
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 399

Completion and Balancing" [9]. Later, this description appears under the name
of the "Euclid Elements" algorithm. Euclid's algorithm for calculating the
largest common divisor of two natural numbers is apparently the first known
algorithm in mathematics. Initially, the notion of algorithm was considered
primary. In modern mathematics the notion of algorithm has received several
definitions (A. A. Markov's normal algorithm, A. A. Leapunov's operational
algorithm, Turing machine / stack machine, recursive functions, POST
systems). The first description of the mathematical definition of the notion of
algorithm was given by Russian mathematician A. A. Markov. It has been
demonstrated that from a mathematical point of view these definitions are
equivalent. At present, in the field of probabilities and statistics, so-called
Markov processes are known. In fact, today, the process concept is
encountered very often under different circumstances: in the representation
and execution of algorithms, in the operation of computer systems, in the
execution of operating systems, in the execution of programs, in the operation
of computer networks, etc. [41].
 The theory of mathematical logic – many decades, the theory of mathematical
logic has not found applicability. The foundations were made by G. Boole and
A. De Morgan, followed by Dedekind, B. Russell, L. Lowenhein, T. Skolem, K.
Gödel, J. Łukasiewicz in S. Kleene, etc., who created various research
directions: crowd theory, model theory, formal language theory, recursivity
theory, prophecy logic, predicate logic, demonstration theory (in particular
first-order logic theory). The first system of multiple-valued logic was
introduced by J. Łukasiewicz in 1920. Independently, E. Post introduced in
1921 a different multiple-valued logic. The first applications were conducted
by the Russian Victor Ivanovich Shestakov (1907-1987) and American Claude
Shannon (1916-2001) (IEEE Medal of Honor-1966). Claude E. Shannon
introduced the use of Boolean algebra in the analysis and design of switching
circuits, 1937) and in Romania, Gr. C. Moisil founded the "Algebraic Theory
of Automated Mechanics" School (1959). At the instigation of Grigore C.
Moisil, eng. Leon Livovschi (1921-2012) uses for the first time Mathematical
Logic (Boole Algebras) for analysis and synthesis of discrete automata
(automatic circuits with contacts and relays) (1959) [36]. For the first time, the
first order logic theory is used to develop the logic programming language
PROLOG ("Programmation et Logique"), the University of Marseilles
(Colmerauer, the '70s), France. Thus, besides procedural programming
(imperative), a new type of programming emerged, namely declarative
programming (logic programming), based on the Horn clauses describing facts
and rules in expressing a problem, all of which constitute a knowledge base in
the universe of the problem. The solutions to a problem are obtained by
querying this knowledge base based on a logical reasoning implemented by
searching for solutions using the Backtracking method (SLD resolution,
Selective Linear Defined Resolution, Robert Kowalski, 1970). The compiler
was written in FORTRAN code, and the representation of the terms Prolog is
made by defining functions (predicates) and list structures, these being
400 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

syntactically represented by a functional or semantic form through a tree form


[13, 37].

Historically, Informatics / Computer Science preceded the emergence of an


electronic / digital computer. Before 1920, the term "computer" referred to a person
making calculations (the official person). Among the first researchers to substantiate and
use theories that have influenced the name of Computer Science were mathematicians:
 the German David Hilbert (1862-1943) (mathematician with major contributions
in the axiomatization of geometry, in the fundamentals of functional analysis, in
numerical theory, as well as in mathematical logic and demonstration theory,
opened the path of formalism in mathematics and computer science);
 the American Emil Leon Post (1897-1954) (mathematician and logician with
major contributions to mathematical logic and computational theory,
independent of A. Turing in 1936 he developed a mathematical model for
calculating functions equivalent to the Turing machine);
 the American Alonzo Church (1903-1995) (mathematician and logician with
major contributions to mathematical logic and theoretical background);
 the Austrian Kurt Gödel (1906-1978) (mathematician, logician and
philosopher, friend with Einstein, John von Neumann and Morgenstern)
researcher in calculus theory;
 the British Alan Turing (1912-1954) (mathematician, logician, cryptanalyst,
and theoretical computer scientist) who studied with Alonzo Church holding
his doctorate at Princeton in 1938.

In 1936, Turing3 [30] (founder of Artificial Intelligence and Turing test author), who had
announced that he wanted to "build a brain / machine that thinks", published an article
describing the "Universal Turing Machine". Thus, Turing is the first person to provide
data / information to a "computing machine" to enable him to perform multiple tasks at
the same time, as computers perform in our time. Turing reformulated Kurt Gödel's
results of 1931 on the limits of demonstrability and computability, replacing the universal
formal language based on Gödel's arithmetic with what is today called the Turing
machine, a simple formal device. Turing has demonstrated that such a machine would be
able to solve any mathematical problem that can be represented in the form of an
algorithm, although no real Turing machine could have real applications, being much
slower than achievable alternatives. "A. M. Turing (1912-1954) introduced a new model
for calculus, replacing Gödel's arithmetic numerical language with what are today called
Turing machines. It has been shown that the stop problem for Turing machines is
undecidable: there is no algorithm (general) which, for a program P and for input X as
data, determines whether the P program with the X data ends, after a finite number of
steps, tells us if the Turing machine will stop (1936)." D. Vaida, [31].

3
Turing, A.M. (1936). „On Computable Numbers, with an Application to the Entscheidungsproblem”.
Proceedings of the London Mathematical Society. 2 42: 230–65. 1937. Turing, A.M. (1937). „On
Computable Numbers, with an Application to the Entscheidungsproblem: A correction”. Proceedings of the
London Mathematical Society.
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 401

Also in 1936, A. Church showed that there is no computable function to decide for two
expressions from the introduced λ-calculus4, (recursive functions can be represented by λ-
calculus, Lambda-calculus) if these expressions are equivalent, or not. A. Church
introduced the following sentence that bears its name: "The class of computable intuitive
functions is equal to the class of recursive functions." The problem of decidability is
related to the 10th problem of D. Hilbert, which required an algorithm to decide if an
Diofantic equation has a solution, the coefficients and solutions being integers.
Subsequently, in 1970, Y. Matiiasevici showed that the answer was negative [26].

In Romania, the scientists were connected to global research on calculability


theories, through the participation of some in doctoral studies in France, Germany and
Italy, and then by the work of those who retired in the country and continued their
research in the direction doctoral studies. E.g.:
 Acad. Tiberiu Popoviciu, Ph.D. in Paris (coordinator Professor Paul Montel),
who contributed to Numerical Analysis and Approximation Theory, and to the
construction of electronic computers in Cluj-Napoca (MARICA-1959,
DACIC-1-1963, today Computer Institute of the Romanian Academy is
named “Tiberiu Popoviciu")
 Professor Gabriel Sudan, with his doctorate in Germany (coordinator
Professor David Hilbert), with remarkable contributions to the theory of
recurrent functions, as well as to the theory of transfinite ordinal numbers.
Gabriel Sudan is the author of the first recursive function, nowadays called
Sudan function (1927), which is not primitively recursive, in parallel with W.
Ackermann's (1928) and Ph.D. professor David Hilbert [1, 10].
All these studies and research, on the aspects of calculus and appearance of the
fundamentals made by the Turing machine, and on the other hand, on the construction of
the first electronic computers, made possible the emergence of the specialization
"Informatics" in the universities of Romania in 1971 [37].

Thus, courses and seminars for the field of informatics


took place. We will give as an example a "Theory of
Algorithms Theory. Recursive Functions and Turing
Machines", by Prof. Constantin C. Popovici, from the
Faculty of Mathematics, University of Bucharest, printed
in 1976 [24]. From the preface we find that this course
contains the lessons for students of the 4th year, the
Informatics section, from the academic year 1974/1975, a
compulsory course, becoming an optional course, in the
academic year 1975/1976. This course also includes the
"Recursive Functions and Turing Machine" lessons cycle,
held in the winter of 1969, for V-year students, the

4
Introduced in the 1930s by Alonzo Church as a way to formalize the concept of efficient computability. λ-
calcul is a universal language in the sense that any computable function can be expressed and evaluated using
this formalism and is thus equivalent to Turing machines. This λ-calculation method emphasizes the use of
transformation rules and does not depend on the current machine. It is a more software-related approach than
hardware [26]
402 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

"Computing Machines" section [24]. The author also states that during 1972-1974, he has
coordinated the scientific seminar "Recursive Functions and Turing Machines" for PhD
students at the Institute of Mathematics (fig. 2).

The contents include the following chapters:


1. (Algorithm, Calculable Function, Primary Recurrence, Substitution); 2. (Elements of
Mathematical Logic);
3. (Recursive primitive functions); 4. (Recursive primitive enumerations of Ns and N∞); 5.
(Numerical recursive predicates); 6. (Partially recursive functions); 7. (General recursive
functions and general predicates); 8. (Universal Function); 9. (Turing Machine) [24].

Fig. 2. Pages 282-283 from textbook of C. Popovici [24]

The first examples of a recursive function which is not primitive recursive:


W. Ackermann and G. Sudan
"Computers are incredibly fast, precise and unintelligible." Human beings are incredibly slow,
inaccurate and intelligent. "Together, their power goes beyond any imaginable limit."
Albert Einstein

"Mathematics is both abstract and concrete, revealing much of the mental experiment, working
with unobserved abstractions and objects, and the current scientific progress depended on the
ability to operate precisely with abstractions and force of reasoning; let us think of today's
nanometrics technologies, whose management requires a new type of heuristics not studied."
O. Stanasila, Metabolism of Mathematics and Computer Science,
Curtea de Arges, no. 8/2015, pp. 17-18
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 403

The German Wilhelm Ackermann and the Romanian Gabriel Sudan supported their
doctoral theses with Professor David Hilbert (Göttingen University), (the first on August
4, 1924, Thesis “Begründung des "tertium non datur" mittels der Hilbertschen Theorie
der Widerspruchsfreiheit, and the second on 20 July 1925., Thesis “Über die geordneten
Mengen”). In mathematics, at that time, there were important researches on the
computational theory of D. Hilbert and the mathematicians Alonzo Church and Kurt
Gödel [10].

In 1928, Ackermann helped David Hilbert turn his 1917-22 lectures on introductory
mathematical logic into a text, Principles of Mathematical Logic (first ed., 1928). This
text contained the first exposition of the first-order logic, and posed the problem of its
completeness and decidability (Entscheidungsproblem). Ackermann went on to construct
consistency proofs for set theory (1937), full arithmetic (1940), type-free logic (1952),
and a new axiomatization of set theory (1956).

In the late 1920s, the mathematicians Gabriel Sudan and Wilhelm Ackermann, students of
David Hilbert, were studying the foundations of computation. Both Sudan and
Ackermann are credited with discovering total computable functions (termed simply
"recursive" in some references) that are not primitive recursive. Sudan published the
lesser-known Sudan function, then shortly afterwards and independently, in 1928,
Ackermann published his function φ. Ackermann's three-argument function, φ(m, n, p), is
defined such that for p = 0, 1, 2, it reproduces the basic operations of addition,
multiplication, and exponentiation [1]:

φ(m, n, 0)= m+n,


φ(m, n, 1)=mn,
φ(m, n, 2)=mn,

and for p>2 it extends these basic operations in a way that can be compared to the
hyperoperations (Goodstein's notation or Knuth's up-arrow notation). In 1947 R. L.
Goodstein introduced the specific sequence of operations that are now called
hyperoperations, for the extended operations beyond exponentiation: a↑(n-2)b, for n>2. In
mathematics, Knuth's up-arrow notation is a method of notation for very large integers,
introduced by Donald Knuth in 1976: a↑nb.
The emergence and construction of the modern computer would not have been possible
without research, studies and results from 1920-1940, when mathematicians around the
world focused on the Theory of Calculability, Theory of Algorithms and Theory of
Formal Languages.

The Theory of computability and Algorithm theory were constructed simultaneously by


the inter-dependence:
 A computable function is any mathematical function for which an algorithm
can be generated that generates the values of the function, having as input the
values of the function definition, and generating constructive values / objects;
according to the normality principle (A.A. Markov's normal algorithm), any
404 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

algorithm can be expressed with an algorithm from a class of mathematically


defined algorithms;
 Independent of the notion of algorithm, a computable function is any
mathematical function for which a class of partial recursive functions can be
constructed; recursive functions were presented and studied mainly from a
structural-constructivist perspective, following the construction mode and
their computational properties; a function is primitive recursive if it can be
obtained by a finite number of steps of applying direct transformation
operations, substitution / composing and primitive recursivity, starting from
the zero basic functions (constant function λx.0) and successor (successor
function λx.x + 1). Similarly, a function is partially recursive if, in addition to
the above mentioned operations, the minimizing operator is used in the
construction process. The operations used to construct a recursive function are
in turn functions that accept as functions parameters and calculate functions,
being – as built functions – effectively calculable.

In 1928, Wilhelm Ackermann (fig. 3) observed that A(x,y,z), the z-fold iterated
exponentiation of x with y, is a recursive function that is not primitive recursive. A(x,y,z)
was simplified to a function of 2 variables by Rózsa Péter in 1935. Raphael M. Robinson
simplified the initial condition in 1948. In 1948, Rózsa Péter and Raphael Robinson later
developed a two-variable version of the Ackermann function that became preferred by
many authors [1, 22, 23, 25, 26]. Fig. 3. From original paper authored by Wilhelm
Ackermann, 1928 [1]

The Ackermann function A: N2  N:


ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 405

n ≥ 0, A(0, n) = n+1
m ≥ 1, A(m, 0) = A(m−1,1)
m ≥ 1, n ≥ 1, A(m,n) = A(m−1, A(m,n−1))

n A(0,n) A(1,n) A(2,n) A(3,n) 15 16 17 33 262141


0 1 2 3 5 16 17 18 35 524285
1 2 3 5 13 17 18 19 37 1048573
2 3 4 7 29 18 19 20 39 2097149
3 4 5 9 61 19 20 21 41 4194301
4 5 6 11 125 20 21 22 43 8388605
5 6 7 13 253 21 22 23 45 16777213
6 7 8 15 509 22 23 24 47 33554429
7 8 9 17 1021 23 24 25 49 67108861
8 9 10 19 2045 24 25 26 51 134217725
9 10 11 21 4093 25 26 27 53 268435453
10 11 12 23 8189 26 27 28 55 536870909
11 12 13 25 16381 27 28 29 57 1073741821
12 13 14 27 32765 28 29 30 59 2147483645
13 14 15 29 65533 29 30 31 61 4294967293
14 15 16 31 131069 30 31 32 63 8589934589
Table 1. The Ackermann function for n=1...30, m=0,1,2 and 3
For m> 3 the values are very large and cannot be stored in the computer's memory.
For m = 4, only a few volumes can be calculated: A (4,0) = 13, A (4,1) = 65533,
A(4,2)=2(A(3,2)-3) −3=4294967293, but for A (4,3) the value is very high. Animated
arithmetic, The Ackermann function at address: http://www.gfredericks.com/sandbox/
arith/ackermann (table 1).
<html><head><body><SCRIPT <html> <head> <body><SCRIPT
LANGUAGE=JavaScript> LANGUAGE=JavaScript>

function achermann() function sudan(){

{var m=3; var n=3; var m=3;var n=3;

m=eval(prompt("A(m,n), input m : ",m)) m=eval(prompt("S(m,n,k), input m : ",m))


n=eval(prompt("A(m,n), input n : ",n))
alert("A("+m+" , "+n+") = "+A(m,n))}
n=eval(prompt("S("+m+",n,k), input n : ",n))
function A(m,n)
{if (m!=0 && n!=0) k=1;k=eval(prompt("S("+m+","+n+",k), input k : ",k))
{return A(m-1,A(m,n-1))}
else{if (m==0) {return n+1} alert("S("+m+","+n+","+k+") = "+S(m,n,k))}
if (n==0) {return A(m-1,1)
}}
} function S(m,n,k){if (k!=0 && n!=0) {return S(S(m,n-
1,k), S(m,n-1,k) + n, k-1)} else{if (k==0) {return
// main program m+n}if (n==0) {return m}}}
alert("Achermann Function A(m,n)=?");
406 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

achermann(); // main program


alert("Sudan Function S(m,n,k)=?”); sudan();
</SCRIPT></body></head></html> </SCRIPT></body></head></html>
Table 2. Programs in JavaScript for functions of Ackerman and Sudan
The Sudan function A: N3  N:
S(m, n,0) = m+n
S(m, 0,k) = m
n ≥ 1, k≥ 1, S(m,n,k) = S(S(m,n-1,k), S(m,n-1,k)+n,k-1).

In the theory of computation, the Sudan function is an example of a function that is recursive, but
not primitive recursive. This is also true of the better-known Ackermann function. The Sudan
function was the first function having this property to be published (1927). [27,28,29]. For several
years, the scientific community did not know the merits of the Roman mathematician G. Sudan in
defining the first recursive function that is not primitively recursive. Sudan's contribution was
presented at a conference from the Faculty of Mathematics, University of Bucharest, by C. Calude,
S. Marcus and I. Tevy, "The first example of a recursive function which is not primitive recursive",
1979. The article was published in Historia Mathematica (fig. 4): “The first example of a recursive
function which is not primitive recursive is usually attributed to W. Ackermann. The authors of the
present paper show that such an example can also be found in a paper by G. Sudan, published
concomitantly with Ackermann's paper.” [7].

Fig. 4. Page 382 from the paper [7]


ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 407

Fig. 5. Page 91-92 from the book authored by Roman Murawski, 1999 [18]

Conclusions
Year 1938: “Thanks to the psycho-physical reversibility, we can materialize the act of creation.
Undoubtedly, the inventive machine has not yet been created, but we can see its creation soon.”
Stefan Odobleja, “Consonant Psychology”, Paris [5].
Year 1973: “Informatics restores not only the union of pure and applied mathematics, of concrete
technique and abstract mathematics, but also the union of natural sciences with man and society.
It re-establishes abstract and formal concepts, and brings peace between art and science, not only
in the scientist’s spirit, where they always are at peace, but also in their philosophy.” Gr. C.
Moisil.
Year 1917: Molecular computer – “Define a molecular computer as one molecule which
transforms, by random chemical reactions mediated by a collection of enzymes, into a predictable
other molecule, such that the output molecule can be conceived as the result of a computation
encoded in the initial molecule.” M. Buliga [6].

References
[1] W. Ackermann (1928): "Zum Hilbertschen Aufbau der reellen Zahlen". Mathematische Annalen 99: 118–133,
http://gdz.sub.uni-goettingen.de/en/dms/loader/img/?PID=GDZPPN002272261&physid=PHYS_0123,
accessed 2017
[2] Ackermann function that became preferred by many authors:
https://en.wikipedia.org/wiki/Ackermann_function, accessed 2017
408 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

[3] H. Barendregt and E.Barendsen (2011): Introduction to Lambda Calculus , Revised edition 1998-2000,
http://www.unibuc.ro/prof/vlada_m/art_2011.php, accessed 2017
[4] Animated arithmetic, The Ackermann function: http://www.gfredericks.com/sandbox/arith/ackermann,
accessed 2017
[5] BDM Soft (2015): CHC61 Competition, Odobleja precursor al Ciberneticii IEEE Computer Society's
Web Programming Competition Unsung Heroes, Team number 718293
http://www.bdmsoft.com/ieeecontest/index1.php , accessed 2017
[6] M. Buliga (2017): Molecular computers, http://chorasimilarity.github.io/chemlambda-gui/dynamic/
molecular.html, accessed 2017
[7] C. Calude, S. Marcus, I. Tevy (1979): The first example of a recursive function which is not primitive
recursive, Historia Mathematica vol. 6, no. 4, 380–384 doi:10.1016/0315-0860(79)90024-7,
http://www.sciencedirect.com/science/article/pii/0315086079900247, accessed 2015
[8] Computes Society, IEEE – 1996: http://www.computer.org/portal/web/awards/moisil, accessed 2017
[9] J. J O' Connor and E. F Robertson: MacTutor History of Mathematics archive, http://www-
history.mcs.st-andrews.ac.uk/Biographies/Al-Khwarizmi.html, accessed 2017
[10] J. J O' Connor and E. F Robertson: David Hilbert's doctoral students, MacTutor History of Mathematics
archive, http://www-history.mcs.st-andrews.ac.uk/Extras/Hilbert_PhD_students.html, accessed 2017
[11] D. Peter J. (2006): "Computer Science: The Discipline". Encyclopedia of Computer Science. Archived
from the original (PDF) on 2006-05-25, http://www.computerhistory.org/timeline/computers/, accessed
2017
[12] G. Georgescu, A. Iorgulescu, S. Rudeanu (2006): “Grigore C. Moisil (1906-1973) and his School in
Algebraic Logic”, International Journal of Computers, Communications & Control, Vol. I No. 1, pp. 81-99
[13] N. Jurcău (1998): “Two Specialists in Cybernetics: Stefan Odobleja and Norbert Weiner. Common and
Different Features”, Twentieth World Congress of Philosophy, in Boston, Massachusetts from August 10-
15, 1998, Boston University http://www.bu.edu/wcp/MainComp.htm, accessed 2017
[14] R. Kowalski (1974): Predicate Logic as a Programming Language, Memo 70, Department of Artificial
Intelligence, Edinburgh University. 1973. Also in Proceedings IFIP Congress, Stockholm, North Holland
Publishing Co., 1974, pp. 569-574, http://www.doc.ic.ac.uk/~rak/papers/IFIP 74.pdf, accessed 2017
[15] Gr. C. Moisil (1973): „Învățământul informaticii în Facultatea de Matematică”, Raport Gr. C. Moisil,
27.01.1973, https://www.scribd.com/doc/296395184/Raport-Informatica-Grigore-Moisil-1973, accessed
2017
[16] V. Moisil (2012): A fost odată... Grigore Moisil, Bucureşti, Ed. Curtea Veche, Bucuresti
[17] I. Moisil (2016): The Wonderful Adventures of the Mathematician in Logic-Land: From Lukasiewicz-
Moisil Logic to Computers , ICCC 2016 dedicated to the 110th anniversary of Grigore C. Moisil, 6th
International Conference on Computers Communications and Control- IEEE & Agora University of
Oradea, https://www.scribd.com/doc/314496096/From-%C5%81ukasiewicz-Moisil-Logic-to-Computers-
by-Ioana-Moisil, accessed 2017
[18] R. Murawski (1999): Recursive Functions and Metamathematics, Problems of Completeness and
decidability Godel’s theorems, vol. 286, KLUWER Academic Publishers, Dordrecht/Boston/London, ISBN
0-7923-5904-6, http://www.springer.com/la/book/9780792359043, accessed 2017
[19] A. Neculai (2005): Profesorul Moisil - creatorul informaticii în România,
https://camo.ici.ro/neculai/moisil.pdf, accessed 2017
[20] J. von Neumann’s EDVAC Report 1945 (1945): The John von Neumann Architecture of Computer
Systems, http://www.wps.com/projects/EDVAC/, accsessed 2017
[21] Șt. Odobleja (1938), "Psychologie consonantiste", Paris: Publishing House Librairie Maloine
[22] R. Peter (1936): Über die mehrfache Rekursion, Math. Ann. vol. 113 (1936) pp. 489-5
[23] R. Péter, (1935): Konstruktion nichtrekursiver Funktionen,Math. Ann. vol. Ill (1935) pp. 42-60
[24] C. Popovici (1976): “Curs de Teoria algoritmilor. Functii recursive si masini Turing”, Facultatea de
Matematica , Ed. Universitatii din Bucuresti
[25] R. M. Robinson (1947): Primitive recursive functions, Bull. Amer. Math. Soc. vol.53, pp. 925-942.
[26] R. Rojas (1998), A Tutorial Introduction to the Lambda Calculus, http://www.inf.fu-
berlin.de/lehre/WS03/alpi/lambda.pdf, accessed 2017
[27] G. Sudan (1927): Bull. Math. Soc. Roumaine Sci. 30, 11 - 30; Jbuch 53, 171
[28] G. Sudan, Sudan Function, http://googology.wikia.com/wiki/Sudan_function, accessed 2017
[29] G. Sudan, Sudan Function, https://en.wikipedia.org/wiki/Sudan_function, accessed 2017
[30] Turing A.M. (1937): „On Computable Numbers, with an Application to the Entscheidungsproblem”,
Proceedings of the London Mathematical Society, 2 42: 230–65
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 409

[31] D. Vaida (2012): „Ştiinţa, parte a culturii – reflecţii dinspre matematică (Science as a part of culture –
reflections from mathematics), Revista de politica ştiintei si scientometrie – serie noua, vol. 1, No. 4, p.
349-355 (in romanian)
[32] D.Vaida (2011): "Ani de studiu (1952- 1957): începuturi ale structurilor algebrice (I. Alexandru Froda,
Mihail Benado, Dan Barbilian - Amintiri, reflecții), Congresul al VII-lea al Matematicienilor Români,
Brașov, http://fmi.unibuc.ro/revistadelogica/articole/No1Art90.pdf, (in romanian), accessed 2017
[33] M. Vlada (2016): Grigore C. Moisil – restituiri, http://mvlada.blogspot.ro/2016/01/grigore-c-moisil-
restituiri.html, (in romanian), accessed 2017
[34] M. Vlada (2016): Grigore C. Moisil, 1996 Computer Pioneer Award, http://mvlada.blogspot.ro/
2016/06/grigore-c-moisil-1996-computer-pioneer.html, accessed 2017
[35] M. Vlada (2016): Discipolii acad. Grigore C. Moisil și pionieri ai informaticii românești, In Lucrarile
celei de-a XIV-a Conferinta de Invatamant Virtual, 29 octombrie 2016, Editura Universitatii din Bucuresti,
ISSN 1842-4708, p. 19-33 (in romanian)
[36] M. Vlada (2015): Romanian Informatics Pioneers, Leon Livovschi and Octavian Bâscă at the University
of Bucharest, In Proceedings of the 10th International Conference on Virtual Learning (ICVL), Timisoara,
October 31 2015, Bucharest University Press (ISSN 1844-8933), pp. 37-43, http://c3.icvl.eu, accessed
2017
[37] M. Vlada (2014): Informatica la Universitatea din Bucureşti, În Lucrarile celei de-a XII-a Conferinta de
Invatamant Virtual, 24-25 octombrie 2014, Editura Universitatii din Bucuresti, ISSN 1842-4708, pag. 27-
36, 2014, http://www.c3.cniv.ro, accessed 2017
[38] M. Vlada (2012): The Alan Turing Year, In Proceedings of the 7th International Conference on Virtual
Learning (ICVL), Special edition dedicated to “2012 Alan Turing Year”, Bucharest University Press, ISSN
1844-8933), pp. 55-61
[39] M. Vlada, Adrian Adăscăliţei (2012): “2012 The Alan Turing Year – de la maşina Enigma şi testul
Turing la Inteligenţa Artificială”, In Lucrarile celei de-a X-a Conferinta de Invatamant Virtual, Editura
Universitatii din Bucuresti, ISSN 1842-4708, 2012, pag. 41-51 (in romanian)
[40] M. Vlada (2010): New Technologies in Education and Research. Models and Methodologies,
Technologies and Software Solutions, LAMBERT Academic Publishing, ISBN 978-3-8433-6391-4
[41] M. Vlada (2004): Abordarea moderna a conceptului de algoritm, CNIV-2004, Noi tehnologii de E-
Learning, Conferinta Nationala de Invatamant Virtual, Software Educational, Editia a II-a, 29-31 octombrie
2004, Editura Universitatii din Bucuresti, 2004 (Editori: I. Chitescu, H. Georgescu, V. Preda, I. Vaduva, I.
Tomescu, M. Vlada, G. Pripoae), ISBN 973-575-947-0), pag. 231-240 (in romanian)
[42] I. Văduva (2014): History of Computer Science in Romania by Prof. Ion Văduva,
http://www.c3.icvl.eu/2014/vaduva-ccub, accessed 2017
Bibliografie generală

1. Serge Abiteboul, Richard Hull, Victor Vianu, Foundations of Databases. Addison-Wesley 1995, ISBN
0-201-53771-0, The full PDF version of the book: http://webdam.inria.fr/Alice/, http://webdam.
inria.fr/Alice/pdfs/all.pdf
2. D. Acostachioaie, Administrarea și configurarea sistemelor Linux, Editura Polirom, 2003
3. George Șt. Andonie, Istoria matematicii în România, vol. II, Editura Științifică București, 1966,
https://www.scribd.com/document/387489845/Gr-C-Moisil-1966
4. O. Bâsca, V. Boicescu, E. Căzănescu, M. Cherciu, G. Georgescu, Gr. C. Moisil, Gh. S. Nadiu, I.
Petrescu, S. Rudeanu, C. Sicoe, L. State, Al. Teodorescu, I. Tomescu, Logique Automatique
Informatique, Editions del’Académie, Bucharest, 1971
5. Tim Berners-Lee, CERN, Information Management: A Proposal, http://www.w3.org/History/1989/
proposal.html
6. B. H. Boar, The Art of Strategic Planning for Information Technologies, 2nd edition, John Wiley &
Sons, Inc., New York, 2001
7. Roger E. Bohn, Measuring and Managing Technological Knowledge, p.295-314 in Dale Neef a.o., Eds,
The Economic Impact of knowledge, Butterworth-Heinemann, Boston, 1998
8. W. K. Bruijin, Situația și perspectivele evoluției calculatoarelor, AMC (Automatica-Metrologie-
Calculatoare), nr. 13-14, Editura Tehnică, pag. 101-128,1970
9. S. Buraga, G. Ciobanu, Atelier de programare în rețele de calculatoare, Editura Polirom, 2001
10. Vannevar Bush, As We May Think, 1945, http://www.theatlantic.com/magazine/archive/1945/07/as-
we-may-think/303881/
11. C. Cazacu, Jucan T., Programarea în limbajul Fortran. Calculatorul Felix C-256, Ed. Junimea, 1978
12. CCUB, Sesiunea Științifică a CCUB, Aniversare 25 de ani, 1987, Litografia Universității din
București, https://www.scribd.com/document/385124731/Sesiunea-%C8%98tiin%C8%9Bific%
C4%83-a-CCUB-Aniversare-25-de-ani-1987
13. Sorin Adrian Ciureanu, Sisteme de Operare, Editura Printech, 2004
14. Svetlana Cojocaru, Acad. Gheorghe Păun, Dragoş Vaida (ed.), One Hundred Romanian inTheoretical
Computer Scientists, Editura Academiei Române, 2018, http://www.c3.icvl.eu/2018/rom-csc
15. V. Cristea, P. Dumitru, C. Giumale, V. Iorga, F. Moldoveanu, T. Popescu, Dicționar de Informatică,
Editura Științifică și Enciclopedică, 1981
16. T. Connolly, Begg, C., Strachan, A. – Database Systems – A Practical Approach to Design,
Implementation and Management, Addison Wesley Longman Limited 1995, 1998
17. Tom Davis, Practical calculation of Polygonal Areas, Pick’s Theorem, 2006 http://www.geometer.org/
mathcircles/polyarea.pdf, http://www.geometer.org/mathcircles/pick.pdf
18. H. Deitel, Operating Systems 3/e, Ed. Prentice Hall, 2004
19. Oana Lucia N. Dimitriu, Academicianul Grigore C. Moisil, intemeietorul şcolii de matematicieni
informaticieni din Romania, Biblioteca Academiei Române, Studii și comunicări, Comitetul Român
pentru Istoria și Filosofia Științei și Tehnicii, Volumul VII / 2014, http://studii.crifst.ro/doc/
2014/2014_4_06.pdf (pdf)
20. Mihai Drăgănescu, Realizarea de calculatoare și rețele de calculatoare în România (1953-1985),
http://www.atic.org.ro/ktml2/files/uploads/Draganescu.pdf , 2001
21. Mihai Drăgănescu, De la societatea informaţională la societatea cunoaşterii, Editura Tehnică, Bucureşti,
2003, ISBN 973-31-2199-1, www.racai.ro
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 411

22. Nick Doiron, First digital computer, by country, 2016 - https://medium.com/@mapmeld/first-computer-


by-country-81fa47963234
23. Gh. Dodescu, A. Vasilescu, B. Oancea- Sisteme de operare, Editura Economică, 2003
24. Pham Gia Duc (Vietnam), Istoria înființării și a dezvoltarii științei calculatoarelor în R.S.R., Rezumatul
tezei de doctorat, Facultatea de Matematică-Mecanică, 1972
https://www.scribd.com/document/395554915/Istoria-infiin%C8%9B%C4%83rii-%C8%99tiin%C8%9Bei-
calculatoarelor-in-Romania
25. Daniel Ford, Josh Batson, Languages of the World (Wide Web), News on Google Research, 2011 ,
https://research.googleblog.com/2011/07/languages-of-world-wide-web.html
26. George Georgescu, Afrodita Iorgulescu, Sergiu Rudeanu, Grigore C. Moisil (1906 - 1973) and his
School in Algebraic Logic, In International Journal of Computers Communications & Control, vol. 1 no
1 (2016), http://univagora.ro/jour/index.php/ijccc/article/view/2276
27. J. E. Goodman, O'Rourke, J., eds. , Handbook of Discrete and Computational Geometry (2nd Ed.).
CRC Press, 2004.
28. Rick Graziani, IPv6 Fundamentals, Editura Cisco Press, 2012
29. Marius Guran, Monografia informaticii din România, Repere istorice, Editura AGIR București, 2012,
705 pag.
30. A. Iorgulescu, S. Marcus, S. Rudeanu, D. Vaida (coord./eds.), Grigore C. Moisil şi continuatorii săi în
domeniul Informaticii Teoretice/Grigore C. Moisil and his Followers în the Field of Theoretical
Computer Science, Ed. Academiei, 2007
31. M. J. Hernandez, Database design for mere mortals: a hands-on guide to relational database design, 2nd
ed., Addison Wesley, 2003
32. Juraj Hromkovic, Ce este matematica și cum trebuie ea predată, Revista Curtea de la Argeş, Anul V,
Nr. 8 (45), August 2014 - http://www.curteadelaarges.ro/arhiva/V_8_45/V_8_45.pdf
33. David Lane, Scalable Vector Graphics, Published February 2007; article ID 1381,
http://mathdl.maa.org/mathDL/4/?pa=content&sa=viewDocument&nodeId=1381, 2007
34. Leon Livovschi, Popovici C., Georgescu H., Țăndăreanu N., Bazele informaticii, Editura Did. și Ped.
1982
35. Eufrosina Otlăcan, Despre naționalism și cibernetica lui Ștefan Odobleja, Curtea de la Argeș , Anul IX,
Nr. 5(90), Mai 2018, pag. 16-17, 2018, http://www.curteadelaarges.ro/arhiva/IX_5_90/IX_5_90.pdf
36. Solomon Marcus, Grigore C. Moisil și începuturile informaticii romanesti, Lucrările Sesiunii Știinţifice
a Centrului de Calcul al Universităţii din București (1987), 20-21 februarie 1987, pp. 23-26
37. Solomon Marcus, Grigore C. Moisil: A Life Becoming a Myth, In International Journal of Computers
Communications & Control, vol. 1 no 1 (2016), http://univagora.ro/jour/index.php/ijccc/
article/view/2275
38. Solomon Marcus, Gramatici şi automate finite, Editura Academiei RSR, 1964 (distinsă cu Premiul
„Timotei Cipariu“ al Academiei Române)
39. Robin Mansell and Uta Wehn (Editors) “Knowledge societies. Informationb technology for sustainable
development”, published for and on behalf of the United Nations, Commission on Science and
Technology for Development, Oxford University Press, New York, 1998.
40. Grigore C. Moisil, Activitatea Centrului de Calcul al Universității din București, AMC (Automatica-
Metrologie-Calculatoare), nr. 13-14, Editura Tehnică, pag. 9-22,1970, https://www.scribd.com/
document/405794652/Articole-Gr-C-Moisil-AMC-Nr-13-14-1970
41. Grigore C. Moisil, Instruirea în știința calculatoarelor - Raport al ACM Curriculum Committee on
Computer Science, partea I, AMC (Automatica-Metrologie-Calculatoare), nr. 13-14, Editura Tehnică,
pag. 23-40,1970
42. Grigore C. Moisil, Instruirea în știința calculatoarelor - Raport al ACM Curriculum Committee on
Computer Science, partea II, AMC (Automatica-Metrologie-Calculatoare), nr. 13-14, Editura Tehnică,
pag. 41-80,1970
412 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

43. Grigore C. Moisil, Contribuția românească în teoria algebrică a automatelor, AMC (Automatica-
Metrologie-Calculatoare), nr. 13-14, Editura Tehnică, pag. 81-100,1970
44. Grigore C. Moisil, „Învățământul informaticii în Facultatea de Matematică” Raport Gr. C. Moisil,
27.01. 1973, https://www.scribd.com/doc/296395184/Raport-Informatica-Grigore-Moisil-1973
45. Grigore C. Moisil, Referatul privind Rolul Academiei RSR în dezvoltarea informaticii, 17-19.02.1971,
https://www.scribd.com/document/398422173/Gr-C-Moisil-Referat-pentru-Academie-1971
46. Grigore C. Moisil, Teoria algebrică a mecanismelor automate [Algebraic theory of automatic
machines], Academia Republicii Populare Romane, Editura Tehnică, Bucharest, 1959. MR0120120
47. Grigore C. Moisil, Circuite cu tranzistori [Transistor Circuits], Editura Academiei Republicii Populare
Romane, Bucharest, 1961–62. OCLC 15371418
48. Grigore C. Moisil, Activitatea Centrului de Calcul al Universității din București, în volumul Grigore C.
Moisil și continuatorii săi, Ed. Academiei Române, , 2007, pp. 133-155
49. Viorica Moisil, Once upon a time... Grigore Moisil (A fost odată... Grigore Moisil), Bucharest: Curtea
Veche, 2002. ISBN 973-8356-09-1
50. Viorica Moisil, Gr. C. Moisil, profesor NU ca oricare altul, Editura Tehnică, 1998. Prefață de Solomon
Marcus, https://www.scribd.com/document/398422052/Gr-C-Moisil-profesor-NU-ca-oricare-altul-1998
51. Ioana Moisil, The wonderful adventures of the mathematician in logic-land: From Lukasiewicz-Moisil
logic to computers, Computers Communications and Control (ICCCC) (2016), 2016 6th International
Conference on, 1-9, DOI: 10.1109/ICCCC.2016.7496730,https://doi.org/10.1109/ICCCC.2016.7496730
52. Grigor Moldovan, Scheme logice și programe FORTRAN, Universitatea din Cluj-Napoca, 1973
53. John Louis von Neumann, http://ei.cs.vt.edu/%7Ehistory/VonNeumann.html
54. John von Neumann, 1981, First draft of a report on the EDVAC. In Stern, N. From ENIAC to Univac:
An Appraisal of the Eckert-Mauchly Computers. Digital Press, Bedford, Massachusetts,
http://www.csupomona.edu/~hnriley/www/VonN.html
55. John von Neumann’s EDVAC Report 1945 John von Neumann’s 1945 on June 30 by Hungarian
mathematician John von Neumann (1903-1957), http://www.velocityguide.com/computer-history/john-
von-neumann.html, http://www.wps.com/projects/EDVAC/
56. John von Neumann, The Virtual Von Neumann Architecture and the global computer, http://meta-
artificial.blogspot.com/2005/07/virtual-von-neumann-architecture.html
57. Stelian Niculescu, Noțiuni de informatică, Manual pentru școli profesionale, școli de maiștri, licee
industriale, Editura Didactică și Pedagogică, 1971 (primul manual de informatică destinat
învățământului preuniversitar)
58. J. O'Rourke, Computational Geometry in C (2nd Ed.). Cambridge University Press., 1998
59. Șt. Odobleja, Psychologie consonantiste, Paris: Publishing House Librairie Maloine, 1938
60. R. Peter, Über die mehrfache Rekursion, Math. Ann. vol. 113 (1936) pp. 489-5
61. R. Péter, Konstruktion nichtrekursiver Funktionen,Math. Ann. vol. Ill (1935) pp. 42-60
62. Gheorghe Păun, Moisil -110, In revista Curtea de la Arges, anul VII, Nr. 3 (64), martie 2016,
http://www.curteadelaarges.ro/arhiva/VII_3_64/VII_3_64.pdf
63. L. Peterson, B. Davie, Rețele de calculatoare: o abordare sistemică, ALL/Teora, Ed. Morgan
Kaufmann, 2001/2004
64. C. Popovici, Curs de Teoria algoritmilor. Funcții recursive și mașini Turing, Facultatea de Matematică ,
Editura Universității din București
65. Tiberiu Popoviciu, Contribuţii ale Institutului de Calcul din Cluj la aplicarea matematicii în economie,
Ses. St. Acad. RSR 1969-1970, 1971, pp. 305-320, https://ictp.acad.ro/popoviciu/
66. Dorin Mircea Popovici, L.D. Şerbănaţi, S. Morvan, Virtual Aquarium, CNIV-2004, Noi tehnologii de
E-Learning, Conferinţa Naţională de Învăţământ Virtual, Software Educaţional, Ediţia a II-a, 29-31
octombrie 2004, Editura Universităţii din Bucureşti, (Editori: I. Chiţescu, H. Georgescu, V. Preda, I.
Văduva, I. Tomescu, M. Vlada, G. Pripoae) (ISBN 973-575-947-0) (http://fmi.unibuc.ro/
ro/cniv_2004/), pp. 167-174, 2004
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 413

67. Dorin Mircea Popovici, Popovici, M. I., C++. Tehnologia orientată spre obiecte. Aplicaţii, Editura
Teora, Bucureşti, 2000.
68. Sergiu Rudeanu, Afrodita Iorgulescu, George Georgescu and Cătălin Ioniţă, G. C. Moisil memorial
issue", Multiple-Valued Logic 6 (2001), no. 1-2. Gordon and Breach, Yverdon, 2001. MR1817431
69. S. Scheuerl, J.G., Modelling Recovery in Database Systems, School of Mathematical and
Computational Sciences University of St Andrews, 1997
70. A. Silberschatz, Operating Systems Concepts.Seventh Edition, Wesley Publishing Company, 2006
71. Maureen Sprankle, Jim Hubbard, Ploblem Solving and Programming Concepts, Pearson - Prentice Hall,
2009, 8th ed.
72. Gabriel Sudan, Sudan Function, https://en.wikipedia.org/wiki/Sudan_function
73. Andrew S. Tannenbaum, Computer Networks, Editura Pearson Education, 2002
74. A. Tanenbaum, Goodman, J. R., Organizarea structurată a calculatoarelor, Ed. Byblos, 2004
75. Robert W. Taylor, In Memoriam: J. C. R. Licklider (1915-1990), Systems Research Center, Palo Alto,
California , Digital Equipment Corporation, 1990
76. A. M. Turing, „On Computable Numbers, with an Application to the Entscheidungsproblem”,
Proceedings of the London Mathematical Society, 1937, 2 42: 230–65
77. Dragoș Vaida, Informatica în România - primii ani, Revista de politica ştiinţei şi scientometrie – serie
nouă, Vol.4, Nr. 1/2015, pag. 29-33, http://rpss.inoe.ro/articles/informatica-in-romania-primii-ani
78. Dragoș Vaida, Gr. C. Moisil, un mod de a privi matematica și cultura, În revista Curtea de la Argeș,
anul VIII, nr. 10(83), oct. 2017, http://www.curteadelaarges.ro/arhiva/VIII_10_83/VIII_10_83.pdf
79. Dragoș Vaida, Ani de studiu (1952- 1957): începuturi ale structurilor algebrice (I. Alexandru Froda,
Mihail Benado, Dan Barbilian - Amintiri, reflecții), Congresul al VII-lea al Matematicienilor
Români, Brașov, http://fmi.unibuc.ro/revistadelogica/articole/No1Art90.pdf,
80. Dragoș Vaida, Limbaje formale și tehnici de compilare. Aplicații ale algebrelor multisortate în
informatică, Centrul de multiplicare Universitatea din București, 1982
81. Ion Văduva, M. Lovin, M. Bogdan, D. Panaite, Limbajul SIMUB, manual de referință, Centrul de
multiplicare Universitatea din București, 1982
82. Ion Văduva, Douăzeci și cinci de ani de activitate a Centrului de Calcul al Universității din București,
Lucrările Sesiunii Știinţifice a Centrului de Calcul al Universităţii din Bucurșţti (1987), 20-21 februarie
1987, pp.6-14
83. Ion Văduva, Centrul de Calcul al Universității din București, creație a lui Grigore C. Moisil, în volumul
postum "Grigore C. Moisil și continuatorii săi, Ed. Academiei Române” (2007), pp. 515-519
84. Ion Văduva, Centrul de Calcul al Universităţii din Bucureşti (CCUB), pionierat în Informatica din
România, CNIV România, 29 SEPTEMBRIE 2014 - http://www.c3.cniv.ro/?q=2014/vaduva-ccub
85. Ion Văduva, Computing Center of the University of Bucharest, an Important Step in the History of
Computer Science in Romania(2014), In Proceedings of International Conference on Virtual Learning,
ICVL 2014, https://www.scribd.com/doc/243333879/Proceedings-of-ICVL-2014-ISSN-1844-...
86. Ion Văduva, History of Computer Science in Romania by Prof. Ion Văduva, In Proceedings of
International Conference on Virtual Learning, ICVL 2014, http://www.c3.icvl.eu/2014/vaduva-ccub
87. M. Vlada, Acad. Grigore C. Moisil și acad. Mircea Malița, matematicieni parteneri în “campania
Moisil” de informatizare a României anilor ’60-‘70, 2018 - http://c3.cniv.ro/?q=2018/malita
88. M. Vlada, Ciclul “Istoria Informaticii românești”: Prof. I. Văduva și prof. E. Căzănescu despre acad.
Gr. C. Moisil, 2018 - http://www.c3.cniv.ro/?q=2018/info-rom
89. M. Vlada, Adrian Adăscăliței, Ştefan Odobleja: A Scientific Visionary, precursor of Cybernetics and
Artificial Intelligence, Proceedings of the 12th International Conference On Virtual Learning (ICVL
2017), Ed. Universității din București, 2017
90. M. Vlada, Adrian Adăscăliței, History of Informatics. From recursivity to the Turing universal machine
and Horn clauses, Proceedings of the 12th International Conference On Virtual Learning (ICVL 2017),
414 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

Editura Universității din București, 2017, http://c3.icvl.eu/papers2017/icvl/documente/


pdf/section1/section1_paper1
91. M. Vlada, 2012 The Alan Turing Year – de la maşina Enigma şi testul Turing la Inteligenţa Artificială,
Lucrările Conferinței Naționale de Învățământ Virtual (CNIV 2012), Editura Universității din
București, 2012
92. M. Vlada, E. Otlăcan, , Românul Ștefan Odobleja (13 oct. 1902 - 4 sept. 1978), precursor al Ciberneticii
și al Inteligenței artificiale - http://www.c3.cniv.ro/?q=2018/odobleja
93. M. Vlada, Grigore C. Moisil, Computer Pioneer Award and the father of Romanian Computer Science,
http://c3.icvl.eu/2018/gr-c-moisil , 2018
94. M. Vlada, Adrian Adăscăliţei, Romanian experience and development of courses. society development:
vision on learning - Grigore C. Moisil, 110 YEARS AFTER BIRTH, In the 12th International Scientific
Conference on eLearning and Software for Education (eLSE), 2016, ELEARNING VISION 2020!,
VOL III Book Series: eLearning and Software for Education, Advanced Distributed Learning
Department, "Carol I" National Defense University, (ISSN: 2066 - 026X print 2066 - 8821 online), pp.
360-367, 2016, www.elseconference.eu
95. M. Vlada, Grigore C. Moisil – restituiri (2016), http://mvlada.blogspot.ro/2016/01/grigore-c-moisil-
restituiri.html
96. M. Vlada, 110 ani de la nașterea acad. Grigore C. Moisil, întemeietorul Informaticii din România –
Restituiri (2016), http://c3.cniv.ro/?q=2016/moisil-110ani
97. M. Vlada, Discipolii acad. Grigore C. Moisil și pionieri ai informaticii românești, În Lucrările celei de-a
XIV-a Conferință de Învățământ Virtual, 29 octombrie 2016, Editura Universității din București, ISSN
1842-4708, p. 19-33, http://c3.icvl.eu/papers2016/cniv/documente/pdf/sectiuneaA/sectiuneaA_lu...
98. M. Vlada, 60 de ani de la apariția Informaticii la Universitatea din Bucureşti (2015),
http://mvlada.blogspot.ro/2015/04/60-de-ani-de-la-aparitia-informaticii....
99. M. Vlada, Informatica la Universitatea din Bucureşti: 1960-1974-2004-2014 , (2014),
http://c3.cniv.ro/?q=2014/info-ub,http://mvlada.blogspot.ro/2014/04/info...
100. M. Vlada, Conferinţe la Academia Română „Începuturile Informaticii”: Gh. Păun, D. Vaida, I. Văduva,
D. Farcaș, http://www.c3.cniv.ro/?q=2018/cifa-mecipt , 2018
101. M. Vlada, "Fenomenul" informaticii românești - secvențe cu explicații, http://c3.cniv.ro/
?q=2018/restituiri
102. M. Vlada, Romanian Informatics Pioneers, Leon Livovschi and Octavian Bâscă at the University of
Bucharest, In Proceedings of the 10th International Conference on Virtual Learning (ICVL),
Timisoara, October 31 2015, Bucharest University Press (ISSN 1844-8933), pp. 37-43,
http://c3.icvl.eu, accessed 2017
103. M. Vlada, Informatica la Universitatea din Bucureşti, În Lucrările celei de-a XII-a Conferință de
Învățământ Virtual, 24-25 octombrie 2014, Editura Universității din București, ISSN 1842-4708, pag.
27-36, 2014, http://www.c3.cniv.ro, accessed 2017
104. M. Vlada, The Alan Turing Year, In Proceedings of the 7th International Conference on Virtual
Learning (ICVL), Special edition dedicated to “2012 Alan Turing Year”, Bucharest University Press,
ISSN 1844-8933), pp. 55-61
105. M. Vlada, Supremaţia limbajelor în domeniul procesării informaţiilor şi cunoştinţelor, Sesiunea de
comunicări ştiinţifice cu participare internaţională, “Provocări la adresa securităţii şi strategiei la
începutul secolului XXI”, Secţiunea E-Learning şi Software Educaţional, UNAP, 14 -15 aprilie 2005,
Editura Universităţii Naţionale de Apărare, Bucureşti, pp. 165-178, 2005.
106. M. Vlada, Realitatea Virtuală (Virtual Reality), tehnologie modernă a informaticii aplicate, CNIV-2004,
Noi tehnologii de E-Learning, Conferinţa Naţională de Învăţământ Virtual, Software Educaţional,
Ediţia a II-a, 29-31 octombrie 2004, Editura Universităţii din Bucureşti, 2004 (Editori: I. Chiţescu, H.
Georgescu, V. Preda, I. Văduva, I. Tomescu, M. Vlada, G. Pripoae) (ISBN 973-575-947-0)
(http://fmi.unibuc.ro/ro/cniv_2004/ ), pp. 11-28 (în colaborare cu M. D. Popovici), 2004
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 415

107. M. Vlada, Maple and MapleNet-integrated solutions for Web based learning in matematics, Science and
Engineering, CNIV-2004, Noi tehnologii de E-Learning, Conferinţa Naţională de Învăţământ Virtual,
Software Educaţional, Ediţia a II-a, 29-31 octombrie 2004, Editura Universităţii din Bucureşti, (Editori:
I. Chiţescu, H. Georgescu, V. Preda, I. Văduva, I. Tomescu, M. Vlada, G. Pripoae) (ISBN 973-575-
947-0) (http://fmi.unibuc.ro/ro/cniv_2004/), pp. 121-130, 2004
108. M. Vlada, Abordarea modernă a conceptului de algoritm, CNIV-2004, Noi tehnologii de E-Learning,
Conferinţa Naţională de Învăţământ Virtual, Software Educaţional, Ediţia a II-a, 29-31 octombrie 2004,
Editura Universităţii din Bucureşti, (Editori: I. Chiţescu, H. Georgescu, V. Preda, I. Văduva, I.
Tomescu, M. Vlada, G. Pripoae) (ISBN 973-575-947-0) (http://fmi.unibuc.ro/ro/cniv_2004/), pp. 231-
240, 2004
109. M. Vlada, Gândirea algoritmică - o filosofie modernă a matematicii şi informaticii, CNIV-2003, Noi
tehnologii de E-Learning, Conferinţa Naţională de Învăţământ Virtual, Software Educaţional, Ediţia I,
24-26 octombrie 2003, Facultatea de Matematică şi Informatică, Universitatea din Bucureşti
(http://fmi.unibuc.ro/ro/cniv_2003/)
110. M. Vlada, Limbaje şi Cunoastere versus Modelare şi Procesare, CNIV-2005, Virtual Learning-Virtual
Reality, Conferinţa Naţională de Învăţământ Virtual, Software Educaţional, Ediţia a III-a, 28-30
octombrie 2005, Editura Universității din Bucureşti, 2005 (Editori: I. Chițescu, H. Georgescu, V. Preda,
I. Văduva, I. Tomescu, M. Vlada, G. Pripoae) (ISBN 973-737-097-X) (http://fmi.unibuc.ro/ro/
cniv_2005/) , pag. 205-212
111. M. Vlada, Tehnologiile societăţii informaţionale, CNIV-2005, Virtual Learning-Virtual Reality,
Conferinţa Naţională de Învăţământ Virtual, Software Educaţional, Software şi Management
Educaţional, Ediţia a III-a, 28-30 octombrie 2005, Editura Universității din Bucureşti, 2005 (Editori: I.
Chițescu, H. Georgescu, V. Preda, I. Văduva, I. Tomescu, M. Vlada, G. Pripoae) (ISBN 973-737-097-
X) (http://fmi.unibuc.ro/ro/cniv_2005/), pag. 19-32
112. M. Vlada, De la teorema lui Green la geometria computaţională, CNIV-2006, Conferinţa Naţională de
Învăţământ Virtual, Software Educaţional, Ediţia a IV-a, 27-29 octombrie 2006, Editura Universităţii
din Bucureşti, http://fmi.unibuc.ro/cniv/2006/, 2006
113. M. Vlada, Adrian Posea, Ioan Nistor, Călin Constantinescu, Grafică pe calculator în limbajele Pascal şi
C, vol. I, II, Editura Tehnică, Bucureşti, 1992
114. M. Vlada, Matematica pentru elevi, abstractă sau utilă ?, În Lucrările celei de-a XI-a Conferință de
Învățământ Virtual, Editura Universității din București, ISSN 1842-4708, 2013, pag. 107-114
115. M. Vlada, O. Istrate, Concursul „Didactica Nova” - curriculum academic inovativ, În Lucrările celei de-
a XI-a Conferință de Învățământ Virtual, Editura Universității din București, ISSN 1842-4708, 2013,
pag. 19-24
116. M. Vlada, Structuri şi obiecte matematice cu aplicaţii în chimie şi fizică, În Lucrările celei de-a XI-a
Conferință de Învățământ Virtual, Editura Universității din București, ISSN 1842-4708, 2013, pag.102-
106
117. M. Vlada, Modele neliniare. Teorie şi aplicaţii, În Lucrările celei de-a X-a Conferință de Învățământ
Virtual, Editura Universității din București, CNIV 2012, ISSN 1842-4708, 2012, pag. 57-65
118. M. Vlada, Informatică aplicată. Modele de aproximare, software şi aplicaţii, Editura Universităţii din
Bucureşti, print, ISBN 778-606-16-0190-5, 257 pag., 2012
119. M. Vlada, Statistică și Informatică pentru chimie medicală și farmaceutică. Concepte, metode,
tehnologii, software și aplicații, Editura Universităţii din Bucureşti, ISBN 978-606-16-0940-6, 2017
(print, 395 pag.)
120. M. Vlada, New Technologies in Education and Research. Models and Methodologies, Technologies
and Software Solutions, LAMBERT Academic Publishing, ISBN 978-3-8433-6391-4
121. Neal Ziring, Dictionary of Programming Languages (Dictionary and script maintained by Neal Ziring):
http://cgibin.erols.com/ziring/cgi-bin/cep/cep.pl
416 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

122. John C. Whelan, Kelly Carey, SVG For Teaching 2D Graphics Standards, http://www.svgopen.org/
2005/papers/TeachingGraphicsStandards/index.html, 2005
123. ARPANET, http://en.wikipedia.org/wiki/ARPANET
124. CGAL, Computational Geometry Algorithms Library, http://www.cgal.org/
125. History of computing hardware, https://en.wikipedia.org/wiki/History_of_computing_hardware
126. Timeline of computing, https://en.wikipedia.org/wiki/Timeline_of_computing_hardware_before_1950
127. Timeline of computing, https://en.wikipedia.org/wiki/Timeline_of_computing_1950%E2%80%9379
128. Timeline of computing, 1980–1989:
https://en.wikipedia.org/wiki/Timeline_of_computing_1980%E2%80%9389
129. Timeline of computing, 1990–1999:
https://en.wikipedia.org/wiki/Timeline_of_computing_1990%E2%80%9399
130. Timeline of computing, 2000-2009:
https://en.wikipedia.org/wiki/Timeline_of_computing_2000%E2%80%9309
131. Timeline of computing, 2010-prezent:
https://en.wikipedia.org/wiki/Timeline_of_computing_2010%E2%80%9319
132. Wikipedia, https://en.wikipedia.org/wiki/Timeline_of_computing_2010%E2%80%9319
133. Computer Museum USA, https://www.computerhistory.org/chmhistory/
134. Computer Museum United Kingdom, (http://www.tnmoc.org/
135. Computer Museum Japan, http://museum.ipsj.or.jp/en/about/index.html
136. Computer Museum Germany, https://www.deutsches-museum.de/en/exhibitions/communication/
computers
137. Computer Museum Russia, http://www.computer-museum.ru/english
138. Internet Pioneers, http://www.ibiblio.org/pioneers/index.html
139. Genome Project, https://www.genome.gov/12011238/an-overview-of-the-human-genome-project/
140. Operating Systems, https://www.operating-system.org/betriebssystem/_english/os-liste.htm
141. Quantum Computer, http://www.nextbigfuture.com/201457/03/in-few-years-new-quantum-computers-
from.html
142. P-Systems, http://psystems.disco.unimib.it/download/MembIntro2004.pdf
143. GNU Operating Systems: http://www.gnu.org/
144. Operating Systems Articles: http://www.articlesbase.com/
ANEXĂ

Lista cărților de informatică din perioada 1955-2000


(ultima actualizare, Iunie 2019 - http://c3.cniv.ro/?q=2018/carti-info)

1. L. Bal şi F. Rado, Lecţii de nomografie, Ed. Tehnică, Bucureşti, 1956


2. Moisil Grigore, Scheme cu comandă directă cu contacte și reale, Ed. Academiei, 1957
3. D.V. Ionescu, Cuadraturi numerice, Ed. Tehnică, Bucureşti, 1957
4. D. Maros, Teoria mecanismelor şi a maşinilor, Editura Tehnică, Bucureşti, 1958
5. Moisil Grigore, Teoria algebrică a mecanismelor automate, Editura Tehnică, 1959
6. Moisil Grigore, Funcționarea în mai mulți timpi a schemelor cu relee ideale, Ed. Academiei, 1960
7. Vaida Dragoș, Utilizări ale calculatoarelor electronice de la I.F.A., București, Ed. Acad. Române,
1961
8. Moisil Grigore, Circuite cu tranzistori, vol. I, Editura Academiei, 1961
9. B. Janko, Rezolvarea numerică a sistemelor de ecuaţii liniare, Editura Academiei RSR, Bucureşti,
1961
10. Moisil Grigore, Circuite cu tranzistori, vol. II, Editura Academiei, 1962
11. Rudeanu Sergiu, Axiomelor laticelor si ale algenrelor booleene, Ed. Academiei, 1963
12. Marcus Solomon, Lingvistica matematica. Modele matematice în lingvistică, Ed. Didactică și
Pedagogică, București, 1963
13. Moisil Grigore, Teoria algebrică a mecanismelor automate (traducere in rusa) , 1963
14. Livovschi Leon, Automate finite cu elemente logice pneumatice sau hidraulice, Ed. Academiei,
1963
15. Marcus Solomon, Gramatici si automate finite, Ed Academiei, Bucuresti, 1964
16. Moisil Grigore, Teoria algebrică a mecanismelor automate (traducere în cehă) , Algebraicka teorie
automatu, Praha, Natiladatelstvi ceskosloveskis Akademie Ved, 1964
17. Damsker D., Principii și mijloace noi de automatizare a acționărilor electrice, Ed. Academeiei,
1964
18. Marinescu N., Barbu Eneea, Teoria circuitelor de comutatie, ed. II, Ed. Did. și ped., 1964
19. Moisil Grigore, Teoria algebrica a schemelor cu contacte și relee, Ed. Tehnică, 1965
20. Moisil Grigore, Funcționarea reală a schemelor cu contacte și relee, vol. I, Ed. Academiei, 1965
21. Dimitris N. Chorafas, Systems and Simulation, Academic Press, 1965
22. Marcus Solomon, E. Nicolau, S. Stati, Introducere în lingvistică matematică, Ed. Științifică, 1966
23. Vaida Dragos, Programarea calculatoarelor electronice, Ed. Academiei, 1967
24. Moisil Grigore, Theorie structurelle des automates finis, Ed. Gauthier-Villard, Paris, 1967
25. Racoveanu N., Calculatoare electronice si programare, Didactică și Pedagogică, 1968
26. Vaida Dragoș, Elemente de informatică aplicată, Bucuresti, Ed. Did. și Ped., 1968
27. Livovschi Leon, Circuite cu cantacte de relee, Ed. Academiei, 1968
28. Marcus Solomon, Boboc, Al., Enescu Gh., Popa C., Stati S., Limbaj, logică, filozofie, Ed.
Știintifică, Bucuresti, 1968
29. Costică Cazacu, Calculatoare Universale şi Teoria programării, Editura Științifică și Enciclopedică,
1968
30. Moisil Grigore, The algebraic theory of switching circuits, Pergamon Press, Oxford, New York,
1969
31. Claude Berge, Teoria grafurilor și aplicațiile ei, Editura Tehnică, București, 1969
32. Gh. Boldur, Procese informaționale și de decizie, Editura Științifică, București, 1969
418 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

33. Negoiță Constantin Virgil, Sisteme de înmagazinare și regăsire a informațiilor, Editura Academiei ,
1970
34. Văduva I., Analiza dispersională, Ed.Tehnică, București, 1970
35. Vaida Dragoș, Algoritmi de compilare, București, Ed. Did. și Ped., 1971
36. Nicolau Edmond, Omul Informațional, Ed. Junimea, Iași, 1971
37. Petre Dimo, Programarea în FORTRAN, Editura Didactică și Pedagogică, București, 1971
38. Costică Cazacu, Calculatoare cu program și teoria programarii, Editura Științifică și Enciclopedică,
1971
39. Stelian Niculescu, Noțiuni de informatică, Manual pentru școli profesionale, școli de maiștri, licee
industriale, Editura Didactică și Pedagogică, 1971 (primul manual de informatică destinat
învățământului preuniversitar).
40. Anton Dumitriu, Logica polivalentă, Editura Enciclopedică Romană, 1971
41. N. Costake, R. Eftimie, R. Zamfirescu, A. Chirila, FORTRAN (vol 2), Editura Tehnică, București,
1971
42. Niculescu Stelian, Noțiuni de informatică. Manual pentru școli profesionale, licee industriale, școli
de maiștri (primul manual de informatică pentru preuniversitar), Ed. Didactică și Pedagogică, 1972
43. Tomescu Ioan, Introducere in Combinatorica, Ed. Tehnica, Bucuresti, 1972
44. Stelian Niculescu, Inițiere în FORTRAN, Editura Tehnică, 1972.
45. E. Popoviciu, Teoreme de medie din analiza matematică şi legătura lor cu teoria interpolării,
Editura Dacia, Cluj, 1972
46. Margareta Draghici, Inițiere în COBOL, Editura Tehnică, București, 1972
47. W. S. Doru, D. D. McCracken, Metode numerice cu programe în FORTRAN, Editura Tehnică,
București, 1972
48. Liviu Sofonea, Ariana Botea, Elemente de programare automata-FORTRAN IV, Centrul de
multiplicare al Universității din București, 1972
49. Georgescu H. , Programarea în limbajul PL/1. În memoria prof. Gr. C. Moisil, Ed. Academiei, 1973
50. Niculescu Stelian, Trandafir Ileana , Programarea la calculatoare electronica. Manual pentru licee
de specialitate anii III și IV, Ed.Didactică și Pedagogică, 1973
51. Popa Marin, Organizarea producției - COBOL, Ed. Universității, 1973
52. Căzănescu Virgil, M.Becheanu, C.Nastasescu și S.Rudeanu), Logica matematică și teoria
mulțimilor, Editura Didactică și Pedagogică, 1973
53. Văduva I., N. Popoviciu, Introducere programarea automată cu aplicații la cercetarea științifică, Ed.
Did. Ped., București, 1973
54. Văduva I., C. Dinescu, B. Savulescu, Metode matematice de organizarea și conducerea producției,
(Partea I), Ed. Did. și Ped., București, 1973
55. Moldovan Grigor, Scheme logice și programe FORTRAN, Universitatea din Cluj-Napoca, 1973
56. Ștefan MUSTĂȚEA, Ioan ODĂGESCU - programarea calculatoarelor electronice, FORTRAN IV,
Culegere de probleme rezolvate și propuse, Editura ASE, București, 1973
57. Horia Georgescu, Programarea în limbajul PL/1, Editura Academiei RSR, București, 1973
58. Dragoș Vaida, Elemente de teoria limbajelor de programare, Centrul de multiplicare al Universității
din București, 1973
59. H. Freudental, Limbajul logicii matematice, Editura Tehnică, București, 1973
60. Ion Creangă, C. Reischer, D. Simovici, Introducere algebrică în informatică-Teoria automatelor,
Iași, 1973
61. Tiberiu Ionescu, Grafuri-aplicații (vol 1), Editura Didactică și Pedagogică, București, 1973
62. Marin Popa, Organizarea producției-COBOL (note de curs), Centrul de multiplicare al Universității
din București, 1973
63. Adrian Petrescu, Calculatoare, Automate și Programare, Editura Didactică și Pedagogică,
București, 1973
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 419

64. Rudeanu Sergiu, Elemente de teoria mulțimilor, Tipografia Universității din București, 1973
65. Arsac Jacques, Informatica, Editura Enciclopedică Română, 1973
66. Knuth D. E., Tratat de programarea calculatoarelor. Algoritmi fundamentali, Ed. Tehnică, 1973
67. Popoviciu N., Constantina Ioan, Victorina Panaite, P. Radovici, St. Ștefănescu, Culegere de
exerciții de programare în FORTRAN, Ed. Did. și Ped., București, 1974
68. Căzănescu Virgil, Curs de bazele informaticii (3 fascicole), Tipografia Universității București, 1974
69. Văduva I., C. Dinescu, B. Savulescu, Metode matematice de organizarea și conducerea producției,
(Partea II), Ed. Did. și Ped., București, 1974
70. M. HANGANUT, I. DANCEA, O. NEGRU,Programe FORTRAN în automatică, Editura Tehnică,
București , 1974
71. Al. TEODORESCU, I. CATONA, C. POPESCU, Sistemul FELIX C-256. Limbajul ASSIRIS,
Editura Tehnică, București, 1974
72. M. HĂNGĂNUȚ, I. DANCEA, O. NEGRU, Programe FORTRAN comentate în automatică,
Editura Tehnică, Bucureşti, 1974
73. Stelian Niculescu, Ileana Trandafir, Programarea la calculatoare electronice – COBOL, Manual
pentru Licee economice, Editura Didactică și Pedagogică,1974.
74. Valeriu Iorga, Calcul Numeric, Litografie Institutul Politehnic București, 1974
75. Ion Creangă, C. Reischer, D. Simovici, Introducere algebrică în Informatică-Limbaje formale,
Editura Junimea, Iași, 1974
76. N. V. Ghircoiasu, C. Miron, Grafuri de influență și aplicațiile ei în tehnică, Editura Tehnică,
București, 1974
77. *** Seminarul de Teoria Sistemelor și aplicații, Oficiul de informare și documentare în știintele
sociale și politice, București, mai 1974
78. Knuth D. E, Tratat de programarea calculatoarelor-Algoritmi fundamentali, Editura Tehnică,
București, 1974
79. Tiberiu Ionescu, Grafuri-aplicații (vol 2), Editura Didactică și Pedagogică, București, 1974
80. Sergiu Rudeanu, Boolean Functions and Ecuations, North-Holland Publishing Company,
Amsterdam, 1974
81. Centrul de calcul (CCUB), Exerciții de programarea calculatoarelor, Centrul de multiplicare al
Universității din București, 1974
82. Vasile Baltag, Optimizarea sistemelor de operare ale calculatoarelor numerice, Editura Facla,
Timișoara, 1974
83. Georgescu Horia, Basca Octavian, Programe in limbajul Fortran, Ed. Albatros, 1975
84. Căzănescu Virgil, Curs de bazele informaticii: Limbaje raționale și automate, Tipografia
Universității București, 1975
85. Creangă I., D. Simovici, Teworia codurilor, Ed,. Didactică și pedagogică, 1975
86. Horia GEORGESCU, Octavian BÂSCĂ,Programe în limbajul FORTRAN, Editura Albatros,
București, 1975
87. Gabriel DIACONESCU, Ion LUNGU, Limbajul de programare ASSEMBLER, Editura ASE,
București, 1975
88. T. ILIN, A. SOCENEANȚU, G. GAVRILESCU, Limbaje de asamblare pentru calculatoarele
electronice numerice: Asamblare, Editura Facla, Timișoara, 1975
89. Stelian Niculescu, Noțiuni de prelucrare automata a datelor, Editura Didactică și Pedagogică, 1975.
90. T. Popoviciu, Analiză numerică. Noţiuni introductive de calcul aproximativ, Editura Academiei
RSR, 1975
91. L. Nemeti, Programarea în timp a fabricaţiei, Ed. Dacia, 1975
92. Paul Constantinescu, C-tin Virgil Negoiță, Sisteme informatice-modele ale conducerii și sistemelor
conduse, Editura Tehnică, București, 1975
420 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

93. Pisau Gh, Toma C, Mihăescu I, Elaborarea și introducerea Sistemelor Informatice, Editura Tehnică,
București, 1975
94. Vasile Bita, Cristian Antonescu, Mircela Iosep, Ileana Trandafir, Sisteme Informatice, Editura
Didactică și Pedagogică, București, 1975
95. Ioan Tomescu, Grafuri și programare liniară, Editura Didactică și Pedagogică, București, 1975
96. Grigore Moisil, Lecții despre logica raționamentului nuanțat, Editura Științifică și Encicloprdică,
București, 1975
97. Florica Câmpan, De la papirusul RHIND la calculatorul electronic, Editura Ion Creangă, București,
1975
98. H. Georgescu, O. Bâscă, Programe în limbajul FORTRAN, Editura Albatros, București, 1975
99. Vaida Dragoș, Limbaje formale și tehnici de compilare, Centrul de Multip. Univ. din Buc. , 1976
100. Văduva Ion et al., Exerciții și probleme de programarea calculatoarelor, Tipografia Universității din
București, 1976
101. Bătătorescu Anton, Graph Theory, Mathematical Programming and Optimization – Cursul
Postuniversitar UNESCO "Informatica și matematici aplicate pentru cercetare", Centrul de Calcul
al Universității din București, 1976
102. Căzănescu Virgil, Curs de bazele informaticii: Partea I, Tipografia Universității București, 1976
103. Văduva I., Modele de simulare (cu Appendix RAVAGE), Centrul Mult. Univ., București, 1976
104. Marcus Solomon, Gr. C. Moisil, Opera matematică, vol. I, Editura Academiei, București, 1976
105. Moldovan Grigor, Scheme logice și programe FORTRAN, Ed. Didactică și pedagogică, 1976
106. Vasile PETEANU, Sabin GORON, Geza VENCZEL, Ioan MOLDOVAN, Culegere de probleme
de programare în limbajul COBOL, Editura DACIA, 1976
107. Emil MUNTEAN, Viorel COSTEA, Mircu MITROV, Programarea în limbaje de asamblare
ASSIRIS, Editura Tehnică, București, 1976
108. Donald E.KNUTH, Tratat de programarea calculatoarelor: algoritmi fundamentali, vol.1, Editura
Tehnică, Bucureşti, 1976
109. Donald E.KNUTH, Tratat de programarea calculatoarelor, Sortare și căutare vol 2, Editura
Tehnică, Bucureşti, 1976
110. V. PESCARU, I. CATONA, D. DUȚĂ, Cr. POPESCU, I. SATRAN, Fișiere, baze și bănci de date,
Editura Tehnică, Bucureşti, 1976
111. D. W. DAVIES, D. L. BARBER, Rețele de interconectarea calculatoarelor, Editura Tehnică,
Bucureşti, 1976
112. Ion Păvăloiu, Introducere în teoria aproximării soluţiilor ecuaţiilor, Ed. Dacia, 1976
113. Constantin Popovici, Leon Livovschi, Nicolae Țăndăreanu, Curs de bazele informaticii automate și
limbaje formale, Tipografia Universității din București, 1976
114. Dragoș Vaida, Limbaje formale și tehnici de compilare, Tipografia Universității din București,
1976
115. Raul de Palma, Algebra binară a lui Boole și aplicațiile ei în Informatică, Editura Tehnică,
București, 1976
116. Gh. Boldur-Lațescu, Gh. Ciobanu, I. Bancilă, Cartea analistului de sisteme, Editura Științifică și
Enciclopedică, București, 1976
117. E. Munteanu, V. Costea, M. Mitrov, Programarea în limbajul de asamblare ASSIRIS, Editura
Tehnică, București, 1976
118. Alexandru Surdu, Elemente de logica instituțională, Editura Academiei RSR, București, 1976
119. Ion Văduva, Modele de simulare (note de curs), Centrul de multiplicare al Universității din
București, 1976
120. Casimir Macarie, Anastase Pitiș, Limbajul de programare COBOL, Editura Didactică și
Pedagogică, București, 1976
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 421

121. L. Livovschi, Bazele Informaticii-Limbajul FORTRAN, Scheme logice, Tipografia Universității


din București, 1976
122. Horia Georgescu, Petre Preoteasa, Curs de Bazele Informaticii-Introducere în Sistemul de Operare
SIRIS, Tipografia Universității din București, 1976
123. Octavian Bâscă, Sisteme de Operare și Teleprelucrarea Datelor, Tipografia Universității din
București, 1976
124. Octavian Bâscă, Marin Popa, Culegere de probleme de Structuri de date și Sisteme de Operare,
Tipografia Universității din București, 1976
125. Constantin Popovici, Curs de Teoria algoritmilor, Functii recursive și Mașini Turing, Tipografia
Universității din București, 1976
126. N. J. Lehmann, Methodic der Programmierung und Programmverification, Techniche Universitat
Dresden, 1976
127. Vasile Peteanu, S. Goran, G. Venczel, I. Moldovan, Culegere de probleme de programare în
limbajul COBOL, Editura Dacia, Cluj, 1976
128. Vasile Vâcaru, Sabin Valceanu, Calculatorul electronic-unealta secolului XX, Editura Ion Creangă,
București, 1976
129. Donald E. Knuth, Tratat de programarea calculatoarelor-Sortare și căutare, Editura Tehnică,
București, 1976
130. Popovici C. P., Livovschi L., Țăndăreanu N., Curs de bazele informaticii. Automate și limbahe
formale, Tipografia Universității din București, 1976
131. Văduva Ion, Modele de simulare cu calculatorul, Ed. Tehnică, 1977
132. Atanasiu A., Probleme de limbaje formale și tehnici de compilare, Tipografia Universității din
București, 1977
133. Rudeanu S., Curs de bazele informaticii. Logica Matematică, Fascicula I. Elemente de algebră
universală, Tipografia Univ. din București, 1977
134. Rudeanu S., Curs de bazele informaticii. Logica Matematică. Fascicula a II-a. Elemente de algebră
universală, Tipografia Univ. din București, 1977
135. Georgesu H., Preoteasa P., Curs de bazele informaticii, introducere in sistemul de operare SIRIS
(ed. II), Catedra de informatica și analiză aplicată, Tipografia UB, 1977
136. Valer ROȘCA, Constantin APOSTOL, Ion IVAN, Ion Gh. ROȘCA, Limbaje de programare.
Limbajul de programare ASSIRIS, Lito ASE, București, 1977
137. Valer ROȘCA, Constantin APOSTOL, Ion IVAN, Ion Gh. ROȘCA, Memorator pentru limbajul de
programare ASSIRIS, Lito ASE, București, 1977
138. Sever GROZE, Gheorhe COMAN, Bazele informaticii, Editura Universității Babeș-Bolyai, Cluj-
Napoca, 1977
139. Dan DOBRESCU, Florentina IOANIȚESCU, Limbaje de programare pentru calculatoare de
proces, Editura Albatros, București, 1977
140. Stelian Niculescu, Ioana Moisil, Mihai Radu, Dumitrescu, Limbaje de programare, Manual pentru
licee industriale anul II, școli postliceale, Editura Didactică și Pedagogică, 1977
141. N. Nediță, Stelian Niculescu, C. Zidaroiu, Tematici aplicate în tehnica de calcul, Editura Didactică
și Pedagogică, Manual pentru Licee de informatică, clasa a XII-a, 1977
142. C. Giumale, V. Iorga, Programare sistematică în FORTRAN, Litografie Institutul Politehnic
București, 1977
143. L. Șerbănați, C. Giumale, V. Iorga, F. Moldoveanu, Programare sistematică în FORTRAN și
Pascal, Editura Tehnică, 1977
144. Şt. N. Berṭi, Aritmetica intervalelor, Editura Academiei RSR, 1977
145. Silviu Guiașu Curs de Teoria Codurilor, Tipografia Universității din București, 1977
146. Cazacu C., Jucan T., Programarea în limbajul FORTRAN. Calculatorul Felix C-256, Ed. Junimea,
1978
422 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

147. Popa Marin, Limbajul COBOL și aplicații, Ed. Universității, 1978


148. Atanasiu A., Limbaje formale si tehnici de compilare, Caiet de laborator, vol. I, Tipografia
Universitatii din Bucuresti, 1978
149. Văduva I., Tehnici de analiza și proiectarea sistemelor informatice. Tabele de decizie, Centrul Mult.
Univ. din București, 1978
150. C. Cazacu, T. Jucan, Programarea în limbajul FORTRAN calculatorul FELIX C 256, Editura
Junimea, Iași, 1978
151. Mihai JITARU, Alexandru TEODORESCU - Limbaje de programare, ASSIRIS, manual pentru
licee de matematică și fizică, clasa a XII-a, Editura didactică și pedagogică, București, 1978
152. Stelian Niculescu, Mihai Radu Dumitrescu, Algoritmi și metode de reprezentare, Editura Didactică
și Pedagogică, Manual clasa a-IX-a, 1978.
153. M. Jitaru, St. Niculescu, C. Macarie, Îndrumator de limbaje de programare (16 Limbade de
programare), Editura Tehnică, 1978.
154. Ion D. Ion, C. Niță, Elemente de aritmetică cu aplicații în tehnici de calcul, Editura Tehnică,
București, 1978
155. Dan Ionescu, Livia Nisipeanu, Emil Stoica, Bazele matematice pentru calculatoare numerice,
Editura Tehnică, București, 1978
156. L. Livovschi, Bazele Informaticii-Elaborarea schemelor logice, Tipografia Universității din
București, 1978
157. Marin Popa, Limbajul COBOL și aplicații, Editura Universității din București, 1978
158. Ioan Tomescu, Combinatorică și Teoria Grafurilor, Tipografia Universității din București, 1978
159. Grigor Moldovan, Scheme logice și programe în FORTRAN-Culegere de probleme, Editura
Didactică și Pedagogică, București, 1978
160. Horia Georgescu, Petre Preoteasa, Introducere în Sistemul de Operare SIRIS, Editura Albatros,
București, 1978
161. Dan Ionescu, Livia Nisipeanu, Emil Stoica, Baze matematice pentru calculatoare numerice, Editura
Tehnică, București, 1978
162. Țăndăreanu N., Aplicații la Cursul de Bazele informaticii, Tipografia Universității din București,
1978
163. Atanasiu A., Limbaje formale și tehnici de compilare, Caiet de laborator, Tipografia Universității
din București, vol. II, 1979
164. Văduva I., T.Bălănescu, H.Georgescu, S. Gavrila, M. Gheorghe, L. Sofonea, Concepte moderne de
programare in limbajul PASCAL, Ed. 1 si 2, Centrul Mult. Univ. din București, 1979
165. Ilie VĂDUVA, Gheorghe POPA, Vasile FLORESCU, Programarea calculatoarelor electronice în
limbajul COBOL, prin metoda instruirii programate, Editura ASE, București, 1979
166. Leon LIVOVSCHI, Bazele informaticii, Editura Albatros, București, 1979
167. Mircea MALIȚA, Mihai DRĂGĂNESCU (coordonaqtori), Viitorul electronicii și informaticii,
Editura Academiei RSR, București, 1979
168. Stelian NICULESCU, FORTRAN, inițiere în programare structurată, Editura Tehnică, București,
1979
169. Stelian Niculescu, Algoritmi, Editura Tehnică, 1979.
170. Stelian Niculescu, FORTRAN – Inițiere în programarea structurată, Editura Tehnică, 1979.
171. Livovschi Leon, Bazele informaticii. Partea I. Limbajul FORTRAN - Sheme logice, Tip.
Universității din București, 1979
172. L. Livovschi, Bazele Informaticii- structura și funcționarea calculatorului, Tipografia Universității
din București, 1979
173. L. Livovschi, Bazele informaticii, Editura Albatros, București, 1979
174. Stelian Niculescu, FORTRAN-Inițiere în programarea structurată, Editura Tehnică, București, 1979
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 423

175. Adam M., Nistor I., Socrate - sistem de gestiunea bazelor de date, Tipografia Universității din
București, 1980
176. Tomescu Ioan, Leu A., Matematica aplicată în tehnica de calcul, Ed. didactică și pedagogică,
București, 1980
177. Căzănescu Virgil, Curs de scheme de programe: Latici continue, Tipografia Universittiți București,
1980
178. Atanasiu A., Limbaje formale și tehnici de compilare, Caiet de laborator, Tipografia Universității
din București, vol. III, 1980
179. Marcus Solomon, Gr. C. Moisil, Opera matematică, vol.II, Editura Academiei, București, 1980
180. Vaida D., A. Atanasiu, Limbaje formale și tehnici de compilare, Caiet de lucrări practice, Ed. Univ.
din București, vol 1 1978, vol 2: 1979, vol. 3,1980
181. Valer ROȘCA, Constantin APOSTOL, Ion IVAN, Ion Gh. ROȘCA, Limbaje de programare,
Limbajul FORTRAN și FORTRAN conversațional, LITO ASE, București, 1980
182. Petre Preoteasa, Luca Dan Șerbănați, Matematica aplicată în tehnica de calcul, Manual de clasa a
XI-a pentru liceele de matematică-fizică, Ed. Didactică și Pedagogică, 1980
183. Adrian Atanasiu, Limbaje formale și tehnici de compilare, Tipografia Universității din București,
1980
184. Leon Livovschi, Scheme logice, Editura Tehnică, București, 1980
185. Gh. Păun, Mecanisme generative ale proceselor economice, Editura Tehnică, București, 1980
186. I. Constantinescu, D. Golumbovici, C. Militaru, Prelucrarea datelor experimentale cu calculatoare
numerice, Editura Tehnică, București, 1980
187. Niculescu Stelian, Algoritmi. Limbaj pentru descrierea algoritmilor, Ed. Tehnică, 1981
188. Popescu Elena-Liliana, Ferent G., Exerciții de programare în limbajul FORTRAN IV, Tipografia
Universității din București, 1981
189. Căzănescu Virgil, Curs de scheme de programe: Ecuații recursive cu domenii, Tipografia
Universității din București, 1981
190. Căzănescu Virgil, Curs de bazele informaticii: Introducere în logica matematică, Tipografia
Universității din București, 1981
191. Văduva I., Sisteme informatice, Centrul de mult. Univ. Buc., 1981
192. Ilie VĂDUVA, , Mihai JITARU, Vasile FLORESCU, Conceperea şi realizarea programelor
COBOL, Editura Ştiinţifică şi Enciclopedică, Bucureşti, 1981
193. Tiberiu Popescu (coord), Valentin Cristea, Petrica Dumitru, Cristian Giumale, Valeriu Iorga,
Florica Moldoveanu, Luca Dan Serbanati, Dictionar de informatică, Ed. Științifică și Enciclopedică,
București, 1981
194. Florescu M., Nicolau Ed., Niculescu-Mizil E., Bilciu C., Istoria științelor în România. Cibernetica,
Comitetul român de istoria și filozifia științei, Ed. Academiei RSR, 1981
195. Ion Păvăloiu, Rezolvarea ecuaţiilor prin interpolare, Ed. Dacia, 1981
196. L. Livovschi, H. Georgescu, C. Popovici, N. Țăndăreanu, Bazele Informaticii, Editura Didactică și
Pedagogică, București, 1981
197. Eduard Radaceanu, Limbaje de Simulare, Editura Militară, București, 1981
198. Liviu Dumitrașcu, Alexandru Ioachim, Tehnici de construire a programelor cu structuri alternative,
Editura Academiei RSR, București, 1981
199. Valentin Hogea, Nicolae Pavel, Programe COBOL pentru sistemul personal, Editura Junimea, Iași,
1981
200. E. Balla, I. Balla, I. Jurca s.a, Programarea calculatoarelor-Studii și aplicatii, Editura Facla,
Timișoara, 1981
201. Tomescu I., Probleme de combinatorică și teoria grafurilor, Ed. Did. și Ped., 1981
202. Livovsch L., Popovici C., Georgescu H., Țăndăreanu N., Bazele informaticii, Ed. Did.si Ped. 1982
424 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

203. Vaida Dragoș, Limbaje formale și tehnici de compilare. Aplicații ale algebrelor multisortate în
informatică, Centrul de multipl. Univ. din Buc., 1982
204. Văduva I., M. Lovin, M. Bogdan, D. Panaite, Limbajul SIMUB, manual de referință, Centrul de
multiplicare Univ. din București, 1982
205. Rudeanu S., Curs de bazele informaticii. Latici si algebre booleene. Tipografia Univ. din București,
1982
206. Orman Gabriel, Limbaje formale, Editura Tehnică, 1982
207. Dan FARCAȘ, Ilie VĂDUVA, Vasile FLORESCU, Autoinstruire în programare: date, algoritmi,
depanare, cartele de comandă, limbajul COBOL, programe complexe, Editura Tehnică, 1982
208. Stelian Niculescu, Dan Petre Golesteanu, Macroprocesoare și Limbaje extensibile, Editura
Științifică și Enciclopedică, 1982.
209. Iosif Kaufmann, Ioan Jurca, Dorina Petriu, Vladimir Cretu, Programarea în limbajul ADA, Editura
Facla, Timișoara, 1982
210. Ion Văduva, V. Florescu, D. Farcaș, Gh. Popa, N. Mihavici, Autoinstruire în programare, Editura
Tehnică, București, 1982
211. Sergiu Rudeanu, Curs de Bazele Informaticii-Latici și algebre Boole, Tipografia Universității din
București, 1982
212. Nicolae Rădescu, Eugenia Rădescu, Probleme de Teoria Grafurilor, Editura Scrisul Românesc,
Craiova, 1982
213. Virgil Craiu, Octavian Bâscă, Elemente de Calcul numeric și programare (ediția a 2-a), Tipografia
Universității din București, 1982
214. Văduva Ion, Gheorghe Petrescu, Ileana Popescu, Ștefan Ștefănescu, Vasile Stoica, Culegere de
probleme și exerciții de simulare. Tipografia Universității din București, 1983
215. Căzănescu Virgil, Introducere în teoria limbajelor formale, Editura Academiei, 1983
216. Căzănescu Virgil, Curs de bazele informaticii: Volumul I, Tipografia Universității București, 1983
217. Căzănescu Virgil, Curs de bazele informaticii: Volumul II, Tipografia Universității din București,
1983
218. Atanasiu A., Sisteme informatice pentru unități economice, Tipografia Universității din București,
1983
219. Văduva I., I. Odăgescu, M. Stoica, Simularea proceselor economice, Ed. Tehnică, București, 1983
220. Văduva I., l. Popescu, Șt. Ștefănescu, Gh. Petrescu, V. Stoica, Exerciții și probleme de simulare,
Centrul Mult. Univ. din București, 1983
221. Atanasiu A., Sisteme informatice pentru unități economice, Ed. Univ. din București, 1983
222. Donald E. KNUTH, Tratat de programare a calculatoarelor: algoritmi seminumerici, numere
aleatoare, vol. 3, Editura Tehnică, Bucureşti, 1983
223. Luca Dan Șerbănați, Către un model al metodei de proiectare a produselor program, în C. Popa
(coord.), Logica acțiunii. Studii, Pag. 57-76, Ed. Științifică și Enciclopedică, București, 1983
224. Popescu Ileana, Rizzoli Irina, Stefan Cristina, Probleme de analiză numerică rezolvate cu
calculatorul, Tipografia Universității din București, 1983
225. Petrovici V., Golcea Fl., Programarea în limbajul C, Editura Tehnică, 1993
226. Tomescu I., Leu A., Matematica aplicată în tehnica de calcul, clasa a X-a, Ed. Did. și Ped., 1983
227. Vaida Dragoș, Mateescu Alexandru, Limbaje formale și tehnici de compilare - Capitole speciale de
limbaje formale, Tipografia Univ. din București, 1984
228. Căzănescu Virgil, C. Calude, Bazele informaticii: Lecții de logică matematică, Tipografia
Universității București, 1984
229. Marcus Solomon, Gândirea algoritmică, EdituraTehnică, București, 1982
230. Calude Cristian, Virgil Căzănescu, Bazele Informaticii. Lecții de logica matematică, Ed. Univ. din
București, 1984
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 425

231. Ivan Ion, Arhire Romulus, Informatică Economică: Evaluarea performanței programelor COBOL,
lito ASE, București, 1984
232. Teodor VUSCAN, Sanda CHERATA, Smaranda DERVESTEANU, Andrei ENYEDI, Ioan VESA
si Lidia MOLDOVAN, FORTRAN - 77, Manual de programare, ITC Cluj-Napoca, 1984
233. Luca Dan Șerbănați, Valentina Cristea, Florica Moldoveanu, Valeriu Iorga, Programarea
sistematică în limbajele Pascal și FORTRAN, Ed. Tehnică, București, 1984
234. S. Călin, I. Dumitrache, C. Nitu, F. Munteanu, V. Iorga, S.Dumitriu, Reglarea numerică a
proceselor tehnologice, Editura Tehnică, 1984
235. Drăgănescu M., Petrescu A., Ștefan Gh., Calculatoare electronice din generația a V-a, Ed.
Academiei, 1985
236. Drăgănescu Mihai, Baltac V., Viitorul industriei de programare, Ed. Academiei, 1985
237. INFO-Iași 1985, Lucrările celui de-al V-lea colocviu de Informatică, 18-19 oct. 1985 (2 vol), Univ.
Al.I.Cuza Iași, ITCI – Filiala Iași, 1985
238. Albu M., D. Enăchescu, Procese nestaționare de redistribuire a energiei în crusta terestră (cu
aplicații în FORTRAN), Ed. Tehnică, București, 1985
239. Moldovan Grigor, Bazele informaticii II, Universitatea din Cluj-Napoca, 1985
240. Ioan ODĂGESCU, Gheorghe SABĂU, Limbajul COBOL fără profesor, Editura Tehnică,
București, 1985
241. Liviu DUMITRAȘCU, Înățând Cobol ... conversând cu calculatorul, vol. 1 și 2, Editura Tehnică,
București, 1985
242. Dan ȘERBĂNAȚI, Valentin CRISTEA, Claudiu POPESCU, Limbajul MACRO-11, Îndrumar de
laborator, Editura UPB, București, 1985
243. Luca Dan Șerbănați, Cristian Giumale, Inteligența artificială, Ed Tehnică, București, 1985
244. Viorel Păun, Bazele programarii în limbajul C++ - Probleme alese, Editura Tehnică, București,
1985
245. L. Livovschi, H. Georgescu, Bazele Informaticii-Algoritmi, Elaborare și Complexitate, Tipografia
Universității din București, 1985
246. Ion Odăgescu, Gh. Sabău, Limbajul COBOL fără profesor, Editura Tehnică, București, 1985
247. Adrian Petrescu (coordonator) s.a, Totul despre calculatorul personal aMIC (vol 1 și vol 2), Editura
Tehnică, București, 1985
248. Drăgănescu M., Petrescu A., Ștefan Gh., Calculatoare electronice din gen. a V-a, Editura
Academiei RSR, 1985
249. Baltac V. și colectiv, Calculatoare electronice. Grafică interactivă și prelucrarea imaginilor, Editura
Tehnică, 1985
250. Văduva Ilie, Baltac V. ș. a., Ingineria programării, vol. I, Editura Academiei, 1985
251. Văduva I., E. Perjeriu, Îndrumar pentru lucrări de laborator la cursul de BAZELE INFORMATICII,
anul I, Centrul Mult. Univ. din București, 1986
252. Macarie C., Buznea G., Gaspar R., Programarea în limbajui FORTRAN 77, Institutul pentru
Tehnică de Calcul, București, 1986
253. Lucrările primului colocviu național de Limbaje, Logică, Lingvistică matematică, Brașov 5-7 iunie
1986. Univ. Brașov, Proceesing, 1986
254. Moldovan Grigor, Minicalculatorul CORAL și sistemul de operare MIX, Universitatea din Cluj-
Napoca, 1986
255. Teodor VUSCAN, Sanda CHERATA, Smaranda DERVESTEANU, Andrei ENYEDI, Ioan
VESA,Lidia MOLDOVAN, FORTRAN - 77, Manual de operare, ITC Cluj-Napoca, 1986
256. Emil MUNTEAN, Ioan MIHUȚ, Adrian IVANOV, Iniţiere în limbajul ADA, Editura Tehnică,
București, 1986
257. V. Craiu, R. Enache, O. Bâscă, Teste de concordanță cu programe în FORTRAN, Editura Științifică
și Enciclopedică, București, 1986
426 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

258. Shirley M. Dowdy, Statistical Experiments using BASIC, Duxbury Press, Boston, 1986
259. *** Sanyo GW-BASIC ver. 3.0-Manuel Utilisateur, Microsoft Corporation, 1986
260. Mihai Jitaru, Utilizarea minicalculatoarelor-memento COBOL, Microinformatica, Cluj, 1986
261. Casimir Macarie, Georgeta Buznea, Rodica Gașpar, Programarea în limbajul FORTRAN 77,
Microinformatica, Cluj, 1986
262. Sorin Frincu, Algoritmi-Reprezentarea lor prin scheme logice, Microinformatica, Cluj, 1986
263. Constantin Balea, Automatica, Manegement, Calculatoare (AMC vol 52), Editura Tehnică, București,
1986
264. Macarie C., Buznea G., Gaspar R., Programarea în limbajul FORTRAN 77, Tipografia ITC, 1986
265. L. Livovschi, H. Georgescu, Sinteza și analiza algoritmilor, Editura Tehnică, 1986
266. Davidovici A., Boldur Bărbat, Limbaje de programare pentru sisteme în timp real, Editura Tehnică,
1986
267. Marinescu Gheorghe, Rizzoli I., Ștefan C., Popescu Ileana, Probleme de analiză numerică rezolvate
cu calculatorul, Editura Academiei, București, 1987
268. Popescu Ileana, State Luminița, Metode probabiliste în inteligența artificială, Tip. Univ. din
București, 1987
269. Atanasiu A., Bazele informaticii pentru anul II, Tipografia Universității București, 1987
270. INFO-Iași 1987. Lucrările celui de-al VI-lea colocviu de Informatică, 9-10 oct. 1987 Univ. Al.I.Cuza
Iași, ITCI – Filiala Iași, 1987
271. Lucrările sesiunii știintifice a Centrului de calcul a Univ. București, 20-21 februarie 1987, Ed. Univ.
din București, 1987
272. Calude Cristian, Teoria algoritmilor, Ed. Univ. București, 1987
273. Moldovan Grigor, MATH-I, Biblioteca de programe științifice pentru calculatoarele personale
românești, Universitatea din Cluj-Napoca, 1987
274. Farcaș D. Dan, Automate aleatoare cu utilități, Ed. Științifică și Enciclopedică, 1987
275. Ștefan MUSTĂȚEA, Dan SOMNEA, Mircea PĂTRULESCU, Sistemul dBASE II, prezentare,
utilizare, studiu de caz, partea a I-a și partea a II-a, Studii și Cercetări de Calcul Economic și
Cibernetică Economică, vol. 22, n2. 2 și nr, 3, 1987.
276. Luca Dan Șerbănați, Limbaje de programare și compilatoare, Ed. Academiei RSR, București, 1987
277. Cristian Giumale, Dan Preotescu, Luca Dan Șerbănați, Dan Tufiș, Gheorghe Tecuci, Dan Cristea,
LISP, Ed. Tehnică, vol.1, 1987
278. E. Kalisz, D. Suciu, V. Iorga, Îndrumar de laborator la disciplina Programarea Calculatoarelor,
Litografie Institutul Politehnic București, 1987
279. T. Petrila, C.I. Gheorghiu, Metode element finit și aplicaţii, Editura Academiei RSR, Bucureşti, 1987
280. Stelian Niculescu, Ghid pentru predarea noțiunilor de informatică în învățământul preuniversitar,
Editura ICSIT-ICI, 1987
281. Octavian Bâscă, Ileana Popescu, Sisteme de Operare (vol 1), Tipografia Universității din București,
1987
282. Ion Văduva, Tehnici de realizare a Sistemelor Informatice-Note de curs, Tipografia Universității din
București, 1978
283. *** Lucrarile Sesiunii Științifice a Centrului de Calcul al Universitatii din București 20-21 februarie
1987, Tipografia Universității din București, 1987
284. E. Jessen, R. Valk, Rechensysteme-Grundlagen der Modelbildung, Springer-Verlag, Berlin, 1987
285. Atanasiu A., Bazele informaticii, anul II, Tipografia Universității din București, 1987
286. Vlada Marin, Posea Adrian, Grafica automata în limbajul FORTRAN 77 și aplicații, Ed. Universității
din București, ediția I, 1988
287. ***, Proceesing, Al doilea Colocviu național de Limbaje, Logică, Lingvistică matematică, Brașov
2-3 iunie 1988. Univ. din Brașov, 1988
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 427

288. Dan Roman, Adrian Lustig, Cristian Stanescu, Algoritmi de automatizare a proiectării, Editura
Militară, 1988
289. Lucia Coculescu, Valentin Cristea, Ioan Finta, Proiectarea sistemelor teleinformatice, Editura
Militară, 1988
290. Marin Popa, Ion Văduva, Culegere de probleme de Sisteme Informatice, Tipografia Universității din
București, 1988
291. Gabriel V. Orman, Lucrările celui de al doilea Colocviu Național de Limbaje, Logică, Lingvistică
matematică, Tipografie Brașov, 2-3 Iunie, 1988
292. Cristian Calude, Bazele Informaticii-Lecții pentru perfecționarea profesorilor de matematică,
Tipografia Universității din București, 1988
293. Ioan Tomescu, Adrian Leu, Matematică aplicată în tehnica de calcul, Editura Didactică și Pedagogică,
București, 1988
294. Vaida Dragoș, Mateescu Alexandru, Structuri matematice discrete. Aplicații, Editura Academiei,
1989
295. INFO-Iași 1989. Lucrările celui de-al VII-lea colocviu de Informatică, 19-21 oct. 1989 Univ. Al. I.
Cuza din Iași, ITCI – Filiala Iași, 1989
296. Albu M., A. Guran, L. Albu, C. Rădulescu, D. Enăchescu, M. Palcu, Cărbunii în actualitate și în
perspectivă (aplicații în FORTRAN), Ed. Tehnică, București, 1989
297. Gheorghe Sabău, Alexandru SOTIR (coord.), PRACTICA BAZELOR DE DATE. Totul despre ...
SOCRATE și SOCRATE -MINI pe Felix C, CORAL și Independent, Vol. 1, Editura Tehnică, 1989
298. Gheorghe Sabău, Alexandru SOTIR (coord.) PRACTICA BAZELOR DE DATE.Totul despre ...
SOCRATE și SOCRATE -MINI pe Felix C, CORAL și Independent, Vol. 2, Editura Tehnică, 1989
299. Octavian DOGARU, Bazele informaticii. Limbaje formale, Editura Universității, Timișoara, 1989
300. Valeriu Iorga, I. Fătu, Programare în Pascal, Litografie Institutul Politehnic București, 1989
301. Andrew S. Tanenbaum, Computer Networks (secund edition), Prentice Hall Inc, 1989
302. Octavian Bâscă, Ileana Popescu, Sisteme de programe pentru minicalculatoare (sisteme de operare-
vol 2), Tipografia Universității din București, 1989
303. M. Patrubany, Totul despre microprocesorul Z80, Editura Tehnică, București, 1989
304. M. Stoica, M. Andreica, L. Sandulescu, Introducere în modelarea procedurală, Editura Scrisul
Românesc, Craiova, 1989
305. Șerban Gavrilă, Editoare de texte pentru minicalculatoare și microcalculatoare, Tipografia
Universității din București, 1988
306. Silviu Crăciunaș, Introducere în utilizarea minicalculatoarelor, Tipografia Universității din București,
1989
307. *** Info-Iași '89, Lucrările celui de al VII-lea Colocviu de Informatică 19-21 Octombrie, Centrul de
multiplicare al Universității Al. I. Cuza din Iași, 1989
308. Adrain Vlad, Programe de instruire-BASIC, Editura Științifică și Enciclopedică, București, 1989
309. Ion Diamandi, Partenerul meu de joc CALCULATORUL-Ghid pentru utilizarea
microcalculatoarelor, Intreprinderea Poligrafică ARTA GRAFICĂ, București, 1989
310. Roland Konstanty, PARADOX-Eine Praxiorientierte Einfuhrung, Markt&Technik Verlag AG, 1989
311. Mihnea Georgeta, Tucsnak Zenaida, Programe și Aplicații, Tipografia Universității din București,
1989
312. Atanasiu A., Al. Mateescu, Probleme de limbaje formale, Tipografia Universității din Bucuresti, 1990
313. Vlada M., Posea A., Grafica automată în limbajul Fortran 77 și aplicații, Ed. Universității din
București, 1990
314. Gheorghe DODESCU, Constantin APOSTOL, Florin PILAT, Ion Gh ROȘCA, Limbajul MACRO-
11, tehnici de realizare a programelor, Editura ASE, București, 1990
315. Constantin POPOVICI, Horia GEORGESCU, Luminița STATE, Bazele informaticii, Editura
Universității din București, 1990
428 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

316. Lascu RÂCU, Bazele informaticii : Curs pentru uzul studenţilor, Editura Universității din Craiova,
Craiova, 1990
317. Ricardo F. Garzia, Mario R. Garzia, Network modeling, Simulation and Analysis, Marcel Dekker,
Inc- New York and Basel, 1990
318. Andra Sandru, Prezentarea Sistemului de Operare MS-DOS, Editura Cristian, București, 1990
319. Vlad Căproiu, Marius Chiorean, Andrei Enyedi, Marius Muntean, Ce este și ce vă oferă calculatorul
IBM PC, Microinformatica, Cluj, 1990
320. Atanasiu A., Mateescu Al., Limbaje formale. Culegere de probleme, Editura Universității din
București, 1990
321. Ionescu Texe Clara, Zpako Ioan, Structuri arborescente și aplicațiile lor, Editura Tehnică, 1990
322. Vlada Marin, Posea Adrian, Nistor Ion, Constantinescu Calin, Grafica pe minicalculatoare și
microcalculatoare compatibile IBM – PC. Aplicații în limbajele PASCAL și C, Editura UB, 1991
323. Bica Florin, Bazele programării pe Personal Computer, Ed. Universității din Craiova, 1991
324. Bătătorescu Anton, Crăciunaș Silviu, Ioan Constantina, Introducere în utilizarea sistemului de
operare DOS-PC, Editura Universității din București, 1991
325. Rudeanu S., Popovici C. P., Georgescu H., Curs de bazele informaticii. Vol. II , Tipografia Univ. din
București, 1991
326. Căprariu V., Sistemul de operare DOS. Comenzi, Ed. Microinformatică, Cluj-Napoca, 1991
327. Adrian DAVIDOVICIU (coordonator), Mix şi Macro, vol 1 și 2, Editura Tehnică, Bucureşti, 1991
328. Adrian DAVIDOVICIU (coordonator), MIX şi MACRO. Tehnici de programare în limbajul
MACRO, Vol. 3, Editura Tehnică, București, 1991
329. E. Kalisz, V. Iorga, Recueil de probleme de programmation, Litografie Institutul Politehnic București,
1991
330. Ion Diamandi, Gheorghe Vass, LOGO- o nouă metodă de a învăța cu ajutorul calculatorului, Editura
Pacific, 1991
331. Ion Diamandi, Ion Odagescu, Din spectacolul Informaticii-Calculatorul personal, Editura Militară,
București, 1991
332. C. Popovici, S. Rudeanu, H. Georgescu, Bazele Informaticii (vol 2), Tipografia Universității din
București, 1991
333. Liviu Dumitrașcu, Traian Sperlea, Cristian Marinoiu, dBASE II, III, III+, IV, Editura Tehnică,
București 1991
334. *** Comenzi și Funcții FoxBase+, Imprimeria Ardealul, Cluj, 1991
335. *** Ghid de inițiere NOVELL-NETWARE, Imprimeria Ardealul, Cluj, 1991
336. Ion Diamandi, Jocuri pe calculator-Labirint, Editura GETIC, București, 1991
337. Marius Chiorean, Memento dBASE III Plus, Editura Roumain Software Comp, Cluj, 1991
338. Silviu Crăciunaș, Maria Crăciunaș, Constantina Ioan, Anton Bătătorescu, Introducere în utilizarea
sistemului de operare DOS-PC, Tipografia Universității din București, 1991
339. A. Gh. Kusmirenko, G. V. Lebedev, R. A. Svoreni, Bazele informaticii și ale tehnicii computaționale,
Editura Lumina, Chișinău, 1991
340. Octavian Bâscă, Ciprian Neacșu, Indrumător pantru limbajele C și Turbo C, Tipografia Universității
din București, 1991
341. Marius Chiorean, Rada Malai, Comenzi și Funcții FOXBASE+, Microinformatica SRL, Cluj, 1991
342. Dollinger R., Calculatoare personale. De la hardware la software, Editura NIS Electronics Cluj, 1991
343. Hockney R. W., Jesshop C. R., Calculatoare personale, Arhitectura, programare, algoritmi, Editura
TEORA, 1991
344. Cristea Valentin, Kalisz Eugenia, Athanasiu Irina, Turbo Pascal 6.0, Ed. TEORA, 1992
345. Vlada Marin, Posea Adrian, Nistor Ion, Constantinescu Călin, Grafica pe calculator în limbajele
Pascal și C - Implementare. Aplicații, vol. I, II, Ed. Tehnică, 1992
346. Cristea Valentin, Giumale Cristian, Panoiu Alexandru, Limbajul C standard, Ed. TEORA, 1992
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 429

347. Albeanu Grigore, Limbajul de programare Pascal, Tipografia Universității din București, 1992
348. Niculescu Florentina, Albeanu Grigore, Domocos Virgil, Programarea calculatoarelor. Probleme
rezolvate în limbajul Pascal, Ed. Tempus, 1992
349. Văduva I., T. Bălănescu, H. Georgescu, Ș. Gavrila, M. Gheorghe, L. Sofonea , Pascal și Turbo Pascal,
Vol 1, Limbajul Pascal, Concepte fundamentale, Ed. Tehnică,1992
350. Văduva I., T. Bălănescu, H. Georgescu, Ș. Gavrila, M. Gheorghe, L. Sofonea, Pascal și Turbo Pascal,
Vol 2, Limbajul Turbo Pascal, Ed.Tehnică, 1992
351. Marcus Solomon, Gr. C. Moisil, Opera matematică, vol.III, Editura Academiei, București, 1992
352. Cristea V., Kalisz E., Athanasiu I., Pănoiu Al., Turbo Pascal 6.0, Ed. Teora, 1992
353. Patriciu V., Sisteme de operare pentru minicalculatoare și microcalculatoare, Ed. Militară, 1992
354. Popa C., Oprea E., Utilizarea calculatoarelor personale. Sistemul de operare MS-DOS 5.0, Ed. ECCE,
1992
355. Lungu I. şi col. - Baze de date relaţionale. Utilizare a limbajului SQL PLUS, Editura ALL, Bucureşti,
1992
356. Hristea Florentina, Sistemul de programe Norton Commander, Editura Tehnică, 1992
357. Ion Ivan, Romică Adam, Structuri de date și Programe Pascal, București, 1992
358. Ion Ivan, Romică Adam, Culegere de probleme. Structuri de date, București, 1992
359. Ion Smeueanu, Ion Ivan, Programarea în limbajul C, Culegere de probleme, Editua ALFAR, Rm.
Vâlcea, 1992
360. Ioan JURCĂ, Programarea orientată pe obiecte în limbajul C++, Editura Eurobit, Timișoara, 1992
361. Valeriu IORGA, Programare in TURBO Pascal, Culegere de probleme, capitolele 1-5, Editura IVT-
TOTAL-SERV, București, 1992
362. Ion IVAN, Romică ADAM, Structuri de date și Programe Pascal, București, 1992
363. Dan SOMNEA, Teodor VLĂDUȚ, Programarea ăn ASSEMBLER, Editura Tehnică, 1992
364. Gheorghe SOFRONIE, Traian SURCEL, Constantin APOSTOL, Bazele informaticii, Editura ASE,
București, 1992
365. Mihau VOICULESCU, Adrian PANĂ, Ion NEGESCU, Bazele informaticii, Editura ASE, București,
1992
366. Valeriu Iorga Programare în Turbo Pascal. Culegere de probleme I-V, Editura IVT Total Serv, 1992
367. Ignat Iosif, Emil Muntean, Pusztai Kalman, UNIX. Gestiunea fișierelor, Editura Microinformatica,
1992
368. Valentin Cristea, Eugenia Kalisz, Irina Athanasiu, Alexandru Pănoiu, Turbo Pascal 6.0 , Editura
Teora, 1992
369. Titus Beu, Analiză numerică în Turbo Pascal, Editura Microinformatica, Cluj, 1992
370. Per Kragh Andersen, Ornulf Borgan, Richard D. Gill, Niels Keiding, Statistical Models based on
Counting Processes, Springer-Verlag, New York, 1992
371. Cornel Popa, Eugen Oprea, Utilizarea calculatoarelor personale-Sistemul de operare MS-DOS 5.0,
Editura ECCE, București, 1992
372. *** Ghid de utilizare dBASE III Plus, Imprimeria ARDEALUL, Cluj, 1992
373. Emil Muntean, dBASE IV-Ghid de utilizare, Microinformatica SRL, Cluj, 1992
374. Vasile Petrovici, PARADOX-Ghid de utilizare și nu doar atât ..., Editura Tehnică, București, 1992
375. Liviu Negrescu, Inițiere în mediul de dezvoltare integrat Turbo C, Editura Libris, Cluj, 199
376. Mircea-Mihail Popovici, BASIC pentru calculatoarele ZX, SPECTRUM, HC, TIM-S, COBRA, CIP
JET-Instrucțiuni, Exerciții, Probleme, Editura APH, București, 1992
377. Ryurick Marius Hristev, Introducere în PROLOG-un limbaj al inteligenței artificiale, Editura APH,
București, 1992
378. Liviu Negrescu, Limbajul Turbo C, Imprimeria Ardealul, Cluj, 1992
379. Davodovici A. ș.a., Sistemul de operare MIX și programarea în limbajul MACRO, Editura Tehnică,
1992
430 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

380. Petrovici V., PARADOX - Ghid de utilizare, Editura Tehnică, 1992


381. Samoilă Gh., Calculatorul PC 386, Editura Tehnică, 1992
382. Zaharia C., Zaharia M., Să învățăm să programăm, Editura Tehnică, 1992
383. Atanasiu A., C. Calude (eds.), SALODAYS in Theoretical Computer Science, Ed. Hyperion XXI
Press, 1993
384. Atanasiu A., Cum se scrie un algoritm? Simplu, Ed. Agni, 1993
385. Apostol C., Ghilic-Micu B., Roșca I., Roșca V., Introducere în programare. Teorie și practica Pascal,
Ed. Viața Românească, 1993
386. Marinescu D., Trandafirescu M., Manualul cumparatorului, utilizatorului și programatorului de PC,
Ed. Teora, 1993
387. Moldoveanu Fl., Hera G., Programarea aplicațiilor Windows, Editura Teora,1993
388. Orbu R., Sisteme de operare in retea, NETWARE, Editura Tehnică, 1993
389. Rancea D., Limbajul Turbo Pascal, vol. I,II, Editura Libris, Cluj-Napoca, 1993
390. Spircu Tiberiu, Introducere în informatică, Editura Teora, 1993
391. Turtelea D., Totul despre Windows 3.1, Editura Tehnică, 1993
392. Roşca I., Davidescu N., Macovei E., Proiectarea sistemelor informatice, Editura Didactică şi
Pedagogică, Bucureşti, 1993
393. Laurenţiu PĂDEANU, Programarea orientată pe obiecte în limbajul C++. Suport de curs, Editura
Eurobit, Timișoara, 1993
394. C. APOSTOL, Ion Gh. ROȘCA, B. GHILIC-MICU, I. LUNGU, Tr. SURCEL, V. ROȘCA, M.
VELICANU, T. VLĂDUȚ, Tehnica programării în COBOL pentru calculatoarele IBM-PC, Editura
ALL, 1993
395. Gheorghe CÂMPIAN, Professional COBOL, Editura Regent, Baia Mare, 1993
396. Ion LUNGU, Nely MUSAT, Mihaela MANOLE, Manole VELICANU, Ion TEODOR, Attila
BARTA, Sistemul FOX PRO prezentare și aplicații, Editura ALL, București, 1993
397. Ilie TAMAȘ, Pavel NĂSTASE, Ion NEGESCU, Bazele informaticii, curs pentru uzul studenţilor,
Editura ASE, București, 1993
398. Ioan Odagescu, Programarea avansată a calculatoarelor personale, Editura Militară, 1993
399. Alexandru Pănoiu, MS-DOS 5.0, Editura Teora, București, 1993
400. V. Ionescu, St. Mustatea s.a, Limbaje algoritmice de programare-Limbajul Cobol, Tipografia ASE,
București, 1993
401. Ionescu Emil (coordonator) s.a, else Software, Editura SITECH SRL, Craiova, 1993
402. Tiberiu Spircu, Introducere în Informatică, Editura Teora, București, 1993
403. Burdescu D. D., Strucuri de date, vol. I-II, Editura MIRTON Timișoara, 1993
404. Somnea D., Turturea D., Inițiere în C++. Programare orientată pe obiecte, Editura Tehnică, 1993
405. Păunescu Fl., Goleșteanu D. P., Prelucrarea distribuită a datelor. Principii, arhitecturi, algoritmi,
Editura Tehnică, 1993
406. Somnea D., Teodor Vlăduț, Programarea în ASSEMBLER, Editura Tehnică, 1993
407. Petrovici V., Golcea Fl., Programarea în limbajul C, Editura Tehnică, 1993
408. Orbu Răzvan, Sisteme de operare în rețea Novel Netware, Editura Tehnică, 1993
409. Turturea Doru, Totul despre Windows 3.1, Editura Tehnică, 1993
410. Caceu Marius, Ghid de utilizare MS-DOS, Editura Tehnică, 1993
411. Zaharia Marian, Management. Teorie și aplicații în C++, Editura Tehnică, 1993
412. Vasiu Lucian, Ghid de utilizare dBASE 1.4 și 1.5, Editura Tehnică, 1993
413. Tomescu Ioan, Introducere în Informatică, Ed. Didactica și pedagogica, București, 1994
414. Atanasiu A., Automate și translatori, Tipografia Universității din București, 1994
415. Albeanu Grigore, Programarea în Pascal și Turbo Pascal. Probleme rezolvate, Editura Tehnică, 1994
416. Hristea Fl., Enăchescu D., Balint R., The Norton World: Norton Commander v.4.0, Norton Utilities
v.7.0 , Ed. Tehnică, 1994
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 431

417. Boian Fl. M. Sisteme de operare interactive, Ed. Libris, Cluj-Napoca, 1994
418. Kent P., Internet, Editura Teora, 1994
419. Munteanu M., Joldos M., MS-DOS. Comenzi, Metode, Exemple, Ed. Promedia, Cluj-Napoca, 1994
420. Frenţiu M., Pârvu B., Elaborarea programelor. Editura Promedia, 1994
421. Ion Gh. Roşca (coordonator), C. Apostol, B. Ghilic-Micu, V. Roşca, Prelucrarea fişierelor în
PASCAL, Editura Tehnică, Bucureşti, 1994
422. Victor-Valeriu PATRICIU, Criptografia şi securitatea reţelelor de calculatoare cu aplicaţii în C şi
PASCAL, Editura Tehnică, București, 1994
423. Ioan Odăgescu, Cristina Copos, Daniel Luca, Metode și tehnici de programare, Editura Intact, 1994
424. Rodica Mihalca, Adina Tataru, Realizarea produselor program. metode și tehnici de analiza și
proiectare structurată, Editura Scripta, 1994
425. Lucian Vasiu, FOX PRO 2.5, Editura Tehnică, București, 1994
426. D. D. Burdescu, M. Mocanu, C. Bădică, V. Tabus, M. Brezovan, SOFTWARE, Editura SITECH,
Craiova, 1994
427. Richard E. Crandall, Projects in Scientific Computation, Springer-Verlag, New York, Inc, 1994
428. Nicolae Țăndăreanu, Introducere în programarea logică-Limbajul PROLOG, Editura Intarf, Craiova,
1994
429. Kent Peter, Internet în lecții de 10 minute, Editura TEORA, 1994
430. Petcu Dana, Calcul paralel, Editura de Vest, 1994
431. Atanasiu A., Probleme date la concursuri de informatică în 1994, Ed. Petrion 1995
432. Microsoft, Windows 95. Pas cu pas, Editura Teora, 1995
433. Pătruț B., Grafica în OOP … și nu numai …, Ed. ADIAS, 1995
434. Zoltan D. K., Turbo Vision. Programarea orientata pe obiecte în Turbo Pascal, Ed. Promedia Plus,
Cluj-Napoca, 1995
435. Jalobeanu Mihai-Stanislav, Internet, Informare și Instruire. Pași în Lumea Comunicațiilor, Editura
ProMedia Cluj, 1995
436. Sorin T., Tehnici de programare, Editura Teora, Bucureşti, 1995
437. Ion Smeureanu, Ion Ivan, Marian Dârdală, Limbajul C++ prin exemple, Editura CISON, București,
1995
438. Marin Nicolae, Stelian Niculescu, Programare în mod text – Turbo – C, Editura Tehnică, 1995.
439. Gh. Marian, C. Mușatescu, V. Iorga, Algoritmi, structuri de date și obiecte în Turbo Pascal, Editura
Secolul XXI Craiova, 1995
440. Gheorghe Păun, Artificial Life-Gramatical Models, Black Sea University Press, București, 1995
441. Grace Todino, John Strang, Jerry Peek, Învățarea Sistemului de Operare UNIX, Remsym Data SRL,
1995
442. Omezena Zaruca, K0rlatozott Garancia, Sinirh Garanti, Introducing Microsoft Windows 95,
Microsoft Corporation, 1995
443. Ion Smeureanu, Ioan Odăgescu, Daniel Luca, Marian Dârdală, Felix Furtună, Grafică interactivă pe
calculatoare personale, Editura Militară, București, 1995
444. Gavril Toderean, Mircea Costeiu, Mircea Giurgiu, Rețele neuronale artificiale, Imprimeria Ardealul,
Cluj, 1995
445. Mateescu George Daniei, Analiza numerică, Editura Universității din București, 1995
446. Popescu Ileana, Baze de date relaționale, Editura Universității din București, 1996
447. Georgescu Horia, Programare concurentă. Teorie și aplicații, Ed. Tehnică, 1996
448. Atanasiu A., R. Pintea: Probleme de informatică și programe Pascal, Ed. Petrion, 1996
449. Albeanu Grigore, Sisteme de operare, Ed. Petrion, 1996
450. Moldovan Grigor, Limbaje formale și teoria automatelor. Culegere de probleme, Universitatea din
Cluj-Napoca, 1996
451. Moldovan Grigore, Descrierea algoritmilor. Teorie și aplicații, Universitatea din Cluj-Napoca, 1996
432 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

452. Popescu I., Baze de date relaționale, Ed. Universității din București, 1996
453. Jalobeanu Mihai-Stanislav, Acces în Internet. Poșta electronică și Transferul de fișiere, Ed. Promedia-
Plus (Seria PC Software), 1996
454. Albescu F., Sisteme expert în contabilitatea financiară, Editura Sofitech, Bucureşti, 1998
455. Editura Grookin D., MS-DOS pentru toţi, Editura Teora, Bucureşti, 1996
456. Liviu Negrescu, Limbajele C si C++ pentru începători: vol. 2, Limbajul C++, Editura Albastră, Cluj-
Napoca, 1996
457. Ion Gh. Roşca (coordonator), C. Apostol, B. Ghilic-Micu, V. Roşca, Introducere în programare.
Teorie şi practică Pascal, Casa de Editură şi Presă Viaţa Românească, Bucureşti, 1996
458. Popovici M. Dorin, Popovici Ioan Mircea, Tănase Iustin, Tehnologia orientată pe obiecte. Aplicații,
Editura TEORA, 1996
459. Valeriu Iorga, B. Jora, C. Nicolescu, I. Lopătan, I. Fătu, Programare numerică, Editura Teora, 1996
460. Andrew S. Tanenbaum, Computer Networks (3rd edition), Prentice Hall Inc, 1996
461. Larry Peterson, Bruce Davie, Computer Networks- A Systems Approach, Morgan Kaufmann
Publisher, 1996
462. Ronald J. Norman, Object-oriented Systems Analysis and Design, Prentice-Hall Inc, SUA, 1996
463. Per Brinch Hansen, The Search for Simplicity-Essays in Parallel Programming, IEEE Computer
Society Press, 1996
464. Edward A. Bender, Mathematical methods in Artificial Inteligence, IEEE Computer Society Press,
1996
465. Gheorghe Tecuci, Dan Tufiș s.a, Introducere în INTERNET-note de curs, Editura Tehnică, București,
1996
466. Daniel Ichbiah, Susan Knepper, O istorie a firmei Microsoft, Editura Teora, București, 1996
467. Jason Manger, Netscape Navigator, Editura Teora, București, 1996
468. Mihai Anton Cerghizan, EXCEL 7.0 pentru Windows 95, Editura Tehnică, București, 1996
469. Popescu Ileana, Baze de date relaționale, Editura Universității din București, 1996
470. Atanasiu A., Pintea A., Culegere de probleme de Pascal, Editura PETRION, 1996
471. Tudor Sorin, Algoritmi și limbaje de programare, Editura L&S Infomat, 1996
472. Tomescu Ioan, Data Structures, Bucharest University Press, Bucharest, 1997
473. Atanasiu A., Bazele matematica în scrierea compilatoarelor, Colecția Gaudeamus, Ed.Olimp, 1997
474. Văduva I., Gh. Barbu, M. Boloșteanu, Bazele Informaticii, Ed. Tehnică, București, 1997
475. Rudeanu S., Lecții de calculul predicatelor și calculul propozițiilor,Tipografia Editura Univ. din
București, 1997
476. Roșca I., Ecuații cu derivate parţ̦iale, Editura Universității din București, 1997
477. Văduva I., Barbu Gh., Bazele Informaticii, Editura Tehnică, 1997
478. Rus Vasile, Fondarea informaticii clujene, Ed. Albastră, Cluj-Napoca, 1997
479. Davidescu N. şi col., Produse program generalizabile în domeniul financiar contabil. Aplicaţii în
informatica de gestiune, Editura Didactică şi Pedagogică, 1997
480. Valentin Cristea, Irina Athanasiu, Eugenia Kalisz, Valeriu Ioga. Tehnici de programare, Editura
TEORA, București, 1997
481. Dorin IRIMESCU, Cristian MORĂRESCU, Programmieren mit C und C++, Editura Printech,
București, 1997
482. Sabin GORON, Dan RACOVIȚAN, Cornelia PAVLIC, Programare şi exemple în limbajul Turbo
Pascal, Editura Risoprint, Cluj-Napoca, 1997
483. Octavian BÂSCĂ, Baze de date, Editua ALL, București, 1997
484. Gheorghe MUSCĂ, Programare în limbaj de asamblare, Editura Teora, București, 1997
485. Ion LUNGU, Mioara UDRICĂ, Marius MAREȘ, Bazele informaticii, Editura Fundaţiei România de
Mâine, Bucureşti, 1997
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT 433

486. Stelian Niculescu, Sorin Eftene, Programarea calculatoarelor, Editura Didactică și Pedagogică,
Manual pentru Licee de informatică, clasa a X-a, 1997.
487. Valeriu Iorga, Eugenia Kalisz, Cristian Țăpuș, Concursuri de Programare. Probleme și soluții, Editura
Teora, 1997
488. Augustin Purnus, Nicolae Ene, PROJECT 4.0 in managementul proiectelor cu aplicații, Editura
Tehnică, București, 1997
489. Mickey Williams, Bazele Visual C++4, Editura Teora, București, 1997
490. Martin L. Rinehart, Sa invatam C++ pas cu pas, Editura Tehnică, București, 1997
491. Phillip A. Laplante, Real-Time Systems Design and Analysis-an Engineer's Handbook (secund
edition), IEEE Inc., 1997
492. L. Ivaner, Lexiconul Hackerilor, Editura Promedia Plus, Cluj, 1997
493. Mark Chan, Steven Griffith, Anton Iasi, JAVA-1001 secrete pentru programatori, Editura Teora,
București, 1997
494. David Geary, Grafic JAVA-mastering the AWT, Sun Micrisystems press, SUA, 1997
495. John Rodley, Writing JAVA applets, Coriolis Group Inc, SUA, 1997
496. Cay Horstmann, Gary Cornell, Core JAVA-Fundamentals (vol 1), Sun Microsystems Press Inc.,
SUA, 1997
497. Ian Graham, HTML Sourcebook(3rd edition), John Willey&Sons Inc, New York, 1997
498. Stephen Wynkoop, Using Microsoft SQL Server 6.5 (secund edition), Que Corporation, SUA, 1997
499. Gabriela Dumencu, Anca Uriciuc, Iulian Luca, Valeriu Lupu, FOX DOS WORD-Culegere de
probleme rezolvate, Fundația Fortuna, Suceava, 1997
500. Schildt Herbert, C++ manual complet, Editura TEORA, 1997
501. Tudor Sorin, Bazele programării în C++, Editura L&S Infomat, 1997
502. Niculescu Stelian, Eftene Sorin, Programarea calculatoarelor. Manual pentru clasa a X-a, Didactică și
Pedagogică, 1998
503. Atanasiu A., Introducere în lingvistica computațională, Tipografia Universității din București, 1998
504. Guy H. D., Word 7 sub Windows 95, Editura Teora, 1998
505. Microsoft, Excel 97, Pas cu pas, Editura Teora, 1998
506. Microsoft, Totul despre Windows NT. Server 40., Editura Teora, 1998
507. Microsoft, Windows 98, Editura Teora, 1998
508. Pătruț B., Internet pentru începători, Editura Teora, 1998
509. Somnea D., Inițiere în JavaScript și tehnologii Netscape, Editura Tehnică, 1998
510. Davies W., Barber A., Teleinformatica. Reţele de calculatoare şi protocoalele lor, Editura Tehnică,
1983
511. Jomsa K., Cape K., Programarea aplicaţiilor Internet, Editura ALL, Bucureşti, 1998
512. Năstase P., Năstase F., Internet World Wide Web JavaScript-HTML-Java, Editura Economică,
Bucureşti, 1998
513. Patriciu V. şi col., Securitatea informatică în UNIX şi Internet, Editura Tehnică, 1998
514. Zaharie D., Năstase P. şi col. Sisteme Expert Editura S.C. Ştiinţă si Tehnică S.A., Bucureşti, 1998
515. Ion Smeueanu, Ion Ivan, Marian Dârdală, Structuri de date și obiecte în C++, Editura CISON,
București, 1998
516. Sorin Tudor, Bazele programarii în C++, Editura L&S, București, 1998
517. Ion Smeureanu, Marian DÂRDALĂ, Ion Ivan, Structuri și obiecte in C++ , Note de curs și teste grilă,
, Editura CISON, București, 1998
518. Pavel NĂSTASE, Floarea NĂSTASE, INTERNET World Wide Web JavaScript - HTML - Java, Ed.
Economică, 1998
519. Ion Gh. Roşca (coordonator), C. Apostol, B. Ghilic-Micu, V. Roşca, Programare sistematică în
Pascal, Editura Didactică şi Pedagogică, 1998
520. Sabin GORON, Turbo Pasca. Teorie, exemple, Editura Risoprint, Cluj-Napoca , 1998
434 MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020

521. Vasile LUNGU, Gheorghe PETRESCU, Zoe RACOVIȚĂ, Programare în limbaj de asamblare.
Îndrumar de laborator; Probleme, Editura UPB, București, 1998
522. V. Cristea, I.Athanasiu, E.Kalisz, V. Iorga, Tehnici de Programare, Editura Teora, 1998
523. Tempus S. , Restructurarea perfecționarii profesorilor de informatică-1997/1998, Computer Libris
Agora, Cluj, 1998
524. Silviu Petrescu (traducător), Securitatea în INTERNET, Editura Teora, București, 1998
525. John Shapley Gray, Interproces Communications in UNIX (secund edition), Prentice Hall PTR, 1998.
526. Cerchez E., Șerban M., Sisteme de calcul, Editura PETRION, 1998
527. Pătruț B., Algoritmi și limbaje de programnare, Editura TEORA, 1998
528. Vlada Marin, Informatică - Sisteme de calcul, Sisteme de operare, Medii de rezolvare, Mediul
Internet, Editura Ars Docendi, 1999
529. Roșca I., Analiză numerică, Editura Universităţ̦ii din București, 1999
530. Moldovan Grigor, Limbaje formale și tehnici de compilare, Universitatea din Cluj-Napoca, 1999
531. Courter G., Marquis A., Inițiere în Microsoft Office 2000, Ed. ALL, 1999
532. Taylor D., Crearea paginilor WEB cu HTML 4, Editura TEORA, 1999
533. Goron S., Proiectarea orientată a produselor program, Editura Risoprint, Cluj-Napoca, 1999
534. Ion Gh. Roşca, C. Apostol, B. Ghilic-Micu, V. Roşca, M. Stoica, Ghid de operare Turbo-Pascal,
Editura ASE, Bucureşti, 1999
535. Andrew Tanenbaum, Organizarea structurată a calculatoarelor, Editura Agora, 1999
536. Stelian Niculescu, Rodica Pintea, Tehnologia informației, Editura Didactica și Pedagogică, Manual
pentru clasa a IX-a, 1999.
537. Stelian Niculescu, Emanuela Cerchez, Dana Lica, Marinel Șerban, Dorin Manz, Doru Popescu
Anastasiu, Anca Voicu și Emil Onea, Bacalaureat și atestat, Editura L&S, 1999
538. Stelian Niculescu, Lucian Butnaru, Vasile Butnaru, Informatică, Manual clasa a IX-a, Editura
Didactică și Pedagogică, 1999
539. Gabriel si Mihai Dima, FOXPRO 2.6 sub Windows, Editura Teora, 1999
540. Bogdan Pătruț, Aplicații în C și C++, Editura Teora, București, 1999
541. Kevin Marlove, Utilizare ACCESS 97, Editura Teora, București, 1999
542. Dorin Zaharie, Pavel Nastase, Felecia Albescu s.a, Sisteme expert- Teorie și Aplicații, Editura Dual
Tech, București, 1999
543. Tudor S., Cerchez E., Șerban M., Informatică. Varianta C++, manual pentru clasa a IX-a, Editura
L&S Infomat, 1999
544. Lica D., Onea E., Informatică, Editura L&S Infomat, 1999
545. Niculescu St., Cerchez E., Șerban M., Lica D., Onea E., Maraz D., Popescu D., Voicu A., Bacalaureat
și atestat la Informatică, Editura L&S Infomat, 1999
546. Pintea R., Oprescu D., Grigoriu D., Bălănescu C., Teste de sinteză în programare, Editura L&S
Infomat, 1999
547. Rancea D. ș.a., Informatică, Editura Computer Libris, Agora, 1999
548. Hristea Florentina, Introducere în procesarea limbajului natural cu aplicații în Prolog. Editura
Universității din București, 2000
549. Stelian Niculescu, Vasile Butnaru, Marius Vlad, Manual clasa a X-a, Editura TEORA, 2000
550. Dana Lica, Emil Onea, Informatică-manual pentru clasa a X-a, Editura ProGnosis, 2000
551. Ovidiu Aurelian Blajina, Bazele programării în limbajul C++, Editura Printech, București, 2000
552. Bogdan Matu, Dan Crisu, INTERNET & WORLD WIDE WEB, Editura Tehnică, București, 2000
553. Mariana Popa, Word, Access în 5 lecții, Editura Fundației România de mâine, București, 2000
554. Bogdan Ionescu (coordonator) s.a, Instrumente informatice pentru birotică: Word, Power Point,
Outlook, Front Page, Editura Dual Tech, București, 2000
555. Tudor Sorin, Informatică. Tehnici de programare. Varianta C++, Editura L&S Infomat, 2000
556. Tudor Sorin, Informatică. Tehnici de programare. Varianta Pascal, Editura L&S Infomat, 2000
I N D E X AUTORI

1. Adrian Adăscăliței, 392 9. Grigore C. Moisil, 110


2. Mihail-Viorel Bădescu, 13 10. Stelian Niculescu, 18
3. W. K. de Bruijn, 159 11. Eufrosina Otlăcan, 14
4. Nick Doiron, 102 12. Gheorghe Păun, 67
5. Mihaiță Drăgan, 361 13. Dragoș Vaida, 186
6. Juraj Hromkovic, 71 14. Ion Văduva, 16
7. Valeriu Iorga, 300 15. Marin Vlada, 21, 60, 71, 189, 212, 225,
8. Angela Ioniță, 344 307, 329, 385, 392

S-ar putea să vă placă și