
Programación con indeterminismo: un enfoque basado en reescritura
Juan Rodríguez Hortalá
Programación con indeterminismo: un enfoque basado en reescritura
Juan Rodríguez Hortalá
Book Details:
Year: | 2010 |
Publisher: | Universidad Complutense de Madrid |
Pages: | 478 pages |
Language: | spanish |
Since: | 12/09/2014 |
Size: | 5.56 MB |
License: | Pending review |
Content:
En el ámbito de los lenguajes de programación es habitual considerar que un lenguaje es determinista cuando la evaluación de una expresión dada siempre calcula los mismos valores para la misma configuración de sus valores de entrada. Así la mayoría de los lenguajes imperativos (Pascal, C/C++, Java, C#, ...) son considerados deterministas. Sin embargo es muy sencillo diseñar un programa en cualquiera de aquellos lenguajes para el que ya no se cumpla dicha condición. Por un lado podemos generar números aleatorios o simplemente obtener la hora actual del reloj del sistema y presentar cualquiera de ellos como la salida de un programa sin argumentos de entrada, obteniendo por tanto resultados diferentes para distintas ejecuciones del programa. De esta forma el determinismo se pierde durante la interacción con el sistema operativo, o “el mundo exterior”, que no es modelado explícitamente en los programas. Por otra parte también podemos escribir un programa concurrente para el que el orden en el que cada proceso concurrente termina su tarea correspondiente no pueda ser predicho, y además definir la salida del programa de forma que esta sea dependiente del orden de finalización de dichos procesos.
En este trabajo hemos intentado hacer algunas contribuciones al campo de la programación lógico-funcional indeterminista. Nuestros objetivos son diversos, a menudo al nivel de las descripciones semánticas, donde tratamos de aportar construcciones y resultados que esperamos puedan ser de utilidad para profundizar en la comprensión del significado de los programas, o como herramientas para la manipulación, análisis y transformación de programas. También nos hemos ocupado de aspectos más prácticos, y algunos prototipos han sido desarrollados a consecuencia de ello. Unas veces trabajamos en un marco consolidado —concretamente call-time choice o run-time choice— mientras que otras hemos decidido explorar las capacidades expresivas de las funciones indeterministas proponiendo nuevos marcos semánticos, algunos de ellos surgiendo de la combinación de semánticas ya existentes, otros presentando propuestas semánticas más novedosas.
Categories:
Tags:
Loading comments...
Scanning lists...
The book in numbers
Views
Downloads
Interest
Countries segmentation
Source Referers
Websites segmentation
evolution
Loading...