Modelo de programación relacional

Se obtiene añadiendo dos conceptos al modelo declarativo:

Escogencia no determinista

Dado un conjunto de opciones, se escoge cualquiera

Espacio de computación

Se simula el comportamiento de la máquina en función de una escogencia no determinista

Información adicional

  • Commit hace que se complete una operación Choose en el espacio y se devuelva un resultado
  • Choose espera hasta que el espacio se estabilice, bloquea el estado actual y crea un punto de escogencia.
  • Este paradi...

Modelo de programación orientada a objetos

El modelo de programación orientada a objetos no añade ningún concepto nuevo con respecto del modelo de programación con estado explícito.

Objeto

Se modela como un procedimiento con estado encapsulado

Clase

Un procedimiento que genera nuevas instancias de objetos

Herencia

Mecanismo por el cual se construyen clases a partir de clases existentes

Objetos activos

Objetos que se comunican por medio de puertos, añadiendo la concurrencia por paso de mensajes.

Información a...

Modelo de programación con estado

El estado se define como una secuencia de valores en el tiempo que contienen los resultados intermedios de un proceso de computación. En el modelo declarativo, el estado es implícito, mientras que este modelo con estado lo muestra explícito.

El principio de abstracción dicta que un sistema es igual a la suma de su especificación y su implementación.

Para soportar el principio de abstracción se requieren cuatro conceptos fundamentales:

  • Encapsulación: Debe ser posible ocultar lo inte...

Modelo concurrente declarativo

El modelo concurrente declarativo extiene del modelo declarativo al añadirle ejecución concurrente. Esto quiere decir que las técnicas usadas para el modelo declarativo también son aplicabables a este modelo, y más importante aún: estos programan son deterministas, porque el no determinismo con el que cuentan es No observable, lo que quiere decir que aunque al interior de un programa no se tenga el control de que se ejecuta en que orden, el resultado siempre será el mismo.

Hilos

Para la...

Modelo de programación declarativa

Variables declarativas

Una variable de única asignación que puede estar o no estar ligada. Una vez se define su valor, ese valor debe permanecer hasta que la computación termine.

Una variable puede ser una estructura de datos compleja y contener otras variables declarativas dentro de ella. Si alguna de estas variables está sin ligar, la estructura de datos tendrá un valor parcial hasta que todas sus variables internas estén ligadas. Esta propiedad toma mucha importancia en la programaci...