ACM Home Page
Please provide us with feedback. Feedback
The dataflow pointcut: a formal and practical framework
Full text PdfPdf (743 KB)
Source
Aspect-oriented software development archive
Proceedings of the 8th ACM international conference on Aspect-oriented software development table of contents
Charlottesville, Virginia, USA
SESSION: Programming languages table of contents
Pages 15-26  
Year of Publication: 2009
ISBN:978-1-60558-442-3
Authors
Dima Alhadidi  Concordia University, Montreal, PQ, Canada
Amine Boukhtouta  Concordia University, Montreal, PQ, Canada
Nadia Belblidia  Concordia University, Montreal, PQ, Canada
Mourad Debbabi  Concordia University, Montreal, PQ, Canada
Prabir Bhattacharya  Concordia University, Montreal, PQ, Canada
Sponsors
SIGSOFT: ACM Special Interest Group on Software Engineering
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 46,   Downloads (12 Months): 172,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1509239.1509244
What is a DOI?

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
 
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
27
 
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
31

Collaborative Colleagues:
Dima Alhadidi: colleagues
Amine Boukhtouta: colleagues
Nadia Belblidia: colleagues
Mourad Debbabi: colleagues
Prabir Bhattacharya: colleagues