Verificación de programas no determinísticos

Thumbnail Image
Date
2022-12
Authors
Rosenfeld, Ricardo Fabián
Journal Title
Journal ISSN
Volume Title
Publisher
Universidad Abierta Interamericana. Facultad de Tecnología Informática
Abstract
Continuando con nuestra serie de artículos introductorios sobre la verificación axiomática de programas, en este segundo trabajo nos enfocamos en el paradigma secuencial no determinístico, siempre en el marco de los programas imperativos de entrada/salida. Como el no determinismo se manifiesta en la concurrencia, el artículo sirve también como introducción a la verificación de programas concurrentes, en los que más se justifica por su complejidad un tratamiento formal de las pruebas de correctitud. Trabajamos con un clásico lenguaje de programación, con selección condicional y repetición no determinísticas, al que luego se incorporan asignaciones aleatorias. Para las pruebas de los programas planteamos una adaptación del método axiomático de verificación descripto en la publicación previa, limitado a la programación secuencial determinística. Presentamos ejemplos de aplicación del método e incluimos un desarrollo sistemático de programa, volviendo a destacar el approach de utilizar los axiomas y reglas para programar al mismo tiempo que verificar, con el objeto de obtener programas correctos por construcción. Finalmente introducimos el concepto de fairness, cuyo efecto es reducir el grado de no determinismo de un programa en base a determinados criterios de equidad en el entorno de ejecución, y describimos un par de adaptaciones en las reglas de prueba para contemplar este aspecto.
Description
Keywords
programas, no determinismo, verificación axiomática
Citation
Rosenfeld, R. (2022). Verificación de programas no determinísticos. En: Revista Abierta de Informática Aplicada (RAIA) 6(2):54-79