|
ABSTRACT
Some security concerns are sensitive to flow of information in a program execution. The dataflow pointcut has been proposed by Masuhara and Kawauchi in order to easily implement such security concerns in aspect-oriented programming (AOP) languages. The pointcut identifies join points based on the origins of values. This paper presents a formal framework for this pointcut based on the λ_calculus. Dataflow tags are propagated statically to track data dependencies between expressions. We introduce a static semantics for tag propagation and prove that it is consistent with respect to the dynamic semantics of the propagation. We instrument the static effect-based type system to propagate tags, match and inject advices. This static approach can be used to minimize the cost of dataflow pointcuts by reducing the runtime overhead since much of the dataflow information would be available statically and at the same time it can be used for verification. The proposed semantics for advice weaving is in the spirit of AspectJ where advices are injected before, after, or around the join points that are matched by their respective pointcuts. Inspired from the formal framework, the AspectJ compiler ajc is extended with the dataflow pointcut that tracks data dependencies inside methods.
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
|
Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J., and Irwin., J. (1997) Aspect-oriented programming. In Akşit, M. and Matsuoka, S. (eds.), Proceedings European Conference on Object-Oriented Programming, 1241, 220--242. Springer-Verlag.
|
| |
2
|
Clifton, C., Leavens, G. T., and Noble, J. (2007) MAO: Ownership and effects for more effective reasoning about aspects. Proceedings European Conference on Object-Oriented Programming, 4609, 451--475. Springer-Verlag.
|
| |
3
|
Ossher, H. and Tarr, P. (2000) Multi-dimensional separation of concerns and the hyperspace approach. Proceedings of the Symposium on Software Architectures and Component Technology: The State of the Art in Software Development. Enschede, The Netherlands. Kluwer.
|
| |
4
|
|
| |
5
|
Masuhara, H., Kiczales, G., and Dutchyn, Ch. (2003) A compilation and optimization model for aspect-oriented programs. In Hedin, G. (eds.), Proceedings of Compiler Construction (CC2003), 2622, 46--60. Springer-Verlag.
|
| |
6
|
|
 |
7
|
Dima AlHadidi , Nadia Belblidia , Mourad Debbabi, Security crosscutting concerns and AspectJ, Proceedings of the 2006 International Conference on Privacy, Security and Trust: Bridge the Gap Between PST Technologies and Business Services, October 30-November 01, 2006, Markham, Ontario, Canada
[doi> 10.1145/1501434.1501488]
|
| |
8
|
Debbabi, M., Aidoud, Z., and Faour, A. (1997) On the inference of structured recursive effects with subtyping. Journal of Functional and Logic Programming, 1997(5).
|
| |
9
|
Plotkin, G. (1975) Call-by-Name, Call-by-Value and the lambda-Calculus. Theoretical Computer Science, 1(2), pp 125--159. Elsevier.
|
| |
10
|
|
| |
11
|
Talpin, J. and Jouvelot, P. (1992) Polymorphic type, region and effect inference. Journal of Functional Programming, 2(3), 245--271.
|
| |
12
|
|
| |
13
|
The AspectJ programming guide. http://dev.eclipse.org/viewcvs/indextech.cgi/check-out/aspectj-home/doc/progguide/index.html, 2008.
|
| |
14
|
ENCS Users' Web Pages-Concordia University-Montreal, Quebec. http://users.encs.concordia.ca/~a_boukh/Appendix.pdf, 2009.
|
| |
15
|
Byte Code Engineering Library BCEL. http://jakarta.apache.org/bcel/manual.html, 2008.
|
| |
16
|
The Java Virtual Machine Instruction Set. http://java.sun.com/docs/books/jvms/secondedition/html/ Instructions.doc.html, 2008.
|
 |
17
|
|
 |
18
|
|
 |
19
|
|
 |
20
|
|
| |
21
|
Wang, M., Chen, K., and Khoo, S. (2006) On the pursuit of static and coherent weaving. Foundations of Aspect-Oriented Languages (FOAL) 2006.
|
| |
22
|
Masuhara, H. and Kawauchi, K. (2003) Dataflow pointcut in aspect-oriented programming. APLAS 03: Asian Symposium on Programming Languages and Systems. Springer Verlag.
|
| |
23
|
Huang, M., Wang, C., and Zhang, L. (2004) Toward a reusable and generic security aspect library. In De Win, B., Shah, V., Joosen, W., and Bodkin, R. (eds.), AOSDSEC: AOSD Technology for Application-Level Security, Lancaster, England.
|
| |
24
|
Ramachandran, R., Pearce, D., and Welch, I. (2006) AspectJ for multilevel security. In Coady, Y., Lorenz, D., Spinczyk, O., and Wohlstadter, E. (eds.), ACP4IS06, Bonn, Germany, 20 March, pp. 13--17. Published as University of Virginia Computer Science Technical Report CS-2006-01.
|
 |
25
|
|
 |
26
|
Chris Allan , Pavel Avgustinov , Aske Simon Christensen , Laurie Hendren , Sascha Kuzins , Ondřej Lhoták , Oege de Moor , Damien Sereni , Ganesh Sittampalam , Julian Tibble, Adding trace matching with free variables to AspectJ, Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
 |
27
|
Pavel Avgustinov , Elnar Hajiyev , Neil Ongkingco , Oege de Moor , Damien Sereni , Julian Tibble , Mathieu Verbaere, Semantics of static pointcuts in aspectJ, Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, January 17-19, 2007, Nice, France
|
| |
28
|
|
| |
29
|
Jagadeesan, R., Jeffrey, A., and Riely, J. (2003) A Calculus of untyped aspect-oriented programs. Proceedings of the European Conference on Object-Oriented Programming, Darmstadt, Germany, pp. 54--73. Springer.
|
 |
30
|
Pavel Avgustinov , Elnar Hajiyev , Neil Ongkingco , Oege de Moor , Damien Sereni , Julian Tibble , Mathieu Verbaere, Semantics of static pointcuts in aspectJ, Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, January 17-19, 2007, Nice, France
|
 |
31
|
|
|