Semántica (programación)
Lo que un programa significa, lo que hace al ejecutarse. Se distingue de la sintaxis (cómo se ve). Tres enfoques formales para especificarla: operacional, denotacional, axiomática.
Operacional: programa = máquina de estados, semántica = lo que hace cada paso (máquina SECD, interpretación abstracta). Denotacional: programa = función matemática (Scott + Strachey, años 70). Axiomática: programa = enunciados lógicos sobre el estado (lógica de Hoare, lógica de separación). Importante en la práctica para: diseño de compiladores, verificación formal, diseño de lenguajes. El comportamiento indefinido en C/C++ es "cuando la semántica no dice nada" → el compilador puede optimizar esos casos sin más.
Sintaxis