Janus es un lenguaje de programación de computadoras parcialmente descrito por K. Kahn y Vijay A. Saraswat en el artículo "Los actores como un caso especial de programación de restricción concurrente (lógica)" en 1990. [1] Es un lenguaje de restricción concurrente sin retroceso.
Paradigma | lógica de restricción concurrente |
---|---|
Diseñada por | Ken Kahn y Vijay A. Saraswat |
Apareció por primera vez | 1990 |
Implementaciones importantes | |
(ninguno disponible) |
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 está entonces disponible para limitarse a enviar mensajes posteriores.
El proceso recibe el mensaje haciendo coincidir el bolso con un patrón que dice que es la unión de un singleton y otro bolso. 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 por sus "buzones de correo", por así decirlo, en forma de bolsas, y pueden contener más de uno. Esta capacidad de pasar buzones de correo y guardar 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, lleva el nombre de Janus , 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 cuál puede ser el valor). Los aspectos de preguntador y narrador se pueden transmitir como argumentos de forma independiente entre sí. Ningún derecho implica el otro derecho. La sintaxis del lenguaje impide copiar a un cajero o ejercitarlo más de una vez. La contradicción lógica se evita estáticamente, según Kahn y Saraswat.
Referencias
- ^ Kahn, K .; Saraswat, Vijay A. (1 de octubre de 1990). "Actores como un caso especial de programación de restricción concurrente (lógica)" . Avisos ACM SIGPLAN . 25 (10): 57–66. doi : 10.1145 / 97946.97955 . Consultado el 29 de octubre de 2019 .
- VA Saraswat, KM Kahn, J Levy (1990). "Janus: Un paso hacia la programación de restricciones distribuidas". NACLP.
- VA Saraswat, M Rinard, P Panangaden (1991). "Los fundamentos semánticos de la programación de restricciones concurrentes". POPL.
- David Gudeman, Koenraad De Bosschere, Saumya K. Debray (1992). "jc: una implementación secuencial eficiente y portátil de Janus". Proc. Conferencia y Simposio Internacional Conjunto sobre Programación Lógica.