29 0 24MB
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. 2. 3. 4. 5. 6. 7. 8.
Adrian Adăscăliței, 392 Mihail-Viorel Bădescu, 13 W. K. de Bruijn, 159 Nick Doiron, 102 Mihaiță Drăgan, 361 Juraj Hromkovic, 71 Valeriu Iorga, 300 Angela Ioniță, 344
C U P R I N S
9. 10. 11. 12. 13. 14. 15.
Grigore C. Moisil, 110 Stelian Niculescu, 18 Eufrosina Otlăcan, 14 Gheorghe Păun, 67 Dragoș Vaida, 186 Ion Văduva, 16 Marin Vlada, 21, 60, 71, 189, 212, 225, 307, 329, 385, 392
G E N E R A L
Cuvânt introductiv ...................................................................................... Prefaţă și argumente ...................................................................................
13 21
1 Contextul internațional la apariția și evoluția calculatoarelor ............ 1.1 Conceptul de Computing – istoric și evoluție .............................................. 1.2 Cronologia tehnicii de calcul – istoric și evoluție ........................................ 1.3 Raport „ACM Curriculum Committee on Computer Science”, USA, 1968 . 1.4 Raport „Situația și perspectivele evoluției calculatoarelor”, Europa, 1966 . 1.5 Arto Salomaa in the History of the Romanian Theoretical Computer Science ........................................................................................................... 1.6 Apariția și evoluția sistemelor de calcul ...................................................... 1.7 Apariția și evoluția societății informaționale .............................................. 1.8 Apariția și evoluția limbajelor de programare ............................................ 1.9 Apariția și evoluția sistemelor de operare .................................................. 1.10 Apariția și evoluția bazelor de date .......................................................... 1.11 Apariția și evoluția rețelelor de calculatoare ............................................. 1.12 Ideile inovatoare ale apariției sistemului Internet ................................... 1.13 From recursivity to the Turing universal machine and Horn clauses ......
57 60 85 110 159 186 189 212 225 307 329 361 385 392
Bibliografie generală ................................................................................... Lista cărților de informatică din perioada 1955-2000 ................................ Index autori ................................................................................................
410 417 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) ........................................................................................... • Șiințe: dezvoltare, evoluție, schimbări ..................................................... • Domenii majore în Computing ................................................................ • Etape în evoluția Calculus și Computing ................................................. • Scurtă istorie a Informaticii (Gh. Păun) ................................................... • Cum trebuie predate matematica şi informatica? Schimbarea trebuie să pornească din universităţi (Juraj Hromkovic) ..................................... • Dezvoltarea Computing: concepte, etape și aspecte de evoluție ............ 1.2 Cronologia tehnicii de calcul – istoric și evoluție (M. Vlada, Nick Doiron) • Preistorie – antichitate ............................................................................. • Medieval – 1640 ......................................................................................... • Perioada 1641 – 1949 .................................................................................. • Perioada 1950 – 1999 ................................................................................. • Perioada 2000 – 2017 ................................................................................. • The Computing/Computer Museum ....................................................... • First digital computer used, by country – This list is incomplete (Nick Doiron) ............................................................................................ • Prezicerea viitorului tehnicii de calcul (computing)............................... 1.3 Raport al „ACM Curriculum Committee on Computer Science”, USA, 1968 (Gr. C. Moisil) ........................................................................................ • 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) ............................................................................................ • 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
60 61 63 65 67 71 71 85 85 86 88 93 99 100 102 108 110
159
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT
1.5 Arto Salomaa in the History of the Romanian Theoretical Computer Science (Dragoș Vaida) ................................................................................. 1.6 Apariția și evoluția sistemelor de calcul (M. Vlada) .................................... • Generațiile de calculatoare (computer systems) ..................................... 1.7 Apariția și evoluția societății informaționale (M. Vlada) ............................ • Cele 4 valuri ale tehnologiei societății informaționale............................ 1.8 Apariția și evoluția limbajelor de programare (M. Vlada, V. Iorga) ............ • Computing: Computer System = Hardware + Software .......................... • Limbajele sunt instrumente ale gândirii: gândirea algoritmică .............. • Conceptele de Proiect și Management, concepte ce au revoluționat științele, cultura și dezvoltarea societății omenești ................................ • Utilizarea calculatorului și rezolvarea problemelor ................................ • Exemple de programe în diverse limbaje de programare ....................... • Grafica pe calculator, geometria computațională și realitatea virtuală.. • Impactul utilizării calculatorului – noi abordări în rezolvarea problemelor .............................................................................................. • Câteva aspecte privind activitatea în utilizarea limbajelor de programare (V. Iorga) ................................................................................................... 1.9 Apariția și evoluția sistemelor de operare (M. Vlada) ................................. • Principalele etape în dezvoltarea sistemelor de operare......................... • Pionierate în domeniul elaborarii sistemelor de operare........................ • Tipuri de sisteme de operare .................................................................... • Tehnologia Cloud Computing .................................................................. 1.10 Apariția și evoluția bazelor de date (M. Vlada, A. Ioniță)............................ • Concepte, tehnologii și evoluția Bazelor de Date.................................... • Baze de date deductive – Trecerea de la „informație” la conceptul de „cunoștință” ............................................................................................. • Sisteme de Baze de Date şi Sisteme de Gestiune a Bazelor de Date (A. Ioniță).................................................................................................. 1.11 Apariția și evoluția rețelelor de calculatoare (M. Drăgan) .......................... • Introducere și argumente ......................................................................... • Teoria grafurilor și tehnologia informației .............................................. • Rețeaua Internet ....................................................................................... • Internetul în România .............................................................................. 1.12 Ideile inovatoare ale apariției sistemului Internet (M. Vlada) .................... • Argumente şi context privind dezvoltarea Internetului ......................... • Idei inovatoare şi pionierii Internetului................................................... 1.13 From recursivity to the Turing universal machine and Horn clauses (M. Vlada, A. Adăscăliței).............................................................................. • Contribution of Romanian scientists to the appearance of electronic computers ................................................................................................. • Calculation Theory and Cybernetics ........................................................ • The first examples of a recursive function which is not primitive recursive: W. Ackermann and G. Sudan..................................................
11
186 189 186 212 212 225 225 228 232 240 243 277 283 300 307 305 308 320 324 329 326 327 344 361 361 363 368 376 385 385 388 392 392 397 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 referinduse 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
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
20 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
3.
4.
5.
4
23
din USA. În anul 1954, România a făcut un salt semnificativ ocupând locul III în lume. 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ă ș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. 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). 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
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
7.
25
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. Dealungul 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
5.
6.
8
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). 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). 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).
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 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
3.
4.
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). „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. 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
5.
6.
7.
8.
10
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. 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ă. 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”. Î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. 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ă
„Î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 Dacicc200, 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, sau 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-dematematica-si-informatica-rol-fundamental-in-dezvoltariea-informaticii-siindustriei-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.
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
38
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).
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
40
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
3.
4.
5.
6.
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. „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. 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. 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. 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 Facultatea de Litere (prin Decretul Domnitorului Alexandru Ioan Cuza, nr. 967/8 octombrie 1863) 1864 – se înfiinţează Universitatea din Bucureşti (prin decretul domnitorului Al. I. Cuza, nr. 765, 4/16 iulie 1864) 1948 – are loc reforma învăţământului, se înfiinţează Facultatea de Matematică şi Fizică 1962 – are loc separarea în Facultatea de MatematicăMecanică şi Facultatea de Fizică (ambele funcţionand în cladirea Universităţii din Bucureşti, din centru, intrarea D) 1974 – are loc schimbarea denumirii în Facultatea de Matematică, iar Facultatea de Fizică este transferată la Campusul „Măgurele”, inaugurat în anul 1975 2002 – are loc schimbarea denumirii în Facultatea de Matematică şi Informatică 2011 – are loc transformarea catedrelor în două departamente: Departamentul de Matematică și Departamentul de Informatică
DECANI Facultatea de Matematică şi Informatică din Bucureşti 1919-1923: Gheorghe Țițeica, decan, Facultatea de Științe 1925–1926, 1932–1939 şi 1948-1951: Simion Stoilow, decan, Facultatea de Științe 1951-1960: Gheorghe Mihoc 1960-1972: Nicolae Victor Teodorescu 1972-1975: Ionel Bucur 1975-1984: Cabiria Andreian Cazacu 1984-1989: Nicu Boboc 1989-1992: Nicolae Radu 1992-1996: Ion Colojoară 1996-2004: Vasile Preda 2004-2008: Ion Chiţescu 2008-2009: Ştefan Dragoş 2009-2016: Victor Ţigoiu 2016-2020: Radu 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ă anul 1987 Numărul de locuri pentru admitere – sesiunea iulie 1987. Învățământ la ZI: Informatică (I=14, N=11), Matematică-Mecanică (I=16, N=9), Matematică (I=65, N=100); Învățământ la FF: Matematică (I=1, N=39); Învățământ la SERAL: Informatică (I=2, N=23), Matematică-Mecanică (I=2, N=23). Învățământ de scurtă durată (3 ani) Matematică-Fizică: (I=13, N=62), unde I= încorporabili, N=neîncorporabili (începând cu vara anului 1974, cei care erau admiși în învățământul superior, după admitere, efectuau stagiul militar obligatoriu de 8 luni, după care, în anul următor, urmau cursurile la facultate).
Admitere la Facultatea de Matematică și Informatică - anul 2018 Numărul de locuri pentru admitere – sesiunea iulie 2018. Învățământ cu frecvență (IF, 3 ani): Domeniul de licenţă: Matematică (Programele de studii: Matematică, Matematică–Informatică, Matematici aplicate) buget: 132, taxă: 68; Domeniul de licenţă: Informatică (Programul de studii: Informatică) buget: 215, taxă: 79; Domeniul de licenţă: Calculatoare și tehnologia informației (4 ani, Programul de studii: Tehnologia informației) buget: 75, taxă: 25. Învățământ la distanță (ID): Domeniul de licenţă: Informatică (Programul de studii: Informatică) Taxă: 75.
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 „preistoria” 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-dnacelebration/. Î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 topogeodez, î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 19811983, 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-augustseptembrie, 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, Update: 01 Decembrie 2018, 15, 23-27 Mai , 17 Iunie 2019, Bucureşti
Marin Vlada, Universitatea din Bucureşti, membru titular CRIFST (Comitetul Român de Istoria şi Filosofia Ştiinţei şi Tehnicii), Academia Română
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
Pioneers of Computing
59
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.
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
62
„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)
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
64 Cod
Domenii majore-Nivel 0
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
Subdomenii - Nivel 1 1.Printed circuit boards; 2.Communication hardware, interfaces and storage; 3.Integrated circuits; 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 systems; 3. Realtime systems; 4. Dependable and fault-tolerant systems and networks. 1. Network architectures; 2. Network protocols; 3. Network components; 4. Network algorithms; 5. Network performance evaluation; 6. Network properties; 7. Network services; 8. Network types. 1. Software organization and properties; 2. Software notations and tools; 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 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; 3.Mathematical software; 4. Information theory; 5. Mathematical analysis; 6. Continuous mathematics. 1. Data management systems; 2. Information storage 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 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; 4. Ubiquitous and mobile computing; 5. Visualization; 6. Accessibility. 1. Symbolic and algebraic manipulation; 2. Parallel computing methodologies; 3. Artificial intelligence; 4. Machine learning; 5. Modeling and simulation; 6. Computer graphics; 7. Distributed computing methodologies; 8. Concurrent computing methodologies. 1. Electronic commerce; 2. Enterprise computing; 3. Physical sciences and engineering; 4. Life and medical
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT
12
Social and professional topics
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. 1. Professional topics; 2. Computing / technology policy; 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 (20thcentury) 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/):
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
72
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.
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
74
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
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
76
î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-TabulatingRecording (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 sa î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
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
78
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/
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
82
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
1
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
https://en.wikipedia.org/wiki/Timeline_of_computing_hardware_before_1950.
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
86
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
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
88
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ă.
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
90
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
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
92
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)
2
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.
https://en.wikipedia.org/wiki/Timeline_of_computing_1950%E2%80%9379
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
94
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 BusinessOriented Language) dezvoltat de Grace Murray Hopper ca succesor al FLOWMATIC, 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
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
96
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 email 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.
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
98
1971 – A fost introdusă floppy-ul (floppy disk) de 8 inch. 1972 – Calculatoarele construite după anul 1972 sunt numite computere „de a IVa 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
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).
99
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
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
100
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 i75960X. 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
3
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 awardwinning 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
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” ».
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
102
First digital computer used, by country (This list is incomplete) Nick Doiron4
4
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.
Nick Doiron, First digital computer, by country, 2016 - https://medium.com/@mapmeld/first-computer-bycountry-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.
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
104
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 fullcapacity 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
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
106
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
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
108
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, Computation 1617 – Napier's Bones (John Napier) 1622 – The Slide Rule 1642 – The Pascaline (Blaise Pascal) 1801 – Jacquard's Power Loom 1822 – The Difference Engine (Charles Babbage) 1840 – An Early Program
5
Year, Artificial Intelligence 1770 – The Mechanical Turk 1950 – The Turing Test (Alan Turing) 1952 – Speech Recognition (Bell Labs) 1959 – Computer Chess (Arthur Samuel) 1966 – AI Robotics
Year,Transportation & Lifestyle 1869 – Transcontinental Railroad 1879 – The Light Bulb (Thomas Edison) 1903 – High-Speed Trains 1927 – Television (Philo T. Farnsworth) 1960 – Spacewar (The PDP-1)
Year, Communication 1876 – The Telephone (Alexander Graham Bell) 1924 – The Fax 1954 – Transistor Radios (Sony) 1969 – ARPANET 1979 – Cellphones (Nippon Telephone) 1990 – The Web (The
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-technologytimeline.html?ref=science
ISTORIA INFORMATICII ROMÂNEȘTI. APARIȚIE, DEZVOLTARE ȘI IMPACT
(Ada Lovelace) 1890 – The Hollerith Machine 1938 – A Programmable Computer (Konrad Zuse) 1943 – Colossus computer 1946 – ENIAC computer(University of Pennsylvania) 1951 – UNIVAC I (the universal automatic computer) 1958 – Integrated Circuits 1971 – First Microprocessor 1973 – The Personal Computer-PC (Xerox, Alto) 1981 – Computer Viruses 2000 – Google Indexes a Gigapage 2010 – China's Supercomputer 2012 – Genetic Data Storage 2012- Computer on a Chip (predicts David Patterson) 2013 – Universal Medical Database 2013 – Simulated Animal Tests 2016 – Quantum Computing (by 2025, Scott Aaronson predicts) 2018 – Persistent Computer Memory 2021 – Simulated Actors 2021 – Very Cheap Computers 2024 – The World is Explored (Google Earth has mapped the 3D) 2030 – Programmable Organisms (by 2030, Drew Endy predicts) 2054 – Digital 'Life' and Evolution 2103 – WiFi to the Brain
(The Stanford Research Institute) 1981 – Robot Kills Mechanic (Japan) 1986 – The Connection Machine (Thinking Machines) 1997 – Deep Blue(I.B.M.) 2000 – Emotional Robots (MIT) 2004 – Honda's Asimo (Japan) 2009 – Autonomous Robotics 2011 – Watson Wins 'Jeopardy!' (IBM) 2012 – Routine Voice Interaction (by 2015, Georges Nahon predicts) 2025 – Premade Decisions (by 2019, Georges Nahon predicts) 2034 – Cybernetic Intelligence 2048 – Artificial Intelligence 2052 – Robot Wars 2067 – Dr. Computer 2078 – Cyborg Viruses 2081 – Memory Backup 2106 – A.I. Awarded Citizenship 2146 – A.I. Government
1969 – Navigating the Moon (The Apollo) 1971 – Computer Games (Nolan Bushnell) 1978 – GPS 1980 – The Walkman(Sony) 1981 – Digital Cameras (Sony) 1994 – Driverless Cars 1996 – HDTV 1999 – Hybrid Vehicles (Honda) 2001 – The iPod (Apple) 2002 – The Segway 2010 – Driverless Cars (Google) 2012 – Self-Driving Cars (by 2030, Sebastian Thrun predicts) 2012 – Mobile Wallet (Kai-Fu Lee predicts) 2012 – Brain-Powered Prosthesis 2012 – Predictive PrePurchasing 2021 – Practical Robot Cars (by 2018, Larry Smarr predicts) 2023 – Curing Cancer (by 2020, David Patterson predicts) 2025 – No Red Lights 2034 – Everyone Telecommutes 2035 – Life Out There 2038 – To Mars and the Moon 2044 – Automated Restaurants 2044 – Smart Clothing 2045 – Flying Cars 2069 – Post-Scarcity World 2070 – Consumer 3D Printing 2074 – Bicentennial Man 2098 – Cash is Outlawed
109 first Web browser) 1993 – Graphical Web Browsers (Mosaic) 1993 – Smartphones (Simon) 1995 – Dial-Up Internet 2003 – Internet Telephony (Skype) 2004 – Social Networks (facebook, Mark) 2007 – E-Readers (Amazon) 2010 – The iPad (Apple) 2012 – Online Science (by 2026, Scott Aaronson predicts) 2012 – Electronic Ink 2013 – Holographic Displays 2013 – The Mobile Web 2016 – Internet Romance 2018 – Ubiquitous Tracking 2022 – 'Halo of Data' (by 2016, Georges Nahon predicts, 2024 – Universal Translator 2026 – Voting by Phone 2044 – Full Life Recording 2061 – Collective Learning 2065 – Understanding Animal
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 manyvalued 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
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
192
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 Nume
Data punerii în funcțiune
Sistem de Mecanism numerație de calcul
Programare
Zuse Z3 (Germania)
mai 1941
Binar
Electromecanic
Calculatorul Atanasoff–Berry (SUA)
1942
Binar
Electronic Neprogramabil
Colossus Mark 1 (Regatul Unit)
februarie 1944
Binar
Electronic
Programabil cu cabluri și comutatoare
Nu
Harvard Mark I – mai 1944 IBM ASCC (SUA)
Zecimal
Electromecanic
Programabil prin bandă perforată cu 24 de canale (fără instrucțiune de ramificare)
Nu
Colossus Mark 2 (Regatul Unit)
iunie 1944
Binar
Electronic
Programabil cu cabluri și comutatoare
Nu
ENIAC (SUA)
iulie 1946
Zecimal
Electronic
Programabil prin cabluri și comutatoare
Da
Binar
Cu program stocat în Electronic memorie cu tuburi catodice Williams
Da
ENIAC modificat septembrie (SUA) 1948
Zecimal
Programabil prin cabluri și comutatoare, plus un mecanism de programare Electronic primitiv, cu memorie ROM în care erau ținute tabele de funcții
Da
EDSAC (Regatul Unit)
Binar
Program stocat în memorie Electronic bazată pe linii de întârziere cu mercur
Da
Manchester Mark octombrie 1 (Regatul Unit) 1949
Binar
Program stocat în memorii Electronic cu tuburi catodice Williams și cu tambur magnetic
Da
CSIRAC (Australia)
Binar
Program stocat în memorii Electronic bazate pe linii de întârziere cu mercur
Da
Manchester SmallScale Experimental iunie 1948 Machine (Regatul Unit)
mai 1949
noiembrie 1949
Programabil prin film perforat
Turing complet Da (1998) Nu
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 sau 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 IBM1401 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 IBM7094 ș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, 1972
DEC - PDP-11 minicomputer, 1970
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).
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
200
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
Generația
Tipuri microprocesoare
Generația I – 4, 8, 16 biți
4004 94 biti, 8008, 8080 (8 biti) 8086, 8088 (anul 1979) 80186, 80188 (anul 1982) 8087 (coprocesor, math chip) (anul 1983)
Generația II – 16, 24 biți
80286 (anul 1982), 80287 (coprocesor, math chip)
Generația III – 32 biti
80386 (anul 1985) 386DX (anul 1985) 386SX (AMD, Cyrix) (1988) 386SL (anul 1990)
Generația IV – 32 biți
80486 (anul 1989) 486DX (anul 1991) 486SX (AMD, Cyrix) (1992) 486SL (anul 1992) Utilizare GUI
Generația V – 64 biți
Generația VI – 64 biți
Generația VII – 64 biți
Generația VIII – 64 biți
80586 – Pentium (anul 1995) – Complex instruction set computer (CISC) Pentium MMX (1997) AMD K5 80686 – Pentium II (anul 1997) – RISC microinstructions Celeron, Xeon (1998) Pentium III AMD K6, Athon 80786 – Pentium IV (anul 2001) – RISC microinstructions Celeron M, Tualatin (2003) AMD K7, Athon (2003)
80886 – Pentium V (anul 2003) Itanium (2003) Intel Core (2006) Xeon (2006) AMD K8, Athon 64 (2004)
Produsul
205
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
206
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ă, ecommerce, e-Learning și software educațional, social networking etc.
27 28
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 Suyama's DNA computer, din domeniile chimiei, medicinei şi http://hagi.is.s.u-tokyo.ac.jp/MCP/ ştiinţei materialelor. Calculatoarele
http://psystems.disco.unimib.it/download/MembIntro2004.pdf 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;
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
210
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”.
Imagine fractală realizată pe calculator
30
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”.
https://stirileprotv.ro/stiri/stirileprotv-special/andreea-esca-interviu-cu-robotul-sophia-reactia-la-intrebareaar-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;
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
214 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, sau 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 summitul ş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 ELearning, 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”, CNIV2004, 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.
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
226
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 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. 33
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, cofondator 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”;
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
234
„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şanumitele 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
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
238
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 kernelului 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 opensource 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)
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
244 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 numere integer i real s, x(100) s=0 do 1 i=1,100 x(i)=i s=s+x(i) 1 write(*,*)s end
de
Program SUMA-fara verctorului x integer i real s s=0 do 1 i=1,100 s=s+i 1 write(*,*)s end
utilizarea
============= 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 Si1 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);
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
246 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
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)) ...
============
251
252
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
Program în limbajul PHP: Form reguired ============
============ Program în limbajul C: apartenența unui punct la un domeniu poligonal închis oarecare ============= #include #include #include 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, 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
O
v = < v.x, v.y > w = < w.x , w.y > anglevect (v,w) v
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.
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
260
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 si raza 5 CREATE C2 (, 5); în memorie se creează cercul de centru si raza 5 CREATE E1(, 4,9); în memorie se creează elipsa de centru 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 { /// /// The main entry point for the application. /// [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
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(),
265
MARIN VLADA (ed. coord.), Proiectul ROINFO 2018-2020
266
java.awt.BorderLayout.CENTER); setVisible(true); new Thread(){ public void run(){ while(getCanvas().getNumarPuncte() 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= vertexNumber || 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