Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
research:software:haskellaop [2012/09/26 15:13] – ifiguero | research:software:haskellaop [2013/02/04 14:41] – [Aspect-Oriented Programming in Haskell] ifiguero | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== A Typed Monadic Embedding of Aspects ====== | + | ====== Aspect-Oriented Programming in Haskell ====== |
+ | This is the main page for our research on aspect-oriented programming (AOP) in Haskell. We have developed the Haskell AOP library that provides the full pointcut/ | ||
+ | |||
+ | |||
+ | ====== A Typed Monadic Embedding of Aspects | ||
We developed a novel approach to embed pointcut/ | We developed a novel approach to embed pointcut/ | ||
====== Source Code ====== | ====== Source Code ====== | ||
- | The source can be downloaded {{: | ||
- | The code depends on the following packages: random, mtl, HUnit, QuickCheck, containers, haskell-src-meta, template-haskell, | + | ===== Original code from AOSD 2013 ===== |
+ | The original source of the AOSD 2013 paper can be downloaded {{: | ||
+ | |||
+ | ===== Taming Aspects with Monads and Membranes (FOAL 2013) ===== | ||
+ | The source of our FOAL 2013 submission can be downloaded {{: | ||
+ | |||
+ | ====== About the Code ====== | ||
+ | |||
+ | We tested the software in the [[http:// | ||
+ | |||
+ | The code depends on the following packages: | ||
+ | * random | ||
+ | * mtl | ||
+ | * HUnit | ||
+ | * QuickCheck | ||
+ | * containers | ||
+ | * haskell-src-meta | ||
+ | * template-haskell | ||
+ | * polytypeable | ||
+ | * ghc-prim | ||
+ | * fgl (functional graph library, for the membrane semantics) | ||
+ | |||
+ | Which can be installed using the [[http:// | ||
We include the paper examples, and tests used during development. The main difference between the code in the paper and the source code are: | We include the paper examples, and tests used during development. The main difference between the code in the paper and the source code are: | ||
- | * deployment/undeploy: we define the AOPMonad class with the deploy/ | + | * deployment/undeployment: we define the AOPMonad class with the deploy/ |
* In file Function.hs we define tagged functions to provide a more robust notion of function equality. Join points, open function application, | * In file Function.hs we define tagged functions to provide a more robust notion of function equality. Join points, open function application, |