La semantica di un linguaggio di programmazione definisce il significato delle sue istruzioni e strutture sintattiche. Mentre la sintassi stabilisce le regole su come scrivere il codice in modo corretto (cioè la forma), la semantica stabilisce cosa succede quando il codice viene eseguito (cioè il comportamento).
Tipi di Semantica
1. Semantica operazionale: descrive il comportamento di un programma esaminando come cambia lo stato del sistema durante l'esecuzione.
Esempio
x = 5
x = x + 1
print(x)
La sintassi è corretta, ma la semantica ci dice che x inizialmente vale 5, poi diventa 6 e viene stampato.
2. Semantica denotazionale: associa ogni costrutto del linguaggio a un oggetto matematico che rappresenta il suo significato.
Esempio:
Un'espressione come 2 + 3 viene mappata alla funzione matematica che somma due numeri.
3. Semantica assiomatica
Usa logica formale per descrivere il comportamento del codice, utile per la verifica di programmi.
Esempio:
Se x = 5, possiamo dedurre logicamente che x + 2 = 7.
Esempi di problemi semantici
Questi esempi mostrano come la semantica descriva il comportamento effettivo del codice, indipendentemente dal fatto che sia sintatticamente corretto.