OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular reasoning in the presence of subclassing
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Implicit parameters: dynamic scoping with static types
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A denotational semantics of inheritance
A denotational semantics of inheritance
Composition, reuse and interaction analysis of stateful aspects
Proceedings of the 3rd international conference on Aspect-oriented software development
A classification system and analysis for aspect-oriented programs
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Aspect-oriented programming and modular reasoning
Proceedings of the 27th international conference on Software engineering
Aspectual Caml: an aspect-oriented functional language
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A disciplined approach to aspect composition
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Semantic reasoning about feature composition via multiple aspect-weavings
Proceedings of the 5th international conference on Generative programming and component engineering
Practical type inference for arbitrary-rank types
Journal of Functional Programming
Semantics and scoping of aspects in higher-order languages
Science of Computer Programming - Special issue: Foundations of aspect-oriented programming
A type-theoretic interpretation of pointcuts and advice
Science of Computer Programming - Special issue: Foundations of aspect-oriented programming
On the relation of aspects and monads
Proceedings of the 6th workshop on Foundations of aspect-oriented languages
AspectML: A polymorphic aspect-oriented functional programming language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Expressive scoping of dynamically-deployed aspects
Proceedings of the 7th international conference on Aspect-oriented software development
A Compilation Model for Aspect-Oriented Polymorphically Typed Functional Languages
SAS '07 Proceedings of the 14th international Symposium on Static Analysis
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Requirements for reusable aspect deployment
SC'07 Proceedings of the 6th international conference on Software composition
Open modules: modular reasoning about advice
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
MAO: ownership and effects for more effective reasoning about aspects
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Composition of dynamic analysis aspects
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Aspect assumptions: a retrospective study of AspectJ developers' assumptions about aspect usage
Proceedings of the tenth international conference on Aspect-oriented software development
Proceedings of the tenth international conference on Aspect-oriented software development
Applying translucid contracts for modular reasoning about aspect and object oriented events
Proceedings of the 10th international workshop on Foundations of aspect-oriented languages
WFLP'11 Proceedings of the 20th international conference on Functional and constraint logic programming
Monads, zippers and views: virtualizing the monad stack
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Science of Computer Programming
Proceedings of the eleventh workshop on Foundations of Aspect-Oriented Languages
A practical monadic aspect weaver
Proceedings of the eleventh workshop on Foundations of Aspect-Oriented Languages
A monadic interpretation of execution levels and exceptions for AOP
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
Membranes for AOP: from vision to practice
Proceedings of the 11th annual international conference on Aspect-oriented Software Development Companion
Side-effect localization for lazy, purely functional languages via aspects
Higher-Order and Symbolic Computation
Chaperones and impersonators: run-time support for reasonable interposition
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Secure and modular access control with aspects
Proceedings of the 12th annual international conference on Aspect-oriented software development
A typed monadic embedding of aspects
Proceedings of the 12th annual international conference on Aspect-oriented software development
Taming aspects with monads and membranes
Proceedings of the 12th workshop on Foundations of aspect-oriented languages
Towards control of aspect interference using membranes and monads
Proceedings of the 12th annual international conference companion on Aspect-oriented software development
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
EsseOS: Haskell-based tailored services for the cloud
Proceedings of the 12th International Workshop on Adaptive and Reflective Middleware
Hi-index | 0.00 |
Advice is a mechanism, widely used in aspect-oriented languages, that allows one program component to augment or modify the behavior of other components. When advice and other components are composed together they become tightly coupled, sharing both control and data flows. However this creates important problems: modular reasoning about a component becomes very difficult; and two tightly coupled components may interfere with each other's control and data flows. This paper presents EffectiveAdvice, a disciplined model of advice, inspired by Aldrich's Open Modules, that has full support for effects. With EffectiveAdvice, equivalence of advice, as well as base components, can be checked by equational reasoning. The paper describes EffectiveAdvice as a Haskell library in which advice is modeled by mixin inheritance and effects are modeled by monads. Interference patterns previously identified in the literature are expressed as combinators. Parametricity, together with the combinators, is used to prove two harmless advice theorems. The result is an effective semantic model of advice that supports effects, and allows these effects to be separated with strong non-interference guarantees, or merged as needed.