stringtranslate.com

Semántica (informática)

En la teoría de los lenguajes de programación , la semántica es el estudio matemático riguroso del significado de los lenguajes de programación . [1] La semántica asigna significado computacional a cadenas válidas en la sintaxis de un lenguaje de programación . Está estrechamente relacionado y, a menudo, se cruza con la semántica de las demostraciones matemáticas .

La semántica describe los procesos que sigue una computadora al ejecutar un programa en ese lenguaje específico. Esto se puede hacer describiendo la relación entre la entrada y la salida de un programa, o dando una explicación de cómo se ejecutará el programa en una determinada plataforma , creando así un modelo de cálculo .

Historia

En 1967, Robert W. Floyd publicó el artículo Asignación de significados a programas ; su principal objetivo era "un estándar riguroso para las pruebas sobre programas informáticos, incluidas las pruebas de corrección , equivalencia y terminación". [2] [3] Floyd escribió además: [2]

En nuestro enfoque, la definición semántica de un lenguaje de programación se basa en una definición sintáctica . Debe especificar cuáles de las frases de un programa sintácticamente correcto representan comandos y qué condiciones deben imponerse a una interpretación cercana a cada comando.

En 1969, Tony Hoare publicó un artículo sobre la lógica de Hoare sembrada por las ideas de Floyd, ahora a veces denominada colectivamente semántica axiomática . [4] [5]

En la década de 1970 surgieron los términos semántica operativa y semántica denotacional . [5]

Descripción general

El campo de la semántica formal abarca todo lo siguiente:

Tiene estrechos vínculos con otras áreas de la informática, como el diseño de lenguajes de programación , la teoría de tipos , los compiladores e intérpretes , la verificación de programas y la verificación de modelos .

Enfoques

Existen muchos enfoques de la semántica formal; estos pertenecen a tres clases principales:

Aparte de la elección entre enfoques denotacionales, operacionales o axiomáticos, la mayoría de las variaciones en los sistemas semánticos formales surgen de la elección de apoyar el formalismo matemático. [ cita necesaria ]

Variaciones

Algunas variaciones de la semántica formal incluyen las siguientes:

Describiendo relaciones

Por diversas razones, uno podría desear describir las relaciones entre diferentes semánticas formales. Por ejemplo:

También es posible relacionar múltiples semánticas a través de abstracciones mediante la teoría de la interpretación abstracta . [ cita necesaria ]

Ver también

Referencias

  1. ^ Goguen, José A. (1975). "Semántica de la computación". Teoría de Categorías Aplicada a la Computación y el Control . Apuntes de conferencias sobre informática. vol. 25. Saltador . págs. 151-163. doi :10.1007/3-540-07142-3_75. ISBN 978-3-540-07142-6.
  2. ^ ab Floyd, Robert W. (1967). "Asignación de significados a programas" (PDF) . En Schwartz, JT (ed.). Aspectos matemáticos de la informática. Actas del Simposio sobre Matemáticas Aplicadas. vol. 19. Sociedad Matemática Estadounidense. págs. 19-32. ISBN 0821867288.
  3. ^ Knuth, Donald E. "Resolución conmemorativa: Robert W. Floyd (1936-2001)" (PDF) . Memoriales de la facultad de la Universidad de Stanford . Sociedad Histórica de Stanford.
  4. ^ Hoare, CAR (octubre de 1969). "Una base axiomática para la programación informática". Comunicaciones de la ACM . 12 (10): 576–580. doi : 10.1145/363235.363259 . S2CID  207726175.
  5. ^ ab Winskel, Glynn (1993). La semántica formal de los lenguajes de programación: una introducción. Cambridge, Massachusetts: MIT Press. pag. xv. ISBN 978-0-262-23169-5.
  6. ^ Schmidt, David A. (1986). Semántica denotacional: una metodología para el desarrollo del lenguaje . Editores William C. Brown. ISBN 9780205104505.
  7. ^ Plotkin, Gordon D. (1981). Un enfoque estructural de la semántica operativa (Reporte). Informe Técnico DAIMI FN-19. Departamento de Informática, Universidad de Aarhus .
  8. ^ ab Goguen, Joseph A .; Thatcher, James W.; Wagner, Eric G.; Wright, Jesse B. (1977). "Semántica de álgebra inicial y álgebras continuas". Revista de la ACM . 24 (1): 68–95. doi : 10.1145/321992.321997 . S2CID  11060837.
  9. ^ Mosses, Peter D. (1996). Teoría y práctica de la semántica de la acción (Informe). Informe BRICS RS9653. Universidad de Aarhus .
  10. ^ Deransart, Pierre; Jourdan, Martín; Lorho, Bernard (1988). "Gramáticas de atributos: definiciones, sistemas y bibliografía . Apuntes de conferencias sobre informática 323. Springer-Verlag . ISBN 9780387500560.
  11. ^ Lawvere, F. William (1963). "Semántica funcional de teorías algebraicas". Actas de la Academia Nacional de Ciencias de los Estados Unidos de América . 50 (5): 869–872. Código bibliográfico : 1963PNAS...50..869L. doi : 10.1073/pnas.50.5.869 . PMC 221940 . PMID  16591125. 
  12. ^ Andrzej Tarlecki; Rod M. Burstall ; José A. Goguen (1991). "Algunas herramientas algebraicas fundamentales para la semántica de la computación: Parte 3. Categorías indexadas". Informática Teórica . 91 (2): 239–264. doi : 10.1016/0304-3975(91)90085-G .
  13. ^ Loco, Mark; Memarian, Kayvan; Nienhuis, Kyndylan; Pichon-Pharabod, Jean; Sewell, Peter (2015). "El problema de la semántica de concurrencia de los lenguajes de programación" (PDF) . Actas del Simposio europeo sobre lenguajes y sistemas de programación . Saltador . págs. 283–307. doi : 10.1007/978-3-662-46669-8_12 .
  14. ^ Abramsky, Sansón (2009). "Semántica de la interacción: una introducción a la semántica de los juegos". En Andrew M. Pitts; P. Dybjer (eds.). Semántica y Lógica de la Computación. Prensa de la Universidad de Cambridge. págs. 1–32. doi :10.1017/CBO9780511526619.002. ISBN 9780521580571.
  15. ^ Dijkstra, Edsger W. (1975). "Comandos cautelosos, indeterminación y derivación formal de programas". Comunicaciones de la ACM . 18 (8): 453–457. doi : 10.1145/360933.360975 . S2CID  1679242.

Otras lecturas

Libros de texto
Notas de lectura

enlaces externos