semàntica
IndiceLessico
sf. [sec. XIX; dal francese sémantique, dal greco sēmantikós, significativo, semantico].
1) In linguistica, termine introdotto nel 1883 da M. Bréal per designare lo studio, fino allora trascurato, delle “leggi che presiedono alla trasformazione dei significati, alla scelta di espressioni nuove, alla nascita e alla morte di modi di dire”.
2) Per estensione, in logica, studio delle relazioni che intercorrono tra le espressioni di un linguaggio e gli oggetti a cui tali espressioni si riferiscono.
Linguistica
La nuova scienza, illustrata da Bréal soprattutto nell'Essai de sémantique (1897), ebbe un precursore nel filologo umanista tedesco C. C. Reisig, che aveva diviso la grammatica in tre sezioni: etimologia, sintassi e semasiologia (1825). È però opportuno rilevare che annotazioni di interesse semantico si possono già trovare negli antichi autori greci e latini. La semantica è stata definita “una tipica scienza di frontiera” perché coinvolge competenze specifiche di varie discipline, oltre alla linguistica, e particolarmente della psicologia, della sociologia, della filosofia, della semiologia. Concepita dapprima come scienza storica con il compito specifico di studiare diacronicamente le evoluzioni dei significati (riconducibili soprattutto ad “allargamenti”, “restringimenti”, “trasferimenti”, “peggioramenti”, “miglioramenti” di significato, e a classiche figure retoriche come la metafora, la metonimia, la sineddoche, l'iperbole, la litote), la semantica è andata sempre meglio definendosi come disciplina sincronica (cui compete la descrizione dei contenuti significativi di singole parole, di unità sintagmatiche più complesse e di intere frasi, e in particolare lo studio delle relazioni tra lingua e pensiero). La linguistica strutturale ha rinnovato i metodi e le prospettive delle ricerche semantiche insistendo soprattutto sul fatto che non solo i suoni e le forme grammaticali, ma anche le parole e i loro significati devono essere studiati non isolatamente ma nel più ampio contesto delle loro relazioni formali, nozionali, storiche e stilistiche, formando un sistema i cui termini si condizionano reciprocamente. Già F. de Saussure aveva richiamato l'attenzione sui rapporti associativi che uniscono le parole per senso e/o forma; ulteriori progressi in questa direzione fecero J. Trier (che introdusse la teoria del “campo semantico” per cui ogni modificazione di un concetto determina un cambiamento anche dei concetti affini e, per conseguenza, delle parole che li esprimono), Ch. Bally (cui si deve la nozione di “campo associativo”), G. Matoré (che formulò la teoria dei “campi nozionali”), P. Guiraud (che elaborò la nozione di “campo morfo-semantico”). Più recentemente S. Ullmann ha proposto una classificazione funzionale dei mutamenti semantici distinguendo i cambiamenti dovuti a “conservatorismo linguistico” e quelli dovuti a “innovazione linguistica”, per i quali ultimi si possono avere trasposizioni di nomi o trasposizioni di sensi, sia per somiglianza sia per contiguità, e più complesse trasposizioni composite. Con la sua opera Ullmann ha posto i fondamenti di una semantica tipologica e ha fatto balenare la possibilità di creare una semantica “pancronica” che metta in luce gli elementi universali comuni a tutte le lingue e a tutte le epoche. Gli studi di semantica sono andati sempre più intrecciandosi con quelli di semiotica, che recupera dalla linguistica le teorie del significato e le estende a ogni forma di significazione. In questo senso rientra pienamente nell'ambito della semantica l'idea di "enciclopedia" formulata da U. Eco, come struttura rizomatica della conoscenza. Allo stesso modo, la teoria generativa del senso, così come elaborata da A. J. Greimas, si configura come un tentativo di spiegazione formale della costituzione del significato, dalle unità più piccole del significante ai testi più complessi.
Logica
La semantica studia quelle nozioni che esprimono relazioni tra oggetti e designazioni come, per esempio, quella di denotazione, soddisfazione, definizione, verità e così via. Se abbiamo una teoria T, data da un linguaggio L e da un universo di oggetti U a cui i termini di L fanno riferimento, diciamo che la semantica di T è quella particolare metateoria che studia i rapporti che sussistono tra il linguaggio-oggetto e l'universo della teoria-oggetto. Al fine di poter operare un'indagine semantica si deve poter disporre di un linguaggio metateorico che possegga segni che denotino elementi del linguaggio-oggetto, segni che denotino elementi dell'universo della teoria-oggetto e che possa esprimere i rapporti che tra questi intercorrono; si deve inoltre disporre di una precisa procedura di interpretazione che consenta di far corrispondere a ogni segno di L un elemento di U. Con l'opera di G. F. Frege e con la sua teoria del significato si gettano le basi della distinzione tra semantica e sintassi, ma è solo dopo la crisi dei fondamenti e verso la fine degli anni Venti che si sviluppa lo studio semantico delle teorie logiche. Se le prime indagini di L. Lowenheim e di T. A. Skolem hanno un'impostazione insiemistica e intuitiva degli aspetti semantici, si vanno facendo sempre maggior luce la necessità e l'importanza di un rigoroso approccio semantico ai problemi logici. Lo sviluppo delle ricerche semantiche era subordinato alla soluzione di alcuni problemi fondamentali, quali la necessità di distinguere tra teoria e metateoria e in particolare tra linguaggio della teoria e linguaggio metateorico (distinzione questa che riduce tra l'altro la possibilità di antinomie); la necessità di stabilire in quali rapporti stanno le nozioni sintattiche rigorosamente definite e quelle semantiche intuitivamente accolte. Occorreva altresì una precisazione della nozione di verità data la sua centralità per ogni processo interpretativo. Tali problemi furono affrontati negli anni Venti soprattutto dalle scuole logiche polacche. È a S. Lesniewski che si deve la consapevolezza dell'opportunità di distinguere tra lingua di cui si parla e lingua in cui si parla, cioè tra linguaggio oggetto e metalinguaggio, così come si deve ad A. Tarski negli anni Trenta una precisazione rigorosa della semantica e l'elaborazione di una teoria della verità adeguata. Sempre negli anni Trenta, Skolem, Tarski, K. Gödel e altri precisarono via via i rapporti intercorrenti tra sintassi e semantica. In seguito al teorema di Gödel, l'indagine semantica risulta soddisfacente solo per la logica elementare proprio in quanto mostra l'incompletezza semantica di sistemi logici di ordine superiore al primo. Va però osservato che i metodi dell'indagine semantica, riconnettendosi più da vicino alla pratica ricerca matematica, algebrica e topologica in particolare, sono risultati per quest'ultima estremamente fruttuosi, come testimoniano le opere di L. Henkim, J. D. Monk, Tarski e A. Malcev. Tali metodi stanno alla base degli sviluppi particolarmente fecondi di teorie come quelle dei modelli che hanno la loro radice nella teoria semantica di Tarski. Proprio questa fecondità è alla radice del rifiorire di ricerche semantiche in ambiti spesso particolari e molto diversificati tra di loro negli anni Cinquanta e Sessanta a opera di Tarski, Malcev, S. Kripke, C. R. Karp, R. Vaught.
Informatica
Definizione del significato computazionale di un programma. Quando si elabora un linguaggio di programmazione, occorre definire la semantica dei suoi costrutti, in modo da garantire che un programma esegua effettivamente la funzione desiderata. Questa semantica può essere definita in modo formale in termini di trasformazioni di valori su opportuni domini algbebrici, o informale, tipicamente esprimendo in linguaggio naturale i requisiti che un compilatore o un interprete per il linguaggio deve soddisfare. Per quanto riguarda la definizione formale, si distingue in genere fra semantica denotazionale e operazionale. La prima permette di definire qual è l'entità matematica, per esempio un insieme, una relazione o una funzione, calcolata da un certo programma, in modo da rispettare due requisiti fondamentali: a) che ogni frammento di programma abbia una denotazione; b) che la denotazione di un frammento composto sia ottenibile incrementalmente in modo che dipenda solo dalle denotazioni dei frammenti componenti fino a costruire la denotazione dell'intero programma. Mentre questa proprietà è facilmente assicurabile per espressioni che coinvolgano solo le operazioni di base fornite dal linguaggio, particolare attenzione va rivolta alla costruzione del significato di frammenti che incorporino strutture alternative, del tipo if-then-else, iterative, del tipo while, o ricorsive, in cui cioè un programma possa richiamare se stesso. Per questo motivo, la costruzione della semantica richiede che lo spazio delle denotazioni, cioè delle entità che possono essere assunte come interpretazioni del programma, abbia una determinata struttura. Particolarmente usati sono gli spazi che possiedono una struttura di ordine parziale completo (complete partial order, cpo). Si possono infatti adoperare le funzioni continue che trasformano elementi di un "cpo" in elementi dello stesso o di un altro "cpo", come definizioni del significato di un programma. Lo spazio di queste funzioni definisce un ulteriore "cpo", su cui si può costruire la semantica denotazionale di un programma come il minimo punto fisso per un operatore di interpretazione che trasforma programmi in funzioni. Per punto fisso si intende un valore x' tale che f (x')=x', così che f (f (x'))=f (x'). Considerandox' un programma e f l'operatore che ne costruisce l'interpretazione come approssimazione progressiva della funzione denotata da x', si raggiunge il punto fisso quando l'interpretazione del programma si comporta esattamente come la funzione che ne costituisce la denotazione. Per esempio, la funzione fattoriale (indicata con un punto esclamativo e che associa a ogni numero naturale il prodotto di tutti i numeri da 1 al numero stesso: 4!=4×3×2×1=24) rappresenta la denotazione del programma fact(n) = if n ==0 then 1 else n*fact(n-1), che ogni volta richiama ricorsivamente se stesso su un valore decrementato di 1 rispetto al valore in ingresso. La semantica di programmi che agiscono su domini più complessi dei numeri naturali richiede strutture algebriche più ricche, spesso definite mediante la teoria delle categorie. La semantica operazionale definisce invece il significato del programma in termini delle trasformazioni di stato di una macchina astratta, in cui per esempio particolari registri mantengono il valore del risultato finale. In un linguaggio di programmazione basato su una macchina virtuale, come Java o small talk, la semantica operazionale è definita specificando per ogni istruzione le trasformazioni che avvengono nella macchina virtuale in seguito alla sua esecuzione. A seconda del tipo di semantica adottata, un programma può ricevere diverse interpretazioni. Si consideri infatti l'espressione if 3<5 then 1 else f(0), dove f è una funzione che non termina per il valore 0, in cui quindi il ramo else non finisce. Poiché però la condizione è sempre soddisfatta, non vi è in realtà necessità di eseguirlo. Se si adotta una semantica in cui entrambi i rami vanno eseguiti prima di verificare la condizione e viene poi scelto il risultato prodotto dal ramo corrispondente al valore della condizione, il programma descritto non terminerà mai. A programmi non terminanti viene convenzionalmente associato il valore ^. Al contrario, se si adotta una semantica in cui i valori delle espressioni sono calcolati solo quando necessario, si avrà che la funzione calcolata dall'espressione coincide con quella calcolata dal solo ramo then. Programmi non terminanti possono essere facilmente ottenuti, per esempio scrivendo un ciclo while true do a:=1. Un'altra significativa differenza fra semantica di linguaggi di programmazione riguarda il passaggio di valori durante l'esecuzione di determinate procedure. Infatti, le espressioni che definiscono i valori degli argomenti possono essere valutate solo nel momento in cui i parametri devono essere utilizzati, oppure prima della chiamata. Nel primo caso, si dice che il passaggio è effettuato per nome, e il valore del parametro può variare fra un utilizzo e un altro. Nel secondo caso, invece si distinguono due ulteriori casi, qualora il risultato dell'espressione sia una variabile. Si può infatti estrarre il valore della variabile e crearne una nuova inizializzata con questo valore, lasciando inalterato al termine della procedura il valore iniziale della variabile (passaggio per valore). Oppure si può creare un puntatore alla variabile e utilizzare quindi quella originale, permettendone anche modifiche del valore (passaggio per riferimento). Il tipo di passaggio degli argomenti è definito come una caratteristica del linguaggio di programmazione, e deve essere implementato coerentemente dal compilatore. Il compilatore opera la costruzione del significato di un programma in diverse fasi. In particolare esso attraversa una fase di analisi semantica, operante sull'albero della sintassi astratta, avendo precedentemente controllato la correttezza sintattica del programma e la coerenza rispetto ai tipi dichiarati nell'uso di variabili e funzioni.
Bibliografia
Per la linguistica
T. De Mauro, Introduzione alla semantica, Bari, 1960; St. Ullman, La semantica, Bologna, 1966; A. J. Greimas, Semantica strutturale, Milano, 1968; G. Berruto, La semantica, Bologna, 1976; A. Bonomi, Le immagini dei nomi, Milano, 1987.
Per la logica
S. C. Kleene, Introduction to Metamathematics, Amsterdam, 1952; A. Tarski, Logic, Semantics, Metamathematics, Oxford, 1956; J. van Heijenoort, From Frege to Godel, Cambridge (Massachusetts), 1967; M. L. Della Chiara Scabia, Modelli sintattici e semantici delle teorie elementari, Milano, 1968; A. I. Malcev, The Metamathematics of Algebraic Systems, Amsterdam, 1971; F. Droste, Rôle des fonctions “méta” dans une sémantique naturelle, Urbino, 1990.