El cálculo de sistemas comunicantes ( CCS ) es un cálculo de procesos introducido por Robin Milner alrededor de 1980 y que da título a un libro que lo describe. Sus acciones modelan comunicaciones indivisibles entre exactamente dos participantes. El lenguaje formal incluye primitivas para describir la composición paralela, la suma entre acciones y la restricción de alcance. El CCS es útil para evaluar la corrección cualitativa de propiedades de un sistema, como el interbloqueo o el bloqueo mutuo . [ 1 ]
Según Milner, «No hay nada canónico en la elección de los combinadores básicos, aunque se eligieron con gran atención a la economía. Lo que caracteriza nuestro cálculo no es la elección exacta de los combinadores, sino más bien la elección de la interpretación y del marco matemático».
Las expresiones del lenguaje se interpretan como un sistema de transición etiquetado . Entre estos modelos, la bisimilitud se utiliza como una equivalencia semántica.
Sintaxis
Dado un conjunto de nombres de acciones, el conjunto de procesos CCS se define mediante la siguiente gramática BNF :
- árbitro
Las partes de la sintaxis son, en el orden dado anteriormente
- proceso inactivo
- el proceso inactivoes un proceso CCS válido
- acción
- el procesopuede realizar una accióny continuar como el proceso
- identificador de proceso
- definiry luego usar el identificadorpara referirse al proceso(que puede contener el identificador)en sí mismo, es decir, se permiten definiciones recursivas)
- suma
- el procesopuede proceder de cualquiera de las dos maneras.o el proceso
- composición paralela
- dice que los procesosycoexistir simultáneamente
- cambio de nombre
- es el procesocon todas las acciones nombradasrenombrado como
- restricción
- es el procesosin acción
Cálculos, modelos y lenguajes relacionados
- El lenguaje de comunicación de procesos secuenciales (CSP, por sus siglas en inglés), desarrollado por Tony Hoare , es un lenguaje formal que surgió casi al mismo tiempo que el CCS (Comunicación de Sistemas Comunicativos).
- El Álgebra de Procesos Comunicativos (ACP, por sus siglas en inglés) fue desarrollada por Jan Bergstra y Jan Willem Klop en 1982, y utiliza un enfoque axiomático (al estilo del álgebra universal ) para razonar sobre una clase de procesos similar a la de CCS.
- El cálculo pi , desarrollado por Robin Milner , Joachim Parrow y David Walker a finales de los años 80, amplía la CCS con movilidad de enlaces de comunicación, al permitir que los procesos comuniquen los nombres de los propios canales de comunicación.
- PEPA , desarrollado por Jane Hillston , introduce la sincronización de actividades en términos de tasas distribuidas exponencialmente y elección probabilística, lo que permite evaluar las métricas de rendimiento.
- Los sistemas concurrentes comunicantes reversibles (RCCS, por sus siglas en inglés), introducidos por Vincent Danos , Jean Krivine y otros, introducen la reversibilidad (parcial) en la ejecución de los procesos CCS.
Otros idiomas basados en CCS:
- Cálculo de sistemas de radiodifusión
- Lenguaje de especificación de ordenación temporal (LOTOS)
- El cálculo de procesos para modelos ecológicos espacialmente explícitos (PALPS) es una extensión de CCS con elección probabilística, ubicaciones y atributos para ubicaciones [ 2 ].
- Motor intérprete del lenguaje de orquestación de Java (Jolie) [ 3 ]
Modelos que se han utilizado en el estudio de sistemas similares a CCS:
Referencias
- Robin Milner: Un cálculo de sistemas de comunicación , Springer Verlag, ISBN 0-387-10235-31980.
- Robin Milner, Comunicación y concurrencia , Prentice Hall, Serie internacional en ciencias de la computación, ISBN 0-13-115007-31989
- ↑ Herzog, Ulrich, ed. (mayo de 2007). «Abordando grandes espacios de estados en el modelado del rendimiento» . Métodos formales para la evaluación del rendimiento . Lecture Notes in Computer Science. Vol. 4486. Springer. pp. 318–370 . doi : 10.1007/978-3-540-72522-0 . ISBN 978-3-540-72482-7Archivado del original el 12 de abril de 2008. Consultado el 21 de abril de 2009 .
- ↑ A Philippou, M Toro, M Antonaki. Simulación y verificación en un cálculo de procesos para modelos ecológicos espacialmente explícitos. Scientific Annals of Computer Science 23 (1). 2014
- ↑ Montesi, Fabrizio; Guidi, Claudio; Lucchi, Roberto; Zavattaro, Gianluigi (27-06-2007). "JOLIE: un motor intérprete de lenguaje de orquestación Java" . Electronic Notes in Theoretical Computer Science . Actas combinadas del Segundo Taller Internacional sobre Coordinación y Organización (CoOrg 2006) y del Segundo Taller Internacional sobre Métodos y Herramientas para la Coordinación de Sistemas Concurrentes, Distribuidos y Móviles (MTCoord 2006). 181 : 19–33 . doi : 10.1016/j.entcs.2007.01.051 . ISSN 1571-0661 .
- 1980 en informática
- Cálculos de proceso