Sistema de efectos
En informática, un sistema de efectos es un sistema formal que describe los efectos computacionales del software, como los efectos secundarios. Un sistema de efectos se puede utilizar para proporcionar una comprobación en tiempo de compilación de los posibles efectos del programa.
El sistema de efectos se extiende la noción de tipo a la de "efecto" del componente, que comprende un tipo de efecto y una región. El tipo de efecto describe que se está haciendo, y la región describe con que se está haciendo.
Un sistema de efectos es típicamente una extensión de un tipo de sistema. A menudo, un tipo de valor se denota junto con su efecto como: tipo ! efecto.
Un sistema de efectos puede ser usado para demostrar la pureza externa de ciertas definiciones internamente impuras: por ejemplo, si una función internamente asigna y modifica una región de memoria, pero el tipo de la función no menciona la región, entonces ese efecto puede ser borrado del efecto de dicha función.
Algunos ejemplos de las conductas que pueden ser descritos por sistemas de efectos incluyen:
- La lectura, la escritura o la asignación de memoria.
- Trabajar con recursos, como archivos.
- Transferencias de control con continuaciones y saltos largos.
- Excepciones verificadas de Java.
Referencias
- Capítulos de Libros
- Hankin, Chris; Nielson, Flemming; Nielson, Hanne Riis (1999). Principles of Program Analysis. Berlin: Springer. ISBN 3-540-65410-0.
- Gifford, David; Turbak, Franklyn A.; Sheldon, Mark A. (2008). «16». Design Concepts in Programming Languages. Cambridge, Mass: MIT Press. ISBN 0-262-20175-5.
- Publicaciones
- Nielson, Flemming; Nielson, Hanne Riis (1999). «Type and Effect Systems». Correct System Design: Recent Insight and Advances. Lecture Notes in Computer Science (Springer-Verlag) 1710: 114–136. ISBN 3-540-66624-9.
Enlaces externos
- Marino, Daniel; Millstein, Todd (2008). «A Generic Type and Effect System». Proceedings of the 4th international workshop on Types In Language Design And Implementation (ACM): 39. doi:10.1145/1481861.1481868.
- Lucassen, John M.; Gifford, David K. (1988). «Polymorphic Effect Systems». Proceedings of the 15th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (ACM): 47-57. doi:10.1145/73560.73564.
- Flemming Nielson & Hanne Riis Nielson, Type and Effect Systems. Department of Computer Science, Aarhus University, Denmark. Enlace al documento
Datos: Q2497866