
handle: 20.500.14352/20801
El avance de los ordenadores en las últimas décadas ha brindado la oportunidad a los desarrolladores de programas de aprovechar las ventajas de los procesadores modernos que permiten la ejecución simultánea de varios hilos de ejecución al mismo tiempo. Es por este motivo por el que cada vez es más común el desarrollo de programas concurrentes en todos los ámbitos, desde el software científico hasta las aplicaciones móviles. No obstante, el desarrollo de programas concurrentes conlleva riesgos adicionales como deadlocks o condiciones de carrera no presentes en los programas secuenciales. Es por ello necesario el uso de técnicas de validación como el testing para poder comprobar el comportamiento de los programas y verificar que cumplen con los requisitos adecuados. Sin embargo, las técnicas de testing habituales no son efectivas debido al indeterminismo en la ejecución de los procesos y una exploración exhaustiva de todos los posibles entrelazamientos suele ser intratable por su coste exponencial. No obstante, en los sistemas basados en actores, debido a la ausencia de memoria compartida y la ejecución sin interrupciones de los procesos, el número de puntos en los que hace falta considerar el indeterminismo de estos programas es mucho menor. Una de las mejores técnicas para mitigar la explosión de estados es el algoritmo POR (Partial Order Reduction), que permite agrupar en clases de equivalencia derivaciones redundantes, y sobre el que, hoy en día, se sigue investigando. Sobre estas líneas en este trabajo nos centraremos en el uso de SYCO para el testing de programas concurrentes. SYCO es una herramienta para ABS, un lenguaje de modelado para programas concurrentes basado en el modelo de actores, que permite obtener los posibles estados finales de un programa concurrente usando el estado del arte del algoritmo DPOR (Dynamic Partial Order Reduction). No obstante, el problema que presenta ABS es que, como todo lenguaje de modelado, la implementación real de un programa dista mucho de la implementación que se pueda hacer en este lenguaje. Además, el modelo de concurrencia basado en actores, pese a estar cobrando cada vez más importancia, no es el modelo de los lenguajes más populares como son Java y C/C++. La idea de este trabajo consiste en facilitar el uso de las herramientas de testing implementadas para ABS con los programas escritos en C. Para ello desarrollaremos un lenguaje con una sintaxis similar a C, llamado CABS, que permitirá la ejecución concurrente de hilos, usando para ello una concurrencia de grano fino.
Informática, SYCO, Actor model concurrency, Informática (Informática), Testing de programas, JLEX, Programming languages, ABS, Concurrent programming, Software testing, Semánticas, Semantics, Programas concurrentes, CUP, Lenguaje de programación, 004 (043.3), 1203.17 Informática, Interleavings, Modelo de concurrencia basado en actores
Informática, SYCO, Actor model concurrency, Informática (Informática), Testing de programas, JLEX, Programming languages, ABS, Concurrent programming, Software testing, Semánticas, Semantics, Programas concurrentes, CUP, Lenguaje de programación, 004 (043.3), 1203.17 Informática, Interleavings, Modelo de concurrencia basado en actores
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
