Luca Dan Șerbănați all'esame di maturità, 1961
Luca Dan Șerbănați nei primi anni Settanta
Luca Dan Șerbănați all'ultima lezione del quinto anno, aprile 1989

Luca Dan Șerbănați

Professore emerito alla Politehnica di Bucarest

Ricerca, insegnamento, industria e memorie

RO | EN | IT
Luca Dan Șerbănați a Venezia, 1990
Luca Dan Șerbănați a New York, 2005
Luca Dan Șerbănați

Riferimenti essenziali

Il posto del corso nella formazione di allora

Questo corso segnava il passaggio dai fondamenti teorici dell’informatica, insegnati nel terzo anno, al nucleo professionale della formazione software. Se Teoria degli automi e Teoria dei linguaggi formali fornivano i modelli astratti, qui iniziava il confronto con i linguaggi di programmazione reali, con la struttura della traduzione e con l’architettura interna dei compilatori.

Per me fu uno dei corsi più importanti di quella fase, perché mi permetteva di riunire diverse direzioni che mi interessavano: il rigore formale, la disciplina della programmazione, il significato dei linguaggi e la costruzione effettiva di strumenti software complessi.

L’architettura del corso nei tre semestri

Sebbene i manuali siano apparsi in più parti, in realtà costituivano un unico corso, sviluppato progressivamente.

  • Primo livello: il vocabolario generale dei linguaggi di programmazione. Venivano introdotte le idee di sistemi informativi, comunicazione e linguaggi, nonché l’“anatomia” dei linguaggi di programmazione vista dalla prospettiva dell’implementazione.
  • Secondo livello: la programmazione in Pascal. Pascal appariva come linguaggio della chiarezza e della disciplina della programmazione, utile sia per l’avviamento sia per il consolidamento di un pensiero algoritmico rigoroso.
  • Terzo livello: sistemi formali, traduzione e progettazione dei compilatori. Qui il corso diventava esplicitamente ingegneristico: dalle grammatiche e dagli schemi di traduzione si passava all’analisi lessicale, all’analisi sintattica, all’analisi semantica e alla generazione del codice intermedio.

I manuali del corso

La serie di manuali fu concepita come supporto di lavoro per questo lungo percorso. Deve essere intesa come un insieme unitario, anche se pubblicato in più volumi.

Dal linguaggio al compilatore

Una delle idee importanti del corso era che i linguaggi di programmazione non dovessero essere trattati come semplici elenchi di costrutti sintattici. Dovevano essere considerati in rapporto al modo in cui vengono definiti, tradotti e implementati. Per questo motivo, il corso poneva in parallelo due livelli: la descrizione formale e la realizzazione ingegneristica.

Sotto questo aspetto, per me era più di un corso classico sui compilatori. Era il tentativo di offrire agli studenti una visione unitaria: dalle nozioni generali sul linguaggio, alla pratica della programmazione in un linguaggio di alto livello, fino all’apparato formale e tecnico necessario per costruire un traduttore o un compilatore.

Il suo significato nella mia evoluzione didattica

Visto retrospettivamente, questo corso fu il punto in cui la mia esperienza nell’area dei fondamenti teorici incontrò l’interesse sempre più forte per la costruzione sistematica del software. Da quel momento in poi, gli interessi per i linguaggi, la traduzione, il significato e la progettazione si sarebbero intrecciati sempre più strettamente.

Ebbe anche un ruolo istituzionale: contribuì a delineare una direzione di formazione software più coerente all’interno della Facoltà di Automatica, in un momento in cui l’informatica nel Politecnico cominciava ad acquisire un’identità più chiara.

Collegamenti

Cronologia: per il contesto biografico e istituzionale, si veda Il mio percorso nella ricerca.