ABSTRACT
By modeling dynamic join points, pointcuts, and advice in a defunctionalized continuation-passing style interpreter, we provide a fundamental account of these AOP mechanisms. Dynamic join points develop in a principled and natural way as activations of continuation frames. Pointcuts arise directly in the semantic specification as predicates identifying continuation frames. Advice models procedures operating on continuations, specializing the behaviour of continuation frames. In this way, an essential form of AOP is seen, neither as meta-programming nor as an ad hoc extension, but as an intrinsic feature of programming languages.
- M. S. Ager, D. Biernacki, O. Danvy, and J. Midtgaard. A functional correspondence between evaluators and abstract machines. In International Conference on Principles and Practice of Declarative Programming, pages 8--19. ACM Press, Aug. 2003. ISBN 1-58113-705-2. Google ScholarDigital Library
- M. S. Ager, O. Danvy, and J. Midtgaard. A functional correspondence between monadic evaluators and abstract machines for languages with computational effects. Theoretical Computer Science, 342(1):149--172, 2005. Google ScholarDigital Library
- J. H. Andrews. Process-algebraic foundations of aspectoriented programming. In A. Yonezawa and S. Matsuoka, editors, Workshop on Metalevel Architectures and Separation of Crosscutting Concerns, volume 2192, pages 187--209. Springer-Verlag, Sept. 2001. ISBN 3-540-42618-3. Google ScholarDigital Library
- A. Aßmann and A. Ludwig. Aspect weaving by graph rewriting. In U. Eisenecker and K. Czarnecki, editors, International Symposium on Generative Component-based Software Engineering, Oct. 1999. Google ScholarDigital Library
- M. Biernacka, D. Biernacki, and O. Danvy. An operational foundation for delimited continuations in the cps hierarchy. Technical Report RS-05-25, BRICS, University of Aarhus, Aug. 2005. URL http://www.brics.dk/RS/05/24/BRICS-RS-05-24.pdf. to appear in Logical Methods in Computer Science.Google Scholar
- D. Biernacki, O. Danvy, and C. chieh Shan. On the static and dynamic extents of delimited continuations. Science of Computer Programming, 60(3):274--297, 2006. Google ScholarDigital Library
- G. Bruns, R. Jagadeesan, A. Jeffrey, and J. Riely. μABC: A minimal aspect calculus. In P. Gardner and N. Yoshida, editors, International Conference on Concurrency Theory, volume 3170 of Lecture Notes in Computer Science, pages 209--224. Springer-Verlag, Sept. 2004. ISBN 3-540-22940-X.Google Scholar
- L. Cardelli. Phase distinctions in type theory. Manuscript, 1988. URL citeseer.ist.psu.edu/cardelli88phase.html.Google Scholar
- J. Clements and M. Felleisen. A tail-recursive machine with stack inspection. ACM Transactions on Programming Languages and Systems, 26(6):1029--1052, 2004. Google ScholarDigital Library
- C. Clifton and G. T. Leavens. MiniMAO: An imperative core language for studying aspect-oriented reasoning. Sci. Comput. Programming, 63(3):321--374, Dec. 2006. Google ScholarDigital Library
- W. D. Clinger, A. H. Hartheimer, and E. M. Ost. Implementation strategies for first-class continuations. Higher-Order and Symbolic Computation, 12(1):7--45, Apr. 1999. Google ScholarDigital Library
- Y. Coady, G. Kiczales, M. Feeley, N. Hutchinson, and J. S. Ong. Structuring Operating System Aspects, chapter 28, pages 651--657. In, Filman et al. {2004}, Oct. 2004.Google Scholar
- D. S. Dantas, D. Walker, G. Washburn, and S. Weirich. PolyAML: A polymorphic aspect-oriented functional programming language. In O. Danvy and B. C. Pierce, editors, International Conference on Functional Programming, Sept. 2005. ISBN 1-59593-064-7. Google ScholarDigital Library
- D. S. Dantas, D. Walker, G. Washburn, and S. Weirich. AspectML: A polymorphic aspect-oriented functional programming language. Transactions on Programming Languages and Systems, to appear.Google Scholar
- O. Danvy. Formalizing implementation strategies for firstclass continuations. In G. Smolka, editor, European Symposium on Programming, volume 1782 of Lecture Notes in Computer Science, pages 88--103. Springer-Verlag, Mar. 2000. ISBN 3-540-67262-1. Google ScholarDigital Library
- O. Danvy and J. Hatcliff. Thunks (continued). In Workshop on Static Analysis, pages 3--11, 1992.Google Scholar
- O. Danvy and J. Hatcliff. On the transformation between direct and continuation semantics. In S. D. Brookes, M. G. Main, A. Melton, M. W. Mislove, and D. A. Schmidt, editors, Conference on Mathematical Foundations of Programming Semantics, volume 802 of Lecture Notes in Computer Science, pages 627--648. Springer-Verlag, Apr. 1993. ISBN 3-540-58027-1. Google ScholarDigital Library
- O. Danvy and L. R. Nielson. A first-order one-pass cps transformation. Theoretical Computer Science, 308(1--3): 239--257, Nov. 2003. Google ScholarDigital Library
- B. De Win, W. Joosen, and F. Piessens. Developing Secure Applications Through Aspect-Oriented Programming, chapter 27, pages 633--560. In, Filman et al. {2004}, Oct. 2004.Google Scholar
- R. Douence, O. Motelet, and M. Südholt. A formal definition of crosscuts. In Lecture Notes in Computer Science, volume 2192, pages 170--186, Sept. 2001. Google ScholarDigital Library
- C. J. Dutchyn. AspectScheme v. 2. PLaneT repository, Jan. 2006. URL http://planet.plt-scheme.org/300/#aspect-scheme.plt2.1.Google Scholar
- C. J. Dutchyn, G. Kiczales, and H. Masuhara. Aspect Sandbox. internet, 2002. URL http://www/labs/spl/projects/asb.html.Google Scholar
- C. J. Dutchyn, D. B. Tucker, and S. Krishnamurthi. Semantics and scoping of aspects in higher-order languages. Science of Computer Programming, 63(3):207--239, Dec. 2006. Google ScholarDigital Library
- Y. Endoh, H. Masuhara, and A. Yonezawa. Continuation join points. In C. Clifton, R. Lämmel, and G. T. Leavens, editors, Workshop on Foundations of Aspect Oriented Languages, pages 1--10, Mar. 2006. Iowa State University TR#06-01.Google Scholar
- M. Felleisen. The theory and practice of first-class prompts. In Symposium on Principles of Programming Languages, pages 180--190, 1988. Google ScholarDigital Library
- M. Felleisen. On the expressive power of programming languages. Science of Computer Programming, 17:35--75, 1991. Google ScholarDigital Library
- A. Filinski. Declarative continuations and categorical duality. Master's thesis, DIKU, University of Copenhagen, Aug. 1989.Google Scholar
- R. Filman. Understanding AOP through the study of interpreters, 2001. URL citeseer.ist.psu.edu/571298.html.Google Scholar
- R. Filman and D. Friedman. Aspect-Oriented Programming is Quantification and Obliviousness, chapter 2, pages 21--36. In, Filman et al. {2004}, Oct. 2004.Google Scholar
- R. E. Filman, T. Elrad, S. Clarke, and M. Akşit, editors. Aspect-Oriented Software Development. Addison-Wesley, Oct. 2004.Google ScholarDigital Library
- C. Flanagan, A. Sabry, B. F. Duba, and M. Felleisen. The essence of compiling with continuations. In Conference Programming Language Design and Implementation, pages 237--247, 1993. Google ScholarDigital Library
- D. Friedman, M. Wand, and C. Haynes. Essentials of Programming Languages. MIT Press, 2001. Google ScholarDigital Library
- T. G. Griffon. A formulæ-as-types notion of control. In Symposium on Principles of Programming Languages, pages 47--57. ACM Press, January 1990. Google ScholarDigital Library
- B. Harbulot and J. R. Gurd. A join point for loops in AspectJ. In R. Filman, H. Masuhara, and A. Rashid, editors, Conference on Aspect Oriented Software Development, pages 63--74. ACM Press, Mar. 2006. ISBN 1-59593-300-x. Google ScholarDigital Library
- J. Hatcliff and O. Danvy. A generic account of continuationpassing styles. In Symposium on Principles of Programming Languages, pages 458--471, 1994. Google ScholarDigital Library
- P. Jouvelot and D. K. Gifford. Reasoning about continuations with control effects. In R. L. Wexelblat, editor, Conference Programming Language Design and Implementation, pages 218--226. ACM Press, June 1989. ISBN 0-89791-306-X. Google ScholarDigital Library
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In European Conference on Object-Oriented Programming, June 1997.Google ScholarCross Ref
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In European Conference on Object-Oriented Programming, 2001. Google ScholarDigital Library
- S. Kojarski and D. H. Lorentz. Pluggable AOP -- designing aspect mechanisms for third-party composition. In R. P. Gabriel, editor, Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 247--263. ACM Press, Oct. 2005. ISBN 1-59593-031-0. Google ScholarDigital Library
- P. J. Landin. A generalization of jumps and labels. Higher-Order and Symbolic Computation, 11(2):125--143, 1998. Google ScholarDigital Library
- H. Masuhara, G. Kiczales, and C. J. Dutchyn. A compilation and optimization model for aspect-oriented programs. In G. Hedin, editor, International Conference on Compiler Construction, volume 2622 of Lecture Notes in Computer Science, pages 46--60. Springer-Verlag, January 2003.Google Scholar
- E. Moggi. Computational lambda-calculus and monads. In Logic in Computer Science, pages 14--23. IEEE, June 1989. Google ScholarDigital Library
- E. Moggi. Notions of computation and monads. Information and Computation, 93(1):55--92, 1991. Google ScholarDigital Library
- C. R. Murthy. A computational analysis of girard's translation and LC. In Symposium on Logic in Computer Science, pages 90--101. IEEE, June 1992.Google ScholarCross Ref
- J. C. Reynolds. Definitional interpreters for higher-order programming languages. In ACM National Conference, pages 717--740. ACM Press, 1972. Google ScholarDigital Library
- J. C. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6(3--4):233--248, 1993. Google ScholarDigital Library
- S. Roychoudhury and J. Gray. AOP for everyone -- cracking the multiple weavers problem. Manuscript, 2005. URL http://www.cis.uab.edu/gray/Pubs/software-suman.pdf.Google Scholar
- D. Sereni and O. de Moor. Static analysis of aspects. In ACM SIGPLAN Conference on Aspect-oriented Software Development, pages 30--39, 2003. Google ScholarDigital Library
- C.-c. Shan. From shift and reset to polarized logic. Manuscript, 2003. URL http://www.eecs.harvard.edu/~ccshan/polar/paper.pdf.Google Scholar
- C.-c. Shan. Shift to control. In O. Shivers and O. Waddell, editors, Scheme Workshop, 1999.Google Scholar
- O. Spinczyk and D. Lohmann. Using AOP to develop architecture-neutral operating system components. In SIGOPS European Workshop, pages 188--192. ACM Press, Sept. 2004. Google ScholarDigital Library
- C. Strachey. Fundamental concepts in programming languages. Higher-Order and Symbolic Computation, 13 (1/2):11--49, 2000. Google ScholarDigital Library
- H. Thielecke. Categorical Structure of Continuation Passing Style. PhD thesis, University of Edinburgh, 1997. Also available as technical report ECS-LFCS-97-376.Google Scholar
- M. Wand, G. Kiczales, and C. J. Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. In G. T. Leavens and R. Cytron, editors, Workshop on Foundations of Aspect Oriented Languages, pages 1--8, Apr. 2002. Iowa State University TR#2-06.Google Scholar
- M. Wand, G. Kiczales, and C. J. Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. Transactions on Programming Languages and Systems, 26(4):890--910, Sept. 2004. Google ScholarDigital Library
Index Terms
- Specializing continuations a model for dynamic join points
Recommendations
Untangling crosscutting concerns in domain-specific languages with domain-specific join points
DSAL '09: Proceedings of the 4th workshop on Domain-specific aspect languagesLike programs written in general-purpose languages, programs written in DSLs may also suffer from tangling and scattering in the presence of domain-specific crosscutting concerns. This paper presents an architecture that supports aspect-oriented ...
A semantics for advice and dynamic join points in aspect-oriented programming
A characteristic of aspect-oriented programming, as embodied in Aspect J, is the use of advice and point cuts to define behavior that crosscuts the structure of the rest of the code. The events during execution at which advice may execute are called ...
Specializing a meta-interpreter: JIT compilation of dynsem specifications on the graal VM
ManLang '18: Proceedings of the 15th International Conference on Managed Languages & RuntimesDynSem is a domain-specific language for concise specification of the dynamic semantics of programming languages, aimed at rapid experimentation and evolution of language designs. DynSem specifications can be executed to interpret programs in the ...
Comments