Effective aspects: a typed monadic model to control and reason about aspect interference
Professor Advisor
dc.contributor.advisor
Tanter, Éric
Author
dc.contributor.author
Figueroa Palet, Ismael José
Staff editor
dc.contributor.editor
Facultad de Ciencias Físicas y Matemáticas
Staff editor
dc.contributor.editor
Departamento de Ciencias de la Computación
Staff editor
dc.contributor.editor
Doctor en Ciencias, Mención Computación
Associate professor
dc.contributor.other
Tabareau, Nicolás
Associate professor
dc.contributor.other
Fabry, Johan
Associate professor
dc.contributor.other
Sudholt, Mario
Associate professor
dc.contributor.other
Ernst, Erik
Associate professor
dc.contributor.other
Oliveira, Bruno
Admission date
dc.date.accessioned
2014-06-24T19:33:20Z
Available date
dc.date.available
2014-06-24T19:33:20Z
Publication date
dc.date.issued
2014
Identifier
dc.identifier.uri
https://repositorio.uchile.cl/handle/2250/116427
Abstract
dc.description.abstract
La Programación Orientada a Aspectos (AOP) apunta a mejorar la modularidad y reusabilidad en sistemas de software al ofrecer un mecanismo de abstracción para manejar crosscutting concerns. Sin embargo, en la mayoría de los lenguajes orientados a aspectos; los aspectos tienen poder casi sin restricciones, lo que eventualmente entra en conflicto con las metas anteriores. En este trabajo presentamos EffectiveAspects: un nuevo enfoque para incorporar el modelo AOP de pointcut/advice en un lenguaje funcional estáticamente tipeado como Haskell.
Como primera contribución, definimos una incorporación completa del modelo de pointcut/advice al lenguaje, usando mónadas. La coherencia de tipos se garantiza explotando el sistema de tipos subyacente, en particular phantom types y una nueva type class que implemente un algoritmo de anti-unificación. Los aspectos son de primera clase, pueden ser desplegados dinámicamente, y el lenguaje de pointcuts es extensible; por lo tanto combina la flexibilidad de lenguajes de aspectos dinámicamente tipeados con las garantías de un sistema de tipos estático. Las mónadas nos permiten razonar directamente sobre los efectos tanto en los aspectos como en los programas base mediante técnicas monádicas tradicionales. Con esto, extendemos la noción de Open Modules propuesta por Aldrich con efectos y con pointcuts protegidos, que son interfaces que restringen la aplicación externa de advice. Estas restricciones son enforzadas estáticamente usando el sistema de tipos. También, adaptamos las técnicas de EffectiveAdvice para razonar y enforzar propiedades del flujo de control; así como también adaptamos su enfoque basado en parametricidad para controlar la interferencia de efectos. Luego de mostrar que este último enfoque no es suficiente en presencia de múltiples aspectos, proponemos un nuevo enfoque basado en monad views, una nueva técnica para manejar mónadas, desarrollada por Schrijvers y Olivera.
Nuestra segunda contribución se basa en un poderoso modelo para razonar sobre la composición de componentes basados en mixins que incorporan efectos computacionales. Este modelo se basa en razonamiento ecuacional, parametricidad y leyes algebráicas de las mónadas. Nuestra contribución es mostrar cómo razonar sobre interferencia en la presencia de cuantificación sin restricción, a través de pointcuts. Mostramos que el razonamiento global puede ser composicional, lo que es clave para la escalabilidad de nuestro enfoque en el contexto de grandes sistemas que evolucionan.
Demostramos un teorema general de equivalencia que se basa en algunas condiciones que pueden ser establecidas, reutilizadas y adaptadas por separado a medida que el sistema evoluciona. El teorema está definido en términos de un modelo abstracto de AOP monádico.
Este trabajo desarrolla técnicas de razonamiento de efectos, basadas en tipos, para el modelo pointcut/advice, en un modelo que es expresivo y extensible; y que permite el desarrollo de aplicaciones orientadas a aspecto robustas y la experimentación con nuevas semánticas de AOP.