Dacă anii ’70 au fost pentru mine anii fundamentelor, ai limbajelor, ai compilatoarelor și ai primelor încercări de a înțelege portabilitatea software-ului, anii ’80 au reprezentat etapa de maturizare a acestor preocupări. A fost deceniul în care interesul meu s-a concentrat tot mai clar asupra proiectării sistematice a produselor software, asupra modelelor procesului de dezvoltare și asupra posibilității de a construi unelte capabile să asiste această activitate.
În acei ani, cercetarea mea s-a desfășurat la intersecția dintre reflecția teoretică, activitatea didactică și viața de laborator. Din această tensiune s-au născut idei care aveau să-mi structureze pentru multă vreme gândirea: mașina abstractă, interforma, modelul proiectării ca activitate de rafinare și, mai târziu, proiectul INTERFORM.
Începutul anilor ’80 m-a găsit după o perioadă de acumulare intensă, în care lucrasem asupra limbajelor de programare, compilatoarelor și portabilității programelor. Aceste cercetări nu au rămas izolate în zona tehnică a implementării, ci m-au împins treptat spre o întrebare mai largă: cum poate fi înțeles și modelat procesul prin care un program ia naștere?
În spatele acestei întrebări se ascundea, de fapt, o nemulțumire mai profundă față de caracterul artizanal, fragil și adesea improvizat al dezvoltării software. Cu cât experiența mea creștea, cu atât simțeam mai apăsat nevoia unei discipline a proiectării, comparabile — măcar în parte — cu rigoarea din alte ramuri inginerești.
Din acest punct de vedere, anii ’80 nu au fost pentru mine doar o continuare a anilor ’70, ci o schimbare de accent: de la preocuparea pentru corectitudinea și portabilitatea programelor, la preocuparea pentru ordinea internă a procesului software.
Contextul tehnologic al epocii era el însuși contradictoriu. Pe de o parte, informatica se lărgea, se diversifica și începea să iasă din spațiul calculatoarelor mari, centralizate. Pe de altă parte, această diversificare accentua fragmentarea software-ului și făcea tot mai vizibile limitele unei dezvoltări bazate doar pe talent individual, improvizație și experiență locală.
Pentru mine, cercetarea din acest deceniu a fost marcată de dorința de a găsi un principiu de coerență: o manieră de a descrie drumul dintre specificație și implementare fără a reduce proiectarea la o simplă execuție mecanică. Aici s-a conturat una dintre ideile centrale ale cercetării mele: proiectarea nu este nici pură inspirație, nici simplă aplicare de reguli, ci o succesiune de transformări controlate, realizate asupra unor descrieri intermediare.
În acei ani, laboratorul, cursurile și scrisul științific au funcționat împreună. Ceea ce încercam să formulez teoretic se reflecta în felul în care predam, iar ceea ce observam în activitatea didactică și practică revenea în articole sub formă de problemă conceptuală.
Una dintre direcțiile în care a evoluat această reflecție a fost formularea conceptului de mașină abstractă, ca model al unei etape sau al unui nivel de proiectare. Nu mă interesa doar programul final, ci și structurile intermediare prin care acesta trece până să ajungă la o formă executabilă.
De aici s-a născut ideea de interformă: o descriere intermediară, purtătoare de sens, care exprimă starea proiectului într-un anumit moment al dezvoltării sale. Interforma nu era pentru mine un artificiu terminologic, ci cheia unei abordări inginerești a proiectării software. Ea permitea să văd produsul software nu doar ca obiect final, ci ca rezultat al unei deveniri structurabile.
În această perioadă am încercat să formulez tot mai clar ce anume poate fi modelat formal într-o activitate creativă și unde rămâne inevitabil rolul intuiției, al experienței și al judecății proiectantului. Tocmai această tensiune mi s-a părut mereu esențială: proiectarea trebuie sprijinită de modele și unelte, fără a fi redusă la automatisme naive.
O etapă firească a fost trecerea de la reflecția teoretică la încercarea de materializare a ei într-un sistem concret. Astfel a apărut proiectul INTERFORM, care a reprezentat pentru mine mai mult decât o simplă aplicație: a fost testul practic al unei viziuni despre dezvoltarea asistată a programelor.
INTERFORM urmărea să ofere un cadru integrat în care produsul software să poată fi urmărit și elaborat prin forme intermediare coerente, cu sprijinul unor unelte adecvate. În acest sens, el reprezenta încercarea de a transforma o teorie a proiectării într-o arhitectură de lucru.
Privind înapoi, îmi dau seama că această direcție concentra multe dintre temele care mă preocupaseră anterior: formalismul, portabilitatea, transformarea, rolul structurilor intermediare și nevoia unei viziuni de ansamblu asupra procesului software.
Tot în anii ’80 s-a afirmat mai vizibil și interesul meu pentru inteligența artificială. Deși atracția față de acest domeniu era mai veche, abia acum ea a început să capete o formă mai clară, atât prin reflecții teoretice, cât și prin încercarea de a înțelege în ce măsură procesele de proiectare și rezolvare de probleme pot fi asistate de modele ale cunoașterii.
Pentru mine, legătura dintre ingineria software și inteligența artificială nu era una exterioară. Ea se năștea natural din aceeași preocupare pentru structuri, reprezentări și procese de transformare. Dacă în ingineria software mă interesa ordinea proiectării, în inteligența artificială mă interesa felul în care cunoașterea însăși poate fi organizată, reprezentată și folosită.
În acest fel, anii ’80 au fost și deceniul unei deschideri: fără a abandona nucleul preocupărilor mele privind proiectarea software, am început să intuiesc că unele dintre întrebările mele depășeau deja cadrul clasic al programării și cereau un dialog cu domeniul mai larg al inteligenței artificiale.
Pagina de față are un rol narativ și cronologic. Pentru prezentarea pe domenii, articole, sinteze și documente, vezi paginile tematice de mai jos:
Vezi și: Inginerie software • Ordine în haos • INTERFORM – articolul din 1987
Această pagină prezintă firul narativ al cercetării. Pentru organizarea pe domenii, articole și proiecte, vezi Cercetarea științifică.