|
ABSTRACT
This paper defines an object-oriented language with harmless aspect-oriented advice. A piece of harmless advice is a computation that, like ordinary aspect-oriented advice, executes when control reaches a designated control-flow point. However, unlike ordinary advice, harmless advice is designed to obey a weak non-interference property. Harmless advice may change the termination behavior of computations and use I/O, but it does not otherwise influence the final result of the mainline code. The benefit of harmless advice is that it facilitates local reasoning about program behavior. More specifically, programmers may ignore harmless advice when reasoning about the partial correctness properties of their programs. In addition, programmers may add new pieces of harmless advice to pre-existing programs in typical "after-the-fact" aspect-oriented style without fear they will break important data invariants used by the mainline code.In order to detect and enforce harmlessness, the paper defines a novel type and effect system related to information-flow type systems. The central technical result is that well-typed harmless advice does not interfere with the mainline computation. The paper also presents an implementation of the language and a case study using harmless advice to implement security policies.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
J. Aldrich. Open modules: Modular reasoning about advice. In European Conference on Object-Oriented Programming, pages 144--168, July 2005.
|
 |
2
|
|
| |
3
|
C. Clifton and G. T. Leavens. Observers and assistants: A proposal for modular aspect-oriented reasoning. In Foundations of Aspect Languages, Apr. 2002.
|
 |
4
|
|
 |
5
|
|
 |
6
|
Rémi Douence , Pascal Fradet , Mario Südholt, Composition, reuse and interaction analysis of stateful aspects, Proceedings of the 3rd international conference on Aspect-oriented software development, p.141-150, March 22-24, 2004, Lancaster, UK
[doi> 10.1145/976270.976288]
|
| |
7
|
|
| |
8
|
|
| |
9
|
|
| |
10
|
D. Evans and A. Twyman. Flexible policy-directed code safety. In IEEE Security and Privacy, Oakland, CA, May 1999.
|
| |
11
|
R. E. Filman and D. P. Friedman. Aspect-oriented programming is quantification and obliviousness. In R. E. Filman, T. Elrad, S. Clarke, and M. Akşit, editors, Aspect-Oriented Software Development, pages 21--35. Addison-Wesley, Boston, 2005.
|
| |
12
|
|
| |
13
|
List of main users. AspectJ Users List: aspectj-users@eclipse.org, June 2004. Requires subscription to access archives.
|
| |
14
|
R. Jagadeesan, A. Jeffrey, and J. Riely. A calculus of typed aspect-oriented programs. Unpublished manuscript., 2003.
|
| |
15
|
R. Jagadeesan, A. Jeffrey, and J. Riely. A calculus of untyped aspect-oriented programs. In European Conference on Object-Oriented Programming, Darmstadt, Germany, July 2003.
|
| |
16
|
S. Katz. Diagnosis of harmful aspects using regression verification. In Foundations of Aspect-Oriented Languages, Mar. 2004.
|
| |
17
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
 |
18
|
|
| |
19
|
M. Kim, M. Viswanathan, H. Ben-Abdallah, S. Kannan, I. Lee, and O. Sokolsky. Formally specified monitoring of temporal properties. In European Conference on Real-time Systems, York, UK, June 1999.
|
 |
20
|
|
| |
21
|
K. J. Lieberherr, D. Lorenz, and J. Ovlinger. Aspectual collaborations -- combining modules and aspects. The Computer Journal, 46(5):542--565, September 2003.
|
| |
22
|
H. Masuhara, G. Kiczales, and C. Dutchyn. Compilation semantics of aspect-oriented programs. In G. T. Leavens and R. Cytron, editors, Foundations of Aspect-Oriented Languages Workshop, pages 17--25, Apr. 2002.
|
 |
23
|
|
| |
24
|
J. Ovlinger. Modular Programming with Aspectual Collaborations. PhD thesis, Northeastern University, 2003.
|
 |
25
|
|
 |
26
|
|
| |
27
|
A. Sabelfeld and A. C. Myers. Language-based information-flow security. IEEE Journal on Selected Areas in Communications, 21(1), 2003., 21(1):5--19, 2003.
|
 |
28
|
Kevin Sullivan , William G. Griswold , Yuanyuan Song , Yuanfang Cai , Macneil Shonle , Nishit Tewari , Hridesh Rajan, Information hiding interfaces for aspect-oriented design, Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, September 05-09, 2005, Lisbon, Portugal
|
 |
29
|
|
 |
30
|
|
 |
31
|
|
CITED BY 12
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pavel Avgustinov , Elnar Hajiyev , Neil Ongkingco , Oege de Moor , Damien Sereni , Julian Tibble , Mathieu Verbaere, Semantics of static pointcuts in aspectJ, ACM SIGPLAN Notices, v.42 n.1, January 2007
|
|
|
|
|
|
|
|