Open modules: Modular reasoning about advice

124Citations
Citations of this article
44Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Advice is a mechanism used by advanced object-oriented and aspect-oriented programming languages to augment the behavior of methods in a program. Advice can help to make programs more modular by separating crosscutting concerns more effectively, but it also challenges existing ideas about modularity and separate development. We study this challenge using a new, simple formal model for advice as it appears in languages like Aspect J. We then add a module system designed to leave program functionality as open to extension through advice as possible, while still enabling separate reasoning about the code within a module. Our system, Open Modules, can either be used directly to facilitate separate, component-based development, or can be viewed as a model of the features that certain AOP IDEs provide. We define a formal system for reasoning about the observational equivalence of programs under advice, which can be used to show that clients are unaffected by semantics-preserving changes to a module's implementation. Our model yields insights into the nature of modularity in the presence of advice, provides a mechanism for enforceable contracts between component providers and clients in this setting, and suggests improvements to current AOP IDEs. © Springer-Verlag Berlin Heidelberg 2005.

Cite

CITATION STYLE

APA

Aldrich, J. (2005). Open modules: Modular reasoning about advice. In Lecture Notes in Computer Science (Vol. 3586, pp. 144–168). Springer Verlag. https://doi.org/10.1007/11531142_7

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free