En el de informática teórico, la semántica formal es el campo referido al estudio matemático riguroso del significado de los lenguajes de programación y de los modelos del cómputo .
La semántica formal de una lengua es dada por un modelo matemático que describa los cómputos posibles descritos por la lengua.
Hay muchos acercamientos a la semántica formal; estos acercamientos pertenecen a tres clases importantes:
semántica indicativa del del
, por el que cada frase en la lengua se traduzca a un signo del, es decir una frase en una cierta otra lengua. La semántica indicativa corresponde libremente a la compilación, aunque el " language" de la blanco; está generalmente un formalismo matemático algo que otro lenguaje de programación. Por ejemplo, la semántica indicativa de las idiomas funcionales traduce a menudo la lengua a la teoría del dominio;
semántica operacional del, por el que la ejecución de la lengua se describa directo (algo que por la traducción). La semántica operacional corresponde libremente a la interpretación, aunque otra vez el " language" de la puesta en práctica; del intérprete está generalmente un formalismo matemático. La semántica operacional puede definir una máquina abstracta (tal como la máquina SECD), y da el significado a las frases describiendo las transiciones que inducen en los estados de la máquina. Alternativo, como con el cálculo puro de la lambda, la semántica operacional se puede definir vía las transformaciones sintácticas en las frases de la lengua sí mismo;
semántica axiomática del, por el que uno dé el significado a las frases describiendo los axiomas lógicos del 'que se aplican a ellos. La semántica axiomática no hace ninguna distinción entre el significado de una frase y las fórmulas lógicas que lo describen; su significado es exactamente qué se puede probar sobre él en una cierta lógica. El ejemplo canónico de la semántica axiomática es la lógica de Hoare.
Las distinciones entre las tres clases amplias de acercamientos pueden a veces ser borrosas, pero todos los acercamientos sabidos a la semántica formal utilizan las técnicas antedichas, o una cierta combinación de eso.
Aparte de la opción entre indicativo, los acercamientos operacionales, o axiomáticos, la mayoría de la variación en sistemas semánticos formales se presentan de la opción de apoyar formalismo matemático.
Algunas variaciones de la semántica formal incluyen el siguiente:
La semántica de la acción es un acercamiento que intenta modularizar la semántica indicativa, partiendo el proceso de la formalización en dos capas (macro y microsemantics) y predefiniendo tres entidades semánticas (acciones, datos y productores) para simplificar la especificación;
Las gramáticas de cualidad definen los sistemas que computan sistemáticamente el " " de los meta datos ; (llamado atribuye el ) para los varios casos del sintaxis de la lengua. Las gramáticas de cualidad se pueden entender como semántica indicativa donde está simplemente la lengua la lengua objetivo original enriquecida con anotaciones de la cualidad. Aparte de la semántica formal, las gramáticas de cualidad también se han utilizado para la generación del código en los recopiladores y aumentar el las gramáticas independientes del contexto regulares de o con condiciones sensibles al contexto ;
categórico (o " functorial") la semántica utiliza la teoría de la categoría como el formalismo matemático de la base;
La semántica de la concurrencia es un término del atrapador para cualquier semántica formal que describa cómputos concurrentes. Los formalismos concurrentes importantes han incluido históricamente el modelo del agente y los cálculos de proceso ;
La semántica del juego utiliza una metáfora inspirada por la teoría del juego .
Por una variedad de razones, una pudo desear describir las relaciones entre diversa semántica formal. Por ejemplo:
Uno pudo desear probar que una semántica operacional particular para una lengua satisfaga las fórmulas lógicas de una semántica axiomática para esa lengua. Tal prueba demuestra que es " sound" para razonar sobre un (operacional) particular de la estrategia de la interpretación de usar un (axiomático) particular impermeabilizar el del sistema.
Dado un monolingu!e, uno pudo definir un " alto-level" máquina abstracta y un " bajo-level" máquina abstracta para la lengua, tal que este 3ultimo contiene operaciones más primitivas que el anteriores. Uno pudo entonces desear probar que una semántica operacional sobre la máquina de alto nivel sea relacionada por un Bisimulation con la semántica sobre la máquina baja. Tal prueba demuestra que el " bajo de la máquina; fiel implements" la máquina de alto nivel. Uno puede relacionar a veces la semántica múltiple con las abstracciones vía la teoría de la interpretación del extracto.
El campo de la semántica formal abarca todo el siguiente:
la definición de modelos semánticos,
las relaciones entre diversos modelos semánticos,
las relaciones entre diversos acercamientos al significado, y
la relación entre el cómputo y las estructuras matemáticas subyacentes de campos tales como lógica, la teoría determinada, la teoría modelo, la teoría de la categoría, el etc.
Tiene acoplamientos cercanos con otras áreas de informática tal como diseño de programación del lenguaje, tipo teoría, los recopiladores y la verificación de programa de los intérpretes y modelo que comprueba .
| Random links: | Pelham, de New Hampshire | Simon | Bahía de Swansea | Fuerza de la rozadura | Universidad de Reykjavík |