En ciencias de la computación , se dice que un cálculo diverge si no termina o termina en un estado excepcional . [ 1 ] : 377 De lo contrario, se dice que converge . En dominios donde se espera que los cálculos sean infinitos, como los cálculos de procesos , se dice que un cálculo diverge si no es productivo (es decir, no continúa produciendo una acción dentro de un tiempo finito).
Definiciones
Diversas subdisciplinas de la informática utilizan definiciones variadas, pero matemáticamente precisas, de lo que significa que un cálculo converja o diverja.
Reescritura
En la reescritura abstracta , un sistema de reescritura abstracta se denomina convergente si es confluente y terminante . [ 2 ]
La notación t ↓ n significa que t se reduce a la forma normal n en cero o más reducciones , t ↓ significa que t se reduce a alguna forma normal en cero o más reducciones, y t ↑ significa que t no se reduce a una forma normal; esto último es imposible en un sistema de reescritura terminante.
En el cálculo lambda, una expresión es divergente si no tiene forma normal . [ 3 ]
semántica denotacional
En la semántica denotacional, una función de objeto f : A → B puede modelarse como una función matemática.donde ⊥ ( abajo ) indica que la función objeto o su argumento diverge.
teoría de la concurrencia
En el cálculo de procesos secuenciales comunicantes (CSP), la divergencia ocurre cuando un proceso realiza una serie interminable de acciones ocultas. [ 4 ] Por ejemplo, considérese el siguiente proceso, definido por la notación CSP: Las huellas de este proceso se definen como: Ahora bien, consideremos el siguiente proceso, que oculta el evento de tick del proceso Clock : Comono puede hacer otra cosa que realizar acciones ocultas para siempre, es equivalente al proceso que no hace más que divergir, denotadoUn modelo semántico de CSP es el modelo de fallos-divergencias, que refina el modelo de fallos estables al distinguir los procesos en función de los conjuntos de trazas tras los cuales pueden divergir.
Véase también
Notas
- ↑ CAR Hoare (octubre de 1969). "Una base axiomática para la programación de computadoras" (PDF) . Communications of the ACM . 12 (10): 576– 583. doi : 10.1145/363235.363259 . S2CID 207726175 .
- ↑ Baader y Nipkow 1998 , pág. 9.
- ↑ Pierce 2002 , pág. 65.
- ↑ Roscoe, AW (2010). Comprensión de los sistemas concurrentes . Textos en Ciencias de la Computación. doi : 10.1007/978-1-84882-258-0 . ISBN 978-1-84882-257-3.
Referencias
- Baader, Franz ; Nipkow, Tobias (1998). Term Rewriting and All That . Cambridge University Press. ISBN 9780521779203.
- Pierce, Benjamin C. (2002). Tipos y lenguajes de programación . MIT Press.
- JMR Martin y SA Jassim (1997). " Cómo diseñar redes libres de interbloqueos utilizando CSP y herramientas de verificación: una introducción tutorial " en Actas de WoTUG-20 .
- teoría de lenguajes de programación
- Proceso (informática)
- Sistemas de reescritura
- Cálculo lambda
- semántica denotacional
- esbozos de informática