Teorías unificadas de la programación

libro de Tony Hoare

Las Teorías Unificadas de Programación (UTP) en ciencias de la computación se ocupan de la semántica de los programas. Muestra cómo la semántica denotacional, la semántica operativa y la semántica algebraica se pueden combinar en un marco unificado para la especificación formal, diseño e implementación de programas y sistemas informáticos .

El libro de este título de C.A.R. Hoare y He Jifeng se publicó en la Serie Internacional de Ciencias de la Computación Prentice Hall en 1998 y ahora está disponible gratuitamente en la web.[1]

Teorías

editar

La base semántica de la UTP es el cálculo de predicados de primer orden, aumentado con construcciones de punto fijo a partir de la lógica de segundo orden. Siguiendo la tradición de Eric Hehner, los programas son predicados en el UTP, y no hay distinción entre programas y especificaciones a nivel semántico. En palabras de Hoare :

Un programa de computadora se identifica con el predicado más fuerte que describe cada observación relevante que se puede hacer sobre el comportamiento de una computadora que ejecuta ese programa.

En el lenguaje UTP, una teoría es un modelo de un paradigma de programación particular. Una teoría UTP se compone de tres ingredientes:

  • un alfabeto, que es un conjunto de nombres de variables que denotan los atributos del paradigma que puede observar una entidad externa;
  • una firma, que es el conjunto de construcciones de lenguaje de programación intrínsecas al paradigma; y
  • una colección de condiciones de salubridad, que definen el espacio de programas que se ajustan al paradigma. Estas condiciones de salubridad generalmente se expresan como transformadores monotónicos de predicados idempotentes .

El refinamiento de un programa es un concepto importante en la UTP. Un programa   es refinado por   si y solo si cada observación que se pueda hacer de   es también una observación de   . La definición de refinamiento es común en todas las teorías UTP:

 

dónde   denota el cierre universal de todas las variables en el alfabeto.

Relaciones

editar

La teoría UTP más básica es el cálculo del predicado alfabetizado, que no tiene restricciones alfabéticas ni condiciones de salubridad. La teoría de las relaciones es un poco más especializada, ya que el alfabeto de una relación puede consistir solo en:

  • variables no decoradas ( ), modelando una observación del programa al comienzo de su ejecución; y
  • variables preparadas ( ), modelando una observación del programa en una etapa posterior de su ejecución.

Algunas construcciones de lenguaje comunes se pueden definir en la teoría de las relaciones de la siguiente manera:

  • La declaración de omisión, que no altera el estado del programa de ninguna manera, se modela como la identidad relacional:

 

  • La asignación de valor   a una variable   se modela como configuración   a   y mantener todas las demás variables (denotadas por   ) constante:

 

 

  • La elección no determinista entre programas es su mayor límite inferior:

 

 

  • Una semántica para la recursividad viene dada por el punto menos fijo   de un transformador predicado monotónico   :

 

Referencias

editar
  1. Hoare, C. A. R.; Jifeng, He (1 de abril de 1998). Unifying Theories of Programming. Prentice Hall College Division. p. 320. ISBN 978-0-13-458761-5. Consultado el 17 de septiembre de 2014. 

Otras lecturas

editar

Enlaces externos

editar