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.
Respuestas:
Porque para definir la semántica de C necesitas algún tipo de lenguaje, por ejemplo inglés. El inglés puede ser ambiguo, y especialmente es la semántica C99.
La noción informática de semántica es generalmente una descripción matemática de un programa, y esta descripción no es exactamente una traducción. Hay varios tipos de semántica, que pueden ser sobre diferentes cosas:
Un poco triste por ahora, comprender universalmente un programa a través de su semántica no es fácil ni la intención de todo. No es lo primero porque, bueno, esas matemáticas pueden ser complicadas. No es lo último porque la semántica proporciona una descripción común e inequívoca, pero no se utiliza para comprender un programa.
Si la lectura de la semántica no es muy significativa, la lectura y el acuerdo sobre la semántica de los elementos básicos del lenguaje es muy importante, por ejemplo para explicar de forma inequívoca la forma de C las obras primitivas.Seguir
En conclusión:
Técnicamente no, el lenguaje es matemático. También es básicamente lo mismo para todos los lenguajes de programación, por lo que incluso introducir un nuevo lenguaje, si es el mismo para todos, estaría bastante bien.
Debido a que es matemática, puede ser más difícil de entender, pero es mucho más precisa y completa.
Hay trabajos sobre analizadores verificados, pero la cuestión de qué significaría una semántica de un analizador no es trivial.
fuente