stringtranslate.com

Janus (lenguaje de programación con restricciones concurrentes)

Janus es un lenguaje de programación informática parcialmente descrito por K. Kahn y Vijay A. Saraswat en el artículo "Actores como un caso especial de programación lógica de restricciones concurrentes" en 1990. [1] Es un lenguaje de restricciones concurrentes sin retroceso.

Janus modela la concurrencia mediante el uso de canales de bolsa . El código que necesita enviar un mensaje a un proceso lo hace restringiendo una bolsa para que sea la unión de otra bolsa y la bolsa singleton del mensaje. La otra bolsa queda entonces disponible para ser restringida para enviar mensajes posteriores.

El proceso recibe el mensaje haciendo coincidir la bolsa con un patrón que dice que es la unión de algún singleton y alguna otra bolsa. La lógica de los canales de la bolsa produce una propiedad compartida por el modelo de actor , a saber, que el orden de llegada de los mensajes no está garantizado. Sin embargo, a diferencia de los actores en el modelo de actor, los procesos en Janus pueden pasar sus "buzones" por así decirlo, en forma de bolsas, y pueden contener más de uno. Esta capacidad de pasar buzones y contener más de uno se hereda en el lenguaje de programación de computadoras ToonTalk , que está influenciado por Janus.

Janus, el lenguaje de programación, recibe su nombre de Jano , el dios romano de dos caras, porque cada variable lógica en Janus tiene como sus dos "caras", dos aspectos que pueden pasarse como argumentos. Estos se llaman el que pregunta y el que dice . Estos representan, respectivamente, el derecho a preguntar el valor de la variable (o alguna característica del valor) y el derecho a decir el valor (o decir alguna restricción sobre lo que puede ser el valor). Los aspectos del que pregunta y del que dice pueden pasarse como argumentos independientemente uno del otro. Ningún derecho implica el otro derecho. La sintaxis del lenguaje impide copiar un que dice o ejercerlo más de una vez. La contradicción lógica se previene estáticamente, según Kahn y Saraswat.

Referencias

  1. ^ Kahn, K.; Saraswat, Vijay A. (1 de octubre de 1990). "Actores como un caso especial de programación con restricciones (lógica) concurrente". Avisos de ACM SIGPLAN . 25 (10): 57–66. doi :10.1145/97946.97955 . Consultado el 29 de octubre de 2019 .