skip to main content
10.1145/1233833.1233840acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
Article

Specializing continuations a model for dynamic join points

Published:13 March 2007Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle Scholar
  8. L. Cardelli. Phase distinctions in type theory. Manuscript, 1988. URL citeseer.ist.psu.edu/cardelli88phase.html.Google ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. O. Danvy and J. Hatcliff. Thunks (continued). In Workshop on Static Analysis, pages 3--11, 1992.Google ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. O. Danvy and L. R. Nielson. A first-order one-pass cps transformation. Theoretical Computer Science, 308(1--3): 239--257, Nov. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. J. Dutchyn. AspectScheme v. 2. PLaneT repository, Jan. 2006. URL http://planet.plt-scheme.org/300/#aspect-scheme.plt2.1.Google ScholarGoogle Scholar
  22. C. J. Dutchyn, G. Kiczales, and H. Masuhara. Aspect Sandbox. internet, 2002. URL http://www/labs/spl/projects/asb.html.Google ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle Scholar
  25. M. Felleisen. The theory and practice of first-class prompts. In Symposium on Principles of Programming Languages, pages 180--190, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Felleisen. On the expressive power of programming languages. Science of Computer Programming, 17:35--75, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. Filinski. Declarative continuations and categorical duality. Master's thesis, DIKU, University of Copenhagen, Aug. 1989.Google ScholarGoogle Scholar
  28. R. Filman. Understanding AOP through the study of interpreters, 2001. URL citeseer.ist.psu.edu/571298.html.Google ScholarGoogle Scholar
  29. 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 ScholarGoogle Scholar
  30. R. E. Filman, T. Elrad, S. Clarke, and M. Akşit, editors. Aspect-Oriented Software Development. Addison-Wesley, Oct. 2004.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. D. Friedman, M. Wand, and C. Haynes. Essentials of Programming Languages. MIT Press, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. J. Hatcliff and O. Danvy. A generic account of continuationpassing styles. In Symposium on Principles of Programming Languages, pages 458--471, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle ScholarCross RefCross Ref
  38. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  39. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  40. P. J. Landin. A generalization of jumps and labels. Higher-Order and Symbolic Computation, 11(2):125--143, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. 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 ScholarGoogle Scholar
  42. E. Moggi. Computational lambda-calculus and monads. In Logic in Computer Science, pages 14--23. IEEE, June 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. E. Moggi. Notions of computation and monads. Information and Computation, 93(1):55--92, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. 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 ScholarGoogle ScholarCross RefCross Ref
  45. J. C. Reynolds. Definitional interpreters for higher-order programming languages. In ACM National Conference, pages 717--740. ACM Press, 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. J. C. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6(3--4):233--248, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. 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 ScholarGoogle Scholar
  48. D. Sereni and O. de Moor. Static analysis of aspects. In ACM SIGPLAN Conference on Aspect-oriented Software Development, pages 30--39, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. C.-c. Shan. From shift and reset to polarized logic. Manuscript, 2003. URL http://www.eecs.harvard.edu/~ccshan/polar/paper.pdf.Google ScholarGoogle Scholar
  50. C.-c. Shan. Shift to control. In O. Shivers and O. Waddell, editors, Scheme Workshop, 1999.Google ScholarGoogle Scholar
  51. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  52. C. Strachey. Fundamental concepts in programming languages. Higher-Order and Symbolic Computation, 13 (1/2):11--49, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. H. Thielecke. Categorical Structure of Continuation Passing Style. PhD thesis, University of Edinburgh, 1997. Also available as technical report ECS-LFCS-97-376.Google ScholarGoogle Scholar
  54. 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 ScholarGoogle Scholar
  55. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Specializing continuations a model for dynamic join points

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        FOAL '07: Proceedings of the 6th workshop on Foundations of aspect-oriented languages
        March 2007
        74 pages
        ISBN:9781595936714
        DOI:10.1145/1233833

        Copyright © 2007 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 13 March 2007

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate5of6submissions,83%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader