stringtranslate.com

Cálculo de uniones

El cálculo de unión es un cálculo de procesos desarrollado en el INRIA . El cálculo de unión se desarrolló para proporcionar una base formal para el diseño de lenguajes de programación distribuidos y, por lo tanto, evita intencionalmente las construcciones de comunicaciones que se encuentran en otros cálculos de procesos, como las comunicaciones de encuentro , que son difíciles de implementar en un entorno distribuido. [1] A pesar de esta limitación, el cálculo de unión es tan expresivo como el cálculo π completo . Se han demostrado codificaciones del cálculo π en el cálculo de unión, y viceversa. [2]

El cálculo de unión es un miembro de la familia de cálculos π de cálculos de proceso y puede considerarse, en esencia, un cálculo π asincrónico con varias restricciones importantes: [3]

Sin embargo, como lenguaje de programación, el cálculo de unión ofrece al menos una ventaja sobre el cálculo π, a saber, el uso de patrones de unión multidireccionales y la capacidad de coincidir con mensajes de múltiples canales simultáneamente. [4]

Implementaciones

Lenguajes basados ​​en el cálculo de unión

El lenguaje de programación join-calculus es un nuevo lenguaje basado en el proceso join-calculus. Se implementa como un intérprete escrito en OCaml y admite programación distribuida con tipos estáticos, comunicación remota transparente, movilidad basada en agentes y cierta detección de fallos. [5]

Muchas implementaciones del cálculo de unión se realizaron como extensiones de lenguajes de programación existentes:

Incrustaciones en otros lenguajes de programación

Estas implementaciones no cambian el lenguaje de programación subyacente, pero introducen operaciones de cálculo de unión a través de una biblioteca personalizada o DSL:

Referencias

  1. ^ Cedric Fournet, Georges Gonthier (1995). "El CHAM reflexivo y el cálculo de uniones". {{cite journal}}: Requiere citar revista |journal=( ayuda ) , pág. 1
  2. ^ Cedric Fournet, Georges Gonthier (1995). "El CHAM reflexivo y el cálculo de uniones". {{cite journal}}: Requiere citar revista |journal=( ayuda ) , pág. 2
  3. ^ Cedric Fournet, Georges Gonthier (1995). "El CHAM reflexivo y el cálculo de uniones". {{cite journal}}: Requiere citar revista |journal=( ayuda ) , pág. 19
  4. ^ Petricek, Tomas. "TryJoinads (IV.) - Concurrencia mediante cálculo de uniones". tomasp.net . Consultado el 24 de enero de 2023 .
  5. ^ Cedric Fournet, Georges Gonthier (2000). "El cálculo de unión: un lenguaje para la programación móvil distribuida": 268–332. {{cite journal}}: Requiere citar revista |journal=( ayuda )
  6. ^ "JErlang: Erlang con uniones". Archivado desde el original el 8 de diciembre de 2017. Consultado el 18 de abril de 2015 .
  7. ^ Join Python, Cálculo de uniones para Python por Mattias Andree
  8. ^ Yigong Liu - Biblioteca de coordinación y concurrencia de mensajes asincrónicos de unión

Enlaces externos