Accueil > Manifestations > Thèses et HDR > Thèses > Ismael Figueroa

Ismael Figueroa

Directeur de thèse

Mario Südholt
Eric Tanter
Nicolas Tabareau

Résumé

La programmation orientée aspect (AOP) vise à améliorer la modularité
et la réutilisation des logiciels systèmes en proposant un mécanisme
d’abstraction pour faire face aux préoccupations
transversales. Cependant, dans la plupart des langues d’usage général
aspect, aspects ont un pouvoir presque illimité, éventuellement en
conflit avec ces objectifs. Dans ce travail, nous présentons
EffectiveAspects : une nouvelle approche pour incorporer le
pointcut/advice modèle de l’AOP dans un langage de programmation
fonctionnel statiquement typé comme Haskell. Notre travail comprend
deux contributions principales.

Premièrement, nous définissons un plongement monadique du modèle
pointcut/advice plein de l’AOP . Type de solidité est garantie par
l’exploitation du système de type sous-jacent , en particulier les
types de fantômes et une nouvelle classe de type pour faire
l’anti-unification des types. Dans ce modèle aspects sont de première
classe , peut être déployé de façon dynamique , et la langue de
pointcuts est extensible , combinant donc la flexibilité des langues
aspect typé dynamiquement avec les garanties d’ un système de type
statique . Monades nous permettent de raisonner directement sur les
effets de calcul à la fois dans les aspects et les programmes de base
en utilisant des techniques traditionnelles monadiques. Cela nous-ment
, nous étendons la notion de Aldrich de modules ouverts avec des
effets, et aussi avec les interfaces de pointcut protégés à
l’extérieur de advice. Ces restrictions sont appliquées statiquement
par le système de type . Aussi, nous adaptons les techniques de
EffectiveAdvice à raisonner sur et appliquer flux de contrôle
propriétés. En outre, nous montrons comment contrôler l’interférence
de l’effet en utilisant l’approche fondée sur paramétricité de
EffectiveAdvice . Nous montrons que cette approche ne répond pas à la
présence de multiples aspects et proposons une approche différente en
utilisant des monad views, une nouvelle technique pour le traitement
de la pile de monade , développé par Schrijvers et Oliveira . Ensuite,
nous exploitons les propriétés de notre modèle pour permettre la
construction modulaire de la nouvelle sémantique pour l’aspect
exploratoire et le tissage.

Notre deuxième contribution s’appuie sur un modèle puissant pour
raisonner sur la composition à base de composants mixin-effectful et
leur ingérence, fondée sur un raisonnement équationnelle,
paramétricité, et les lois algébriques sur les effets
monadiques. Notre contribution est de montrer comment raisonner
d’ingérence dans la présence de quantification sans restriction par
pointcuts. Nous montrons que le raisonnement global peut être de
composition, ce qui est essentiel pour l’évolutivité de l’approche
face aux grands systèmes et évolution. Nous prouvons un théorème
général d’équivalence qui est basé sur un certain nombre de conditions
qui peuvent être établies, réutilisés et adaptés séparément que le
système évolue. Le théorème est défini pour un modèle abstrait AOP
monadique, nous illustrons son utilisation avec une version simple du
modèle vient d’être décrit.

Ce travail apporte un raisonnement basé sur les effets de type pour la
première fois dans le modèle pointcut/advice, dans un cadre qui est à
la fois expressif et extensible. Le cadre est bien adapté pour le
développement de systèmes orientés aspect robustes tout en étant un
outil de recherche pour l’expérimentation et le raisonnement sur les
nouvelles sémantique aspect.

mots-clés : programmation orientée aspect, monades, raisonnement modulaire, raisonnement compositionnel

Composition du jury :

  • Johan FABRY, Maître-Assistant, Universidad de Chile, Rapporteur
  • Erik ERNST, Professeur, Aarhus University, Rapporteur
  • Bruno OLIVEIRA, Maître-Assistant, University of Hong Kong, Examinateur
  • Mario SUDHOLT, Professeur, Ecole des Mines de Nantes, Directeur de thèse
  • Éric TANTER, Professeur, Universidad de Chile, Co-directeur de thèse
  • M. Nicolas TABAREAU, Chargé de Recherche, Ecole des Mines de Nantes, Co-encadrant

Abstract :

Aspect-oriented programming (AOP) aims to enhance modularity and
reusability in software sys- tems by offering an abstraction mechanism
to deal with crosscutting concerns. However, in most general-purpose
aspect languages aspects have almost unrestricted power, eventually
conflicting with these goals. In this work we present
EffectiveAspects : a novel approach to embed the pointcut/advice model
of AOP in a statically-typed functional programming language like
Haskell. Our work comprises two main contributions.

First, we define a monadic embedding of the full pointcut/advice model
of AOP. Type soundness is guaranteed by exploiting the underlying type
system, in particular phantom types and a new anti-unification type
class. In this model aspects are first-class, can be deployed
dynamically, and the pointcut language is extensible, therefore
combining the flexibility of dynamically-typed aspect languages with
the guarantees of a static type system. Monads enable us to directly
reason about computational effects both in aspects and base programs
using traditional monadic techniques. Us- ing this we extend Aldrich’s
notion of Open Modules with effects, and also with protected pointcut
interfaces to external advising. These restrictions are enforced
statically using the type system. Also, we adapt the techniques of
EffectiveAdvice to reason about and enforce control flow proper-
ties. Moreover, we show how to control effect interference using the
parametricity-based approach of EffectiveAdvice. We show that this
approach falls short in the presence of multiple aspects and propose a
different approach using monad views, a novel technique for handling
the monad stack, developed by Schrijvers and Oliveira. Then, we
exploit the properties of our model to enable the modular construction
of new semantics for aspect scoping and weaving.

Our second contribution builds upon a powerful model to reason about
mixin-based composition of effectful components and their
interference, based on equational reasoning, parametricity, and
algebraic laws about monadic effects. Our contribution is to show how
to reason about interference in the presence of unrestricted
quantification through pointcuts. We show that global reasoning can be
compositional, which is key for the scalability of the approach in the
face of large and evolving systems. We prove a general equivalence
theorem that is based on a few conditions that can be established,
reused, and adapted separately as the system evolves. The theorem is
defined for an abstract monadic AOP model ; we illustrate its use with
a simple version of the model just described.

This work brings type-based reasoning about effects for the first time
in the pointcut/advice model, in a framework that is both expressive
and extensible. The framework is well-suited for development of robust
aspect-oriented systems as well as being a research tool for
experimenting and reasoning about new aspect semantics.

mots-clés : aspect-oriented programming, monads, modular reasoning, compositional reasoning

Dernière modification : mardi 15 avril 2014