Intrarea mea în problematica semanticii limbajelor de programare a avut loc la începutul anilor ’70, în contextul ultimului an la Facultatea de Matematică (1972), când am lucrat la lucrarea mea de diplomă dedicată „Metodei Viena” (IBM Vienna Lab).
Secțiunea prezintă, în formă sintetică, această încercare ambițioasă de a defini formal semantica unui limbaj de programare, folosind un metalimbaj operațional (VDL) și modelul unei mașini virtuale implicite, asa cum am înțeles-o și prezentat-o în lucrarea de diplomă.
Dacă în anii ’50 sintaxa limbajelor de programare fusese „domesticită” prin gramaticile Chomsky independente de context (BNF), proiectul de la Viena încerca un pas analog, dar mult mai dificil: formalizarea semanticii. Primul limbaj tratat extensiv în acel cadru a fost PL/I, iar efortul a scos la lumină imediat limitele instrumentelor conceptuale ale epocii.
Instrumentul central era VDL (Vienna Definition Language) — un metalimbaj construit special pentru a exprima operațional cum evoluează execuția unui program, pas cu pas, în termenii stării unei mașini virtuale: evaluarea expresiilor, schimbarea conținutului memoriei (store), legarea numelor la memorie (environment), propagarea controlului prin secvențe de operații, ramificații, apeluri de proceduri, blocuri de instrucțiuni etc.
În această abordare, sensul unui program nu este exprimat prin formule declarative ca în alte abordări de formalizare a semanticii, ci prin evoluția controlată a unei stări abstracte a calculului, descrisă prin structuri precum environment, store și alte stări parțiale. A apărut astfel, pentru mine, ideea esențială că datele procesate și stările calculului nu sunt obiecte liniare, ci construcții inevitabil arborescente, iar Masina von Neumman cu memoria ei liniară nu face decat să maltrateze elegantul raționament uman.
Această viziune a constituit prima mea întâlnire sistematică cu noțiunea continuității semantice: înțelesul nu este atașat unei instrucțiuni izolate, ci unei transformări coerente unei structuri sintactice complexe.
Această întâlnire mi-a fixat o intuiție durabilă: în spatele fiecărui limbaj și al fiecărui program stă o mașină abstractă (fie că o numești așa sau nu) — iar rigoarea începe când descrii precis stările și transformările care dau semnificație textului programului.
În timpul lucrării, m-a urmărit o întrebare aparent simplă: ce sunt, matematic, „datele” manipulate de mașina abstractă? În VDL apăreau frecvent valori compuse: liste în liste, înregistrări care conțin alte înregistrări, structuri cu compunere potențial nelimitată. Intuiția mea a fost că aceste valori sunt inevitabil arborescente și că „memoria” semantică nu poate fi gândită conceptual ca o bandă liniară.
După susținere, la indicația prof. Grigore Moisil, am încercat să dezvolt această intuiție într-un articol despre obiecte arborescente, unde o eroare de definiție recursivă (circularitate) mi-a dat o lecție de rigoare pe care n-am uitat-o: cazul de bază și regula de construcție trebuie separate limpede.
Observație: Metoda Viena a fost pentru mine, în acei ani 1971–1972, o metodă de definire a semanticii unui limbaj. Ulterior, în evoluția ei (ultimii ani '70), VDM a devenit asociată explicit cu ideea de „development method”, adică un cadru metodologic de specificație și rafinare a software-ului în drum către implementare.
Privind retrospectiv, preocupările mele ulterioare pot fi citite ca o extensie firească a acestei prime întâlniri cu semantica. Problema fundamentală a rămas aceeași: cum poate fi făcut explicit sensul unor construcții formale suficient de complexe încât să poată fi analizate, transformate și verificate?
Dacă în anii ’70 semantica viza comportamentul programelor, mai târziu accentul s-a mutat spre semantica modelelor, a structurilor conceptuale și a proceselor de proiectare. În toate aceste contexte, ideea de stare, structură și transformare controlată rămâne centrală.
Începând cu anii 2007–2009, interesul meu pentru semantică s-a regăsit în studiul ontologiilor și al modelării explicite a cunoașterii. Ontologiile pot fi privite ca o formă modernă de semantică structurală: ele definesc tipuri de entități, relații și constrângeri care conferă sens unui domeniu.
În acest cadru, semantica nu mai este doar asociată execuției, ci devine un instrument de interoperabilitate, integrare și raționament automat.
O altă direcție în care preocupările semantice s-au regăsit este modelarea orientată pe concerns. Separarea preocupărilor poate fi interpretată ca o formă de modularizare semantică: fiecare concern definește un punct de vedere coerent asupra sistemului, cu propriile reguli și constrângeri.
Integrarea concern-elor devine astfel o problemă de compoziție semantică, analogă, la un alt nivel de abstractizare, compunerii semantice din limbajele de programare.
Cronologie: pentru contextul biografic și instituțional, vezi Drumul meu în cercetare.