INDICE GENERALE
Prefazione
CAPITOLO 1. Linguaggi naturali e artificiali
1.1 Tipi di linguaggi
vii
1
1
1.1.1 Sorgente e destinazione
2
1.1.2 Supporti e realizzazione
3
1.2 Apprendimento del linguaggio e inferenza grammaticale
6
1.3 Argomenti e obiettivi del libro
7
1.4 Le stringhe e le frasi
9
1.5 Linguaggi infiniti
1.5.1 Parole e lessico
1.6 Operazioni elementari sulle stringhe
11
12
13
1.6.1 Riflessione e simmetria
15
1.6.2 Ripetizioni ed elevamento a potenza
17
1.6.3 Posizioni delle stringhe
18
1.7 Operazioni sui linguaggi
1.7.1 Notazioni insiemistiche
1.8 Operazioni collettive sulle stringhe
19
20
24
1.8.1 Linguaggio universale complemento e differenza
25
1.8.2 Concatenamento di linguaggi
26
1.8.3 Elevamento a potenza di un linguaggio
27
1.8.4 Passaggio al limite e linguaggi infiniti
28
1.8.5 Linguaggio universale e proprietà della stella
30
1.9 Linguaggi non linguistici
32
iv
Indice generale
CAPITOLO 2. La famiglia dei linguaggi regolari
2.1 Panoramica
2.2 Espressioni regolari
2.2.1 Contro la proliferazione delle parentesi
2.3 La famiglia dei linguaggi regolari
2.3.1 Altre utili notazioni per le espressioni regolari
2.3.2 Famiglie di linguaggi
2.4 Descrizione verbale e formalizzazione
2.4.1 Regole di traduzione
2.4.2 Definizioni ex negativo
2.4.3 Divide et impera
2.4.4 Divisione in problemi non disgiunti
2.5 Le liste: un paradigma onnipresente
2.5.1 Liste astratte
2.6 Sintassi concreta e astrazioni linguistiche
2.7 Trasformazioni alfabetiche
2.7.1 Isomorfismi alfabetici
2.7.2 Trasformazioni irreversibili
2.7.3 Cancellature e proiezioni
2.7.4 Omomorfismo del linguaggio
2.8 Livelli gerarchici e precedenze
2.8.1 Documenti a più livelli e testi marcati
2.8.2 Gerarchie nei linguaggi aritmetici e logici
CAPITOLO 3. Automi
3.1 Definizioni operative e automi
3.2 Automi e riconoscimento del linguaggio
3.2.1 Rappresentazione grafica dell’automa
3.2.2 Funzione di transizione
3.2.3 Scoperta degli errori
3.2.4 Ruolo degli stati iniziale e finali
3.3 Stati equivalenti e automa minimo
3.4 La famiglia dei linguaggi a stati finiti
3.4.1 Linguaggi finiti, infiniti e universali
3.4.2 Riconoscitore del complemento
3.5 Indeterminismo
3.5.1 Transizioni indeterministiche
3.5.2 Unione di due linguaggi
c 88-08-07869-8
35
35
35
38
40
40
43
46
49
51
53
56
56
57
59
62
63
65
68
69
70
72
73
75
75
77
80
81
83
85
90
93
93
95
97
97
100
c 88-08-07869-8
Indice generale
v
3.5.3 Linguaggio speculare
102
3.5.4 Concisione dell’indeterminismo
104
3.5.5 Concatenamento, croce e stella
106
3.6 Dalla formula all’automa: traduzione sintattica
113
3.7 Dalla formula all’automa: metodo di McNaughton e Yamada
115
3.8 Ritorno al determinismo
117
3.8.1 Complessità del calcolo
125
3.9 Limiti degli automi finiti
127
CAPITOLO 4. Grammatiche
131
4.1 Origine delle grammatiche formali
131
4.2 Definizioni ricorsive
132
4.2.1 Definizione ricorsiva dei palindromi
4.3 Grammatiche libere
133
134
4.3.1 Grammatica e linguaggio generato
137
4.3.2 Alberi sintattici e derivazioni
139
4.4 Classificazione delle regole
143
4.5 Espressioni regolari e grammatiche
144
4.5.1 Dalla formula regolare alla grammatica
144
4.5.2 Una traduzione guidata dalla sintassi
146
4.5.3 Operazioni sui linguaggi liberi
148
4.5.4 Grafi sintattici e grammatiche EBNF
150
4.6 Patologia delle grammatiche
153
4.7 Ambiguità
155
4.7.1 Ambiguità di associazione nelle liste
157
4.7.2 Ambiguità di codifica
158
4.7.3 Ambiguità di decomposizione
160
4.7.4 Ambiguità del linguaggio
163
4.8 Equivalenza e adeguatezza strutturale
164
4.9 Liste gerarchiche e livelli di precedenza
166
4.9.1 Espressioni con operatori a precedenza
168
4.9.2 Suddivisioni di un libro
171
4.10 Parentesi e strutture chiuse
174
4.10.1 Funzioni e relazioni
177
4.10.2 Notazioni infisse e polacche
180
4.11 Le grammatiche degli automi
184
4.11.1 Dall’automa alla grammatica
185
4.11.2 Dalla grammatica all’automa
187
Indice generale
vi
c 88-08-07869-8
4.11.3 Equazioni linguistiche
4.12 Cenni all’analisi sintattica
4.12.1 Indeterminismo nei linguaggi liberi
4.13 Livelli metalinguistici
188
190
194
197
4.13.1 XML e i documenti della Rete
4.14 Limiti delle grammatiche libere
202
206
CAPITOLO 5. Logica e formalizzazione della lingua
5.1 Calcolo delle proposizioni e algebra di Boole
5.1.1 Dagli operatori aritmetici a quelli logici
5.1.2 Una funzione logica: la disgiunzione
5.1.3 Funzioni elementari e tabelle della verità
5.2 Formule logiche e precedenze tra connettivi
5.2.1 Interpretazione semantica
5.2.2 Costruzione della tabella della verità
5.3
5.4
5.5
5.6
Identità e trasformazioni delle proposizioni
Una tecnica di dimostrazione
Dalla tabella della verità alla sua formula
Calcolo dei predicati
5.6.1 Quantificatori e variabili individuali
5.6.2 Relazioni a tre e più argomenti
5.6.3 Funzioni e relazioni
5.6.4 Insiemi e predicati caratteristici
5.7 Sintassi del calcolo dei predicati
5.8 Scambi tra quantificatori
5.9 Ambito dei quantificatori
5.10 Lingua e logica
5.10.1 Dalla logica all’italiano
5.10.2 Dall’italiano alla logica
5.11 Limiti della logica e dei linguaggi formali
Bibliografia
Indice analitico
209
210
211
211
213
219
221
227
232
235
241
243
244
250
251
251
253
256
257
258
259
260
263
267
269
PREFAZIONE
Questo libro si distingue dai classici testi sui linguaggi formali perché non richiede
preparazione matematica, al di là delle conoscenze della scuola superiore.
Da dove viene l’idea del libro. Quando mi fu proposto di insegnare i linguaggi
formali nella appena costituita facoltà di scienze della comunicazione della Università della Svizzera italiana, fui francamente sorpreso. Come era possibile trasformare
un corso normalmente tenuto per gli studenti di ingegneria e informatica in modo da
renderlo adatto a giovani dalla formazione tutt’altro che matematica e ingegneristica?
Le scienze della comunicazione alle quali questo libro è rivolto presentano una ricca
combinazione di aspetti umanistici uniti ad una significativa formazione nelle tecnologie dell’informazione. Gli allievi non saranno però dei futuri tecnologi, né hanno
la preparazione matematica e l’abitudine all’uso dei modelli quantitativi che gli studenti di ingegneria e informatica acquisiscono con lo studio delle scienze esatte, della
fisica e delle sue applicazioni all’elettronica. È apparso allora necessario impostare
l’esposizione in modo nuovo, mirato a questi studi(1) .
La realtà sulla quale opera l’esperto di scienze della comunicazione non è quella
fisica con i suoi modelli matematici, ma è un mondo di testi e di ipertesti, di documenti
e di immagini, di giacimenti culturali e di informazioni richieste e fornite, attraverso
tanti ruoli e modalità di fruizione. La capacità di modellare con precisione tali fenomeni comunicativi, nella misura in cui è possibile ricorrere a metodi formali, deve
dunque appoggiarsi sulle teorizzazioni rivolte allo studio del linguaggio e del ragionamento: la teoria dei linguaggi formali e la logica. Queste discipline caratterizzano
del resto anche gli studi di informatica delle facoltà tecnologiche, dove però a questi
argomenti si giunge attraverso una solida base di analisi matematica e di algebra,
mentre negli studi di scienze della comunicazione non c’è ragione di dare tanto spazio
alla matematica: la linguistica ne prende in qualche senso il ruolo propedeutico, e
l’informatica nel suo ruolo operativo fornisce evidenti esempi dell’uso dei linguaggi
formali.
...................
(1)
Il manifesto di questo progetto didattico è apparso in [6].
viii
Prefazione
c 88-08-07869-8
I linguaggi formali per le scienze della comunicazione
È noto che la teoria dei linguaggi formali è emersa come disciplina scientifica verso la
metà del ’900, grazie alla sorprendente confluenza degli studi, fino ad allora separati,
di linguistica, logica-matematica e informatica (ante litteram).
Come padri fondatori emblematici della disciplina si possono assumere il linguista
Noam Chomsky, il logico Stephen Kleene e gli informatici che progettarono i primi
linguaggi artificiali di programmazione (in particolare John Backus). Staccatasi dalla
linguistica e dalla logica, nel mezzo secolo trascorso la disciplina si è affermata come
uno dei pilastri dell’informatica, permettendo lo sviluppo sempre più accurato e sistematico di innumerevoli linguaggi artificiali rivolti a tante e svariate esigenze: la
programmazione, le basi dei dati, l’intelligenza artificiale, la rappresentazione delle
conoscenze, la preparazione dei documenti e degli ipertesti, il controllo dei robot, i
protocolli di comunicazione delle reti, i linguaggi iconici e grafici, ecc. I linguaggi
artificiali di interesse per i nostri scopi non sono Pascal, C o Java, bensı̀ i linguaggi
(come XML) per la rappresentazione dei saperi della Rete (Internet). Ma la valenza
di questo libro non è quella operativa: saper programmare in questo o quel linguaggio
artificiale. La capacità che speriamo di trasferire al lettore e allo studente è quella modellistica, cioè il saper riportare i fenomeni comunicativi a modelli rigorosi e semplici.
Ne conseguono due indicazioni:
• I modelli dei linguaggi formali e degli automi sono il nucleo teorico-matematico
che insieme alla logica caratterizzano le scienze della comunicazione, assai meglio
delle matematiche tradizionali (algebra lineare, analisi matematica e geometria
analitica).
• Dal punto di vista del piano degli studi universitari è più efficace collocare l’insegnamento nel primo anno, in modo da impartire agli allievi le basi della formalizzazione e del ragionamento astratto che gioveranno nei corsi successivi. Tuttavia
è opportuna la precedenza di un corso di linguistica e di uno di informatica
(meglio se orientato all’uso della Rete).
Contenuti e obiettivi
Volendo schematizzare l’esposizione, focalizziamo i punti di vista centrali dello studio.
Essi sono: la formalizzazione del linguaggio (e della comunicazione in senso lato), la
trasformazione ed elaborazione dei linguaggi (e dei media in senso lato), il ruolo della
logica.
Formalizzazione del linguaggio
L’approccio sintattico mira a definire con precisione le frasi di un linguaggio, e fornisce
una gamma di approssimazioni al concetto di correttezza grammaticale. Per mezzo
dei concetti di stringa come sequenza di simboli, di linguaggio formale e di grammatica
generativa si modellano situazioni familiari (ad es. la struttura a capitoli di un libro)
o si riprecisano i modelli, di solito meno formali, esposti in altre materie: un esempio
può essere la teoria dell’argomentazione con i suoi modelli grammaticali e logici [7,3].
I prerequisiti matematici necessari alla comprensione sono esposti, pur se probabilmente già posseduti dal lettore: la teoria elementare degli insiemi, delle relazioni e la
c 88-08-07869-8
Prefazione
ix
logica proposizionale (algebra di Boole). I metodi formali studiati sono le espressioni
regolari, gli automi finiti, le grammatiche chomskiane libere dal contesto (o BNF ) e
i rudimenti della logica delle proposizioni e dei predicati del primo ordine.
L’esperienza didattica ci sembra dimostrare che gli allievi vivono con interesse la
propria crescente capacità di modellare situazioni che non avrebbero saputo descrivere con precisione in altro modo. Attraverso tale esercizio si sviluppa anche la loro
capacità di esprimere con precisione in italiano le regole di correttezza formale di un
semplice fenomeno o artefatto linguistico, comunicativo o comportamentale.
La struttura gerarchica delle grammatiche insegna all’allievo la strategia divide
et impera per decomporre un problema complesso in sottoproblemi più semplici, la
base di ogni buon metodo di progetto.
Inoltre la teoria dei linguaggi rivisita e formalizza certe nozioni apprese in un
corso di linguistica generale: la ambiguità e la idoneità strutturale. Lo studio della
idoneità strutturale di una definizione porta a capire che la descrizione più semplice
non sempre è adeguata e che la complessità del modello riflette quella del fenomeno
modellato. Entra cosı̀ in gioco uno dei punti di vista fondamentali della teoria della
complessità, quello descrittivo.
L’attenzione portata alle proprietà strutturali rende l’allievo consapevole degli
equivoci che nascono quando la sorgente e la destinazione di un messaggio sono formalizzate in modo inconsistente o ingannevole. Tali concetti hanno significativi contatti con lo studio dei codici (nel senso della teoria dell’informazione di Shannon), che
alcuni possono già conoscere o desiderare di approfondire [12].
Infine la teoria dei linguaggi formali non cessa di meravigliare i neofiti, cosı̀ come
stupı̀ il mondo scientifico cinquant’anni fa, quando essa mostra la convergenza di tre
modelli formali tanto diversi quanto le espressioni regolari di Kleene, le grammatiche
di Chomsky e gli automi a stati finiti: un elegante risultato matematico con un piccolo
apparato formale, ricco di ricadute applicative.
Trasformazione e rappresentazione dei linguaggi
Attraverso l’osservazione di semplici linguaggi concreti (annuario telefonico, documenti HTML, composizione dei vagoni di un treno, passi di un comportamento non
linguistico, stanze di una canzone . . . ) emerge la consapevolezza che le strutture sintattiche essenziali sono pochissime: le liste, le liste gerarchiche, le strutture a parentesi
o incassate, e poche altre. La grande varietà dei linguaggi è dunque solo apparente e
superficiale, un effetto della glassa sintattica (syntactic sugar) con cui vengono ricoperti i paradigmi sintattici fondamentali. Questa capacità di astrazione dai dettagli
(della sintassi concreta) rappresenta uno strumento concettuale importante da molti
punti di vista.
Innanzitutto essa permette una grande economia concettuale nello studio dei
linguaggi, un po’ come il latino facilita lo studio delle lingue neolatine. Un esempio è
dato dai termini funzionali, che si incontrano in molti linguaggi informatici come Java
o Pascal , nel calcolo dei predicati, o nella ingegneria dei saperi. Le rappresentazioni
con parentesi, con operatori infissi e le notazioni polacche (postfisse e prefisse) ben
illustrano le varie forme in cui un testo è rappresentabile senza perdita di informazione.
D’altro lato l’astrazione dalla forma esteriore del documento sta alla base della
buona comunicazione dei documenti nella Rete, dove il contenuto di un documento è
x
Prefazione
c 88-08-07869-8
logicamente separato dalla sua presentazione a video. Ci si ricollega in tale modo ai
concetti dell’informatica, come i linguaggi della famiglia XML per la marcatura dei
documenti. Quest’ultimo sistema offre anche un esempio concreto della distinzione
tra metalinguaggio e linguaggio, uno dei capisaldi della logica.
Ma soprattutto nasce di qui la distinzione tra forma e contenuto, tra sintassi e
semantica, che impregna ogni fenomeno comunicativo. Le trasformazioni sintattiche
servono dunque a filtrare o a evidenziare le tante letture che possono darsi allo stesso
testo. Il significato di una frase viene visto come la sua traduzione in un secondo
linguaggio, mediante una trasformazione guidata dalla sintassi ovvero una interpretazione semantica. Studiando le trasformazioni dirette e inverse (presenti ad es. nei
rebus e nelle traslitterazioni) si percepiscono le proprietà necessarie a permettere la ricostruzione del messaggio originale. L’allievo comprende in questo modo quali siano le
tecniche utilizzate per realizzare gli analizzatori sintattici e i tanti strumenti software
che trasformano i documenti.
La comprensione potrebbe essere rafforzata dalla partecipazione ad esercitazioni
di laboratorio rivolte alla costruzione automatica dell’analizzatore di un microlinguaggio usando un generatore (parser generator). Ma per sviluppare a fondo la capacità
progettuale e operativa occorrerebbe un secondo livello di approfondimento della materia.
Gli aspetti algoritmici sono dunque solo accennati. Tuttavia non sono completamente assenti i concetti di indeterminismo e di trasformazione deterministica, di
risorse di memoria e di tempo, ossia gli elementi fondamentali della scienza della
complessità algoritmica.
Perché formalizzare?
Da una prospettiva pratica nasce la domanda: perché si deve formalizzare un linguaggio? I linguaggi artificiali devono essere formalizzati completamente, nella sintassi e
nella semantica, per poter servire efficacemente come canale di comunicazione in modo
da tutti condiviso. Una definizione non formale non è sufficiente per determinare tutti
gli usi del linguaggio, se questo permette una varietà molto grande di frasi. Senza
una definizione formale da tutti accettata come standard, una frase potrebbe avere
diverse interpretazioni, come talvolta accade per i linguaggi della Rete.
In altri campi, diversi da quello dei linguaggi tecnici dell’informatica, può bastare
una formalizzazione parziale a scopo classificatorio e descrittivo. In tale direzione si
collocano in particolare gli sforzi di formalizzazione presenti nelle discipline retoriche
e semeiotiche.
La logica come linguaggio formale
Sappiamo tutti che la logica matematica è fondamentale per gli studi di informatica, ma il ragionamento logico è estremamente importante anche per le scienze della
comunicazione. Limitiamoci a citare alcuni campi che ci sembrano motivanti per il
ricorso che vi si fa alla logica: linguistica generale, semeiotica, teoria dell’argomentazione, teoria della comunicazione di massa, tipologia dei testi e tecniche espressive; oltre che ovviamente i campi tecnologico-informatici: ingegneria delle conoscenze, ingegneria del software e basi di dati. Questo libro però non è un testo di
logica (ci vorrebbe ben altro spazio per presentarla in modo ragionevolmente com-
c 88-08-07869-8
Prefazione
xi
pleto), ma soltanto una occasione per introdurre in poche pagine le basi di questa
disciplina.
La logica è indubbiamente il più antico tentativo di formalizzare una parte del
linguaggio naturale, cioè l’insieme degli enunciati che godono della proprietà di essere
veri o falsi. Non è quindi difficile presentare il calcolo proposizionale e la logica
dei predicati del primo ordine come esempi di linguaggi definiti tramite una sintassi
formale. La traduzione dall’italiano alla logica e viceversa permette di palesare certe
ambiguità interpretative celate dal linguaggio naturale. Resta quasi completamente
escluso da questo approccio lo studio, ben più impegnativo, del ragionamento logico,
ossia delle inferenze e delle dimostrazioni.
Considerata l’importanza della comunicazione visiva e multimediale, ci siamo
interrogati sulla possibilità di esporre i modelli formali rivolti alla descrizione dei
linguaggi non testuali, quali i linguaggi iconici, le immagini a due dimensioni, e quelle
interazioni uomo-macchina riconducibili a metafore grafiche del comportamento (come
i sistemi a finestre). Sfogliando i programmi dei corsi di comunicazione visiva e di
analisi dei messaggi multimediali si incontrano infatti riferimenti ai modelli formali
della teoria dei linguaggi, dalle grammatiche generative agli automi riconoscitori. Al
momento tuttavia abbiamo preferito concentrare l’attenzione sui linguaggi puramente
testuali, piuttosto che allargare il quadro includendovi altri modelli formali, come
le grammatiche iconiche per la descrizione delle immagini bidimensionali. Chi si
interessa alla comunicazione visiva troverà in questo libro i concetti di base ma non
gli sviluppi specialistici.
La matematica delle parole e non dei numeri
Da un dibattito riguardo alla matematica nei nostri studi(2) , citiamo:
Le basi teoriche (qui intendendosi le teorie formali) possono essere considerate
con riguardo alla comunicazione in generale e specialmente alla comunicazione
tramite la IT (Information Technology). Infatti sempre più spesso l’interazione
tra individui o organizzazioni è mediata dall’informatica e dalla telematica. Naturalmente non bastano le conoscenze teoriche per un impiego effettivo della IT,
ma occorre anche il possesso di specifiche abilità operative: ma questo non è l’argomento della presente discussione. Le buone teorie costituiscono lo strumento
mentale per dominare la complessità dei sistemi di IT, nonché per ridurre la incessante fatica di appropriarsi degli aggiornamenti di una tecnologia in continua
evoluzione. In una scienza cosı̀ dinamica gli stessi modelli teorici sono soggetti
a mutamenti e ampliamenti: basti pensare al recentissimo sviluppo della teoria
della complessità del calcolo con le sue fondamentali applicazioni alla sicurezza
della comunicazione. In un corso universitario conviene però scegliere i concetti
teorici più classici e consolidati dall’esperienza, procedendo a periodiche verifiche
della loro attualità e adeguatezza. ( . . . ) Per consolidarsi e affermarsi, gli studi
in scienze della comunicazione, dopo la promettente fase di avviamento, devono
offrire agli allievi una formazione matematica più sistematica e ripetibile.
Ciò premesso, quanto ora ripeteremo potrà apparire ad altri come l’effetto di una
infatuazione per la nostra materia, ma vogliamo lo stesso esporci a questo rischio.
...................
(2)
Promosso da Luigi Dadda, professore di informatica, già rettore del Politecnico di Milano
e cofondatore della laurea in scienze della comunicazione della Università della Svizzera
italiana.
xii
Prefazione
c 88-08-07869-8
Di quali argomenti matematici e formali può avvantaggiarsi lo studioso della comunicazione? Certo l’analisi matematica, argomento centrale per altri studi (come l’economia e l’ingegneria) ha un posto secondario e quasi trascurabile nel nostro caso,
cosı̀ come il calcolo numerico. Invero riguardo all’apparato matematico analitico rivolto alla fisica basta la conoscenza elementare, che ogni diplomato del liceo dovrebbe
possedere.
Sulla importanza della logica-matematica abbiamo già preso posizione, anche se
resta abbastanza aperta la scelta degli argomenti e dell’approccio espositivo, che certo
non può essere quello dei corsi rivolti a filosofi, matematici o informatici.
Accanto e forse prima della logica, materia ben più difficile, pensiamo che la teoria matematica dei linguaggi formali debba costituire la base teorica caratterizzante
gli studi di scienze della comunicazione. I linguaggi formali sviluppano infatti l’attitudine al ragionamento astratto, la capacità di descrivere rigorosamente un messaggio,
lo spirito di osservazione che coglie le analogie strutturali e le differenze tra i documenti, la capacità di decomporre una descrizione complessa in parti più semplici. I
limiti del ragionamento logico e della formalizzazione, se chiaramente enunciati nell’insegnamento, renderanno i nostri laureati consapevoli della differenza tra pensiero
e comunicazione, tra lingua naturale e linguaggio artificiale, evitando il pericolo della
cieca idolatria tecnologica.
Se la nostra esperienza didattica ha valore, riteniamo che anche gli allievi più
umanisti, nonostante il loro frequente e ostentato pregiudizio antimatematico, recepiranno con interesse un corso, seppure matematico, avente come oggetto le parole e
i testi, le strutture linguistiche e i significati.
Nello sviluppare il presente progetto didattico abbiamo incontrato una difficoltà
pratica: l’assenza di libri di testo adatti alle nostre finalità e ai nostri lettori, sia nella
scelta degli argomenti, sia per il livello espositivo. Infatti non conosciamo libri sui
linguaggi formali proponibili, se non con una faticosa opera di ritaglio e di arricchimento espositivo. Questa è la ragione che ci ha spinto a raccogliere in un volume il
materiale presentato in classe.
Una serie di problemi e di esercizi è disponibile in Rete all’indirizzo web dell’autore, che si trova all’interno del sito www.elet.polimi.it.
In conclusione ci auguriamo che il dibattito sulle basi teoriche e formali delle
scienze della comunicazione possa proseguire e allargarsi.
Ringraziamenti
Questo progetto non avrebbe potuto nascere senza la lungimirante visione di Luigi
Dadda sulla posizione delle tecnologie della comunicazione nell’ambito degli studi
umanistici sulla comunicazione. Ringraziamenti a: Matteo Pradella per i suggerimenti
espositivi e la partecipazione alla sperimentazione didattica; Marco Colombetti per
tanti confronti sui ruoli della logica e dei linguaggi formali; Alessandra Cherubini e
Roberto Vanzetto. Riconosco di aver preso esempi e ispirazione dagli appunti del
corso di linguistica di Eddo Rigotti, raccolti a cura di Sara Cigada. Infine la lettura
da parte dello studente liceale Olivier è servita come un primo test sulla idoneità di
queste materie ad essere insegnate al livello della scuola superiore.
Milano e Lugano, Settembre 2001.