!DOCTYPE html> Teza de doctorat – compilator conversațional ALGOL-60 – Luca Dan Șerbănați
Luca Dan Șerbănați la bacalaureat, 1961
Luca Dan Șerbănați în primii ani ’70
Luca Dan Șerbănați la ultimul curs, aprilie 1989

Luca Dan Șerbănați

Profesor emerit la Politehnica din București

Cercetare, învățământ, industrie și memorii

RO | EN | IT
Luca Dan Șerbănați la Veneția, 1990
Luca Dan Șerbănați la New York, 2005
Luca Dan Șerbănați

Teza de doctorat

Teza mea de doctorat a marcat un moment definitoriu în carieră, unind două direcții de cercetare rareori conciliabile în 1980: rigoarea formală și construirea efectivă a unui produs software operațional. La dorința conducătorului meu, prof. Mircea Petrescu, sub titlul oficial „Implementarea unui limbaj pentru un sistem interactiv de prelucrare a datelor”, teza ascundea, în fapt, proiectarea unui compilator conversațional ALGOL-60 pentru un sistem multiutilizator, capabil să răspundă incremental, în timp real, după fiecare linie introdusă de utilizator. „Limbajul” din titlu ascundea un compilator conversațional ALGOL-60 – SICAL – integrat într-un sistem destinat formării programatorilor în ALGOL-60.

Alegerea nu m-a entuziasmat la început: ALGOL-60 își consumase între timp noutatea practică, deși rămânea reperul care inaugurase descrierea formală a sintaxei în informatică. Am acceptat provocarea pentru că direcția conversațională — alimentată de apariția sistemelor în regim de time-sharing — deschidea o linie nouă de cercetare, iar rigorile formale ale limbajului îmi permiteau să încerc o abordare sistematică a construcției compilatorului. Particularitatea sa majoră a fost compilarea incrementală: după fiecare linie introdusă, utilizatorul primea feedback în timp real, chiar și atunci când la celelalte console se lucra concurent.

Pentru analiză sintactică am adoptat LALR(1) și am construit, împreună cu studenți excepționali, un generator de tabele; pentru analiză semantică am folosit scheme de traducere orientate pe sintaxă și gramatici de atribute (Knuth). Am lucrat pe resurse modeste (FELIX C-256), adesea noaptea, reluând execuțiile întrerupte dimineața — un exercițiu de răbdare care ne-a ținut împreună și ne-a obligat la soluții ingenioase. Compilatorul conversațional complet nu a ajuns la capăt până la susținere, dar am livrat componentele esențiale (gramatică adaptată, generator LALR(1), reguli semantice și documentație). Mai important, din această experiență am înțeles că teoria limbajelor formale nu servește doar unui compilator anume, ci poate oferi un cadru general pentru a descrie și controla procesul de dezvoltare a programelor.

Ideea-cheie

Compilarea este tratată ca proces incremental: analiza textului programului și structurile interne ale compilării se actualizează pe măsură ce programul se scrie, nu doar la final. În acest fel, teoria limbajelor și a traducerii devine componentă a interacțiunii om–mașină, sub constrângeri de timp de răspuns.


Obiective și rezultate ale tezei (sinteză)


Capitolul 1 – nucleul conceptual al tezei

Din experienta proiectului decurge „anomalia” fertilă a tezei: Capitolul 1 nu tratează detalii de implementare a SICAL, ci propune o formalizare a proiectării programelor, văzută ca o succesiune de transformări între „forme intermediare” guvernate de reguli precise. In capitol am încercat să formulez cadrul conceptual și să dau o formă riguroasă problemei: ce înseamnă, în termeni clari, un limbaj și un traducător într-un context conversațional, cum se exprimă incrementalitatea și cum pot fi descrise structurile interne ale programului „în lucru”.

Am lucrat cu ideea de „mașină abstractă” ca model de comportament, cu stări și acțiuni, și am încercat să surprind cum interfața cu mediul, structurile de date și operațiile pot fi rafinate sistematic până la un nivel executabil. Această încercare de a trece de la artă la inginerie — de la intuiție la pași justificabili — a devenit, în timp, scheletul metodologic pe care l-am dezvoltat ulterior.

Pentru acest capitol există o copie PDF, o traducere în engleză tot PDF, dar și o descriere detaliată, pe care o pun la dispoziție ca document distinct aici .

👉 Vezi mai mult despre Capitolul 1


Legături cu lucrările ulterioare

Temele din teză — rigoarea formală, reprezentările intermediare, structurile semantice și tratarea procesului de dezvoltare ca activitate sistematică — au alimentat preocupările mele ulterioare privind limbajele, compilatoarele și proiectarea inginerească a produsului software.


Materiale disponibile

Textul integral al tezei nu este disponibil într-o ediție digitală completă și curată. În schimb, pun la dispoziție tabla de materii și introducerea tezei, precum și o descriere extinsă (12 pagini), care prezintă structura, ideile și contribuțiile.

Back