Hay muchos idiomas populares. Pero, los informáticos nos dicen que para comprender el comportamiento de los programas en esos lenguajes definitivamente y sin ambigüedades argumentan sobre el comportamiento del programa (por ejemplo, demostrar su identidad), necesitamos traducirlos a otro lenguaje bien entendido. A ese lenguaje lo llaman "semántica". Los autores proponen una de las muchas semánticas. Explican el significado de sus construcciones y cómo puedes traducir tu idioma a las suyas. Una vez que hagas eso, todos entenderán tu programa sin duda, dicen.
Se ve bien, sin embargo, no entiendo algo. ¿Nos dicen que introducen otro idioma para entender el primero? ¿Por qué lo entendemos mejor que el original? ¿Por qué esta semántica es mejor que eso? ¿Por qué no aprender la semántica de C de inmediato en lugar de inventar otro lenguaje para describir la semántica de C? Lo mismo se aplica a la sintaxis. ¿Por qué no hago la misma pregunta con respecto a la sintaxis?
PD: En los comentarios escuché que la semántica no significa otro idioma o traducción al mismo. Pero la semántica formal para VHDL dice que si entiendes algo de una sola manera, entonces no lo entiendes y se puede especificar el "significado del significado" si proporcionamos un idioma con un mecanismo que lo traduzca a otro idioma (conocido). Es decir, "la semántica es una relación entre sistemas formales". Hennessy, en Semántica de lenguajes de programación , dice que la semántica permite el procesamiento formal del "significado" del programa, cuando la semántica se suministra como BNF o Diagrama de sintaxis. ¿Qué es un sistema formal si no es un idioma?
PS2 ¿Puedo decir que la síntesis HW de un programa HDL dado en la interconexión de puertas es un proceso de extracción semántica? Traducimos la descripción (de alto nivel) al lenguaje (de bajo nivel) que luego entendemos.