Articulo de referencia

Cálculo de sistemas comunicantes

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 mod...

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 :

PAG::=0|a.PAG1|{\displaystyle P::=0\,\,\,|\,\,\,a.P_{1}\,\,\,|\,\,\,}árbitroA|PAG1+PAG2|PAG1|PAG2|PAG1[b/a]|PAG1a{\displaystyle A\,\,\,|\,\,\,P_{1}+P_{2}\,\,\,|\,\,\,P_{1}|P_{2}\,\,\,|\,\,\,P_{1}[b/a]\,\,\,|\,\,\,P_{1}{\barra invertida }a\,\,\,}

Las partes de la sintaxis son, en el orden dado anteriormente

proceso inactivo
el proceso inactivo0{\displaystyle 0}es un proceso CCS válido
acción
el procesoa.PAG1{\displaystyle a.P_{1}}puede realizar una accióna{\displaystyle a}y continuar como el procesoPAG1{\displaystyle P_{1}}
identificador de proceso
definirA=dmiFPAG1{\displaystyle A{\overset {\underset {\mathrm {def} }{}}{=}}P_{1}}y luego usar el identificadorA{\displaystyle A}para referirse al procesoPAG1{\displaystyle P_{1}}(que puede contener el identificador)A{\displaystyle A}en sí mismo, es decir, se permiten definiciones recursivas)
suma
el procesoPAG1+PAG2{\displaystyle P_{1}+P_{2}}puede proceder de cualquiera de las dos maneras.PAG1{\displaystyle P_{1}}o el procesoPAG2{\displaystyle P_{2}}
composición paralela
PAG1|PAG2{\displaystyle P_{1}|P_{2}}dice que los procesosPAG1{\displaystyle P_{1}}yPAG2{\displaystyle P_{2}}coexistir simultáneamente
cambio de nombre
PAG1[b/a]{\displaystyle P_{1}[b/a]}es el procesoPAG1{\displaystyle P_{1}}con todas las acciones nombradasa{\displaystyle a}renombrado comob{\displaystyle b}
restricción
PAG1a{\displaystyle P_{1}{\backslash }a}es el procesoPAG1{\displaystyle P_{1}}sin accióna{\displaystyle a}
  • 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:

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
  1. 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 .
  2. 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
  3. 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 .