Skip to main content

Reflecting on Aspect-Oriented Programming, Metaprogramming, and Adaptive Distributed Monitoring

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4709))

Abstract

Metaprogramming and computational reflection are two related techniques that allow the programmer to change the semantics of a program in a modular fashion. Although the concepts have been explored by researchers for some time, a form of metaprogramming, namely aspect-oriented programming, is now being used by some practitioners. This paper is an attempt to understand the limitations of different forms of computational reflection in concurrent and distributed computing. It specifically studies the use of aspect-oriented programming and reflective actor libraries, and their relation to full reflection. We choose distributed monitoring as the primary example application because its requirements nicely fit the abilities of the two systems as well as illustrate their limitations.

This research has been supported in part by NSF under grant CNS 05-09321 and by ONR under DoD MURI award N0014-02-1-0715.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Agha, G.: Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge, MA (1986)

    Google Scholar 

  2. Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting Object Interactions Using Composition Filters. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 152–184. Springer, Heidelberg (1993)

    Google Scholar 

  3. Arbab, F.: Reo: a channel-based coordination model for component composition. Mathematical Structures in Computer Science 14(03), 329–366 (2004)

    Article  MATH  MathSciNet  Google Scholar 

  4. Astley, M. Customization and Composition of Distributed Objects: Policy Management in Distributed Software Architectures. PhD thesis, University of Illinois at Urbana-Champaign (1999)

    Google Scholar 

  5. Astley, M., Agha, G.: Customization and composition of distributed objects: Middleware abstractions for policy management. In: Sixth International Symposium on the Foundations of Software Engineering, ACM SIGSOFT (1998)

    Google Scholar 

  6. Astley, M., Sturman, D., Agha, G.: Customizable middleware for modular distributed software. Communications of the ACM 44, 99–107 (2001)

    Article  Google Scholar 

  7. Bandinelli, S., Fuggetta, A.: Computational reflection in software process modeling: The SLANG approach. In: Proceedings of 15th International Conference on Software Engineering, pp. 144–154 (1993)

    Google Scholar 

  8. Bawden, A.: Reification without evaluation. In: LFP ’88: Proceedings of the 1988, ACM conference on LISP and functional programming, pp. 342–349 (1988)

    Google Scholar 

  9. Brant, J., Foote, B., Johnson, R.E., Roberts, D.: Wrappers to the Rescue. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 396–417. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  10. Cameron, R., Ito, M.: Grammar-Based Definition of Metaprogramming Systems. ACM Transactions on Programming Languages and Systems 6, 1 (1984)

    Google Scholar 

  11. Caromel, D., Vayssiere, J.: Reflections on MOPs, Components, and Java Security. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 256–274. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  12. Chen, F., Rosu, G.: Java-MOP: A monitoring oriented programming environment for Java. In: Proceedings of the 11th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (2005)

    Google Scholar 

  13. Cointe, P., Amiot, A., Denier, S.: From (meta) objects to aspects: from Java to AspectJ. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2004. LNCS, vol. 3657, pp. 70–94. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  14. Czarnecki, K., Eisenecker, U.W.: Generative programming. Springer, Heidelberg (2000)

    Book  Google Scholar 

  15. Czarnecki, K., Eisenecker, U.W.: Components and generative programming. In: Proceedings of 7th European software engineering conference and 7th ACM SIGSOFT symposium on Foundations of software engineering, pp. 2–19 (1999)

    Google Scholar 

  16. Denker, G., Meseguer, J., Talcott, C.: Rewriting semantics of meta-objects and composable distributed services. Futatsugi [139], 407–427 (1999)

    Google Scholar 

  17. Deutsch, L., Schiffman, A.: Efficient implementation of the smalltalk-80 system. In: Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pp. 297–302 (1984)

    Google Scholar 

  18. Fabre, J.C., Perennou, T.: A metaobject architecture for fault-tolerant distributed systems: the FRIENDS approach. IEEE Transactions on Computers 47(1), 78–95 (1998)

    Article  Google Scholar 

  19. Foote, B., Johnson, R.E.: Reflective facilities in Smalltalk-80. ACM SIGPLAN Notices 24(10), 327–335 (1989)

    Article  Google Scholar 

  20. Friedman, D., Wand, M.: Reification: Reflection without metaphysics. In: Proceedings of the 1984 ACM Symposium on LISP and functional programming (1984)

    Google Scholar 

  21. Frølund, S.: Inheritance of Synchronization Constraints in Concurrent Object-Oriented Programming Languages. In: Madsen, O.L. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 185–196. Springer, Heidelberg (1992)

    Chapter  Google Scholar 

  22. Frølund, S., Agha, G.: A language framework for multi-object coordination. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 346–360. Springer, Heidelberg (1993)

    Chapter  Google Scholar 

  23. Green, D.: Trail: The Reflection API. In: The Java Tutorial Continued: The Rest of the JDK (TM). Addison-Wesley Pub. Co., Reading (1998)

    Google Scholar 

  24. Hennessy, J.: Symbolic Debugging of Optimized Code. ACM Transactions on Programming Languages and Systems (TOPLAS) 4(3), 323–344 (1982)

    Article  MATH  Google Scholar 

  25. Hutto, P., Ahamad, M.: Slow memory: weakening consistency to enhance concurrency indistributed shared memories. In: Proceedings of 10th International Conference on Distributed Computing Systems, pp. 302–309 (1990)

    Google Scholar 

  26. Jang, M.: The Actor Architecture Manual (2004)

    Google Scholar 

  27. Kim, W., Agha, G.: Compilation of a highly parallel actor-based language. In: The Fifth International Workshop on Languages and Compilers for Parallel Computing, pp. 1–12 (1992)

    Google Scholar 

  28. Lea, R., Yokote, Y., Itoh, J.-I.: Adaptive operating system design using reflection. In: HOTOS ’95: Proceedings of the Fifth Workshop on Hot Topics in Operating Systems (HotOS-V), p. 95 (1995)

    Google Scholar 

  29. Maes, P.: Computational Reflection. Springer, London (1987)

    Google Scholar 

  30. Mason, I.A., Talcott, C.: A semantically sound actor translation. In: Degano, P., Gorrieri, R., Marchetti-Spaccamela, A. (eds.) ICALP 1997. LNCS, vol. 1256, Springer, Heidelberg (1997)

    Google Scholar 

  31. Meseguer, J., Talcott, C.L.: Semantic Models for Distributed Object Reflection. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 1–36. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  32. Rivard, F.: Smalltalk: a Reflective Language. In: Proceedings of Reflection, pp. 21–38 (1996)

    Google Scholar 

  33. Sen, K., Rosu, G., Agha, G.: Runtime safety analysis of multithreaded programs. In: Proceedings of the 9th European software engineering and 11th ACM SIGSOFT symposium on Foundations of software engineering, pp. 337–346 (2003)

    Google Scholar 

  34. Sen, K., Vardhan, A., Agha, G., Rosu, G.: Efficient Decentralized Monitoring of Safety in Distributed Systems. In: Proceedings of the 26th International Conference on Software Engineering, pp. 418–427 (2004)

    Google Scholar 

  35. Smith, B.C.: Reflection and semantics in LISP. ACM Press, New York (1984)

    Google Scholar 

  36. Sturman, D.: Fault-adaptation for systems in unpredictable environments. Master’s thesis, University of Illinois at Urbana-Champaign (1994)

    Google Scholar 

  37. Sturman, D.: Modular Specification of Interaction Policies in Distributed Computing. PhD thesis, University of Illinois at Urbana-Champaign (1996)

    Google Scholar 

  38. Sturman, D., Agha, G.: A protocol description language for customizing failure semantics. In: Proceedings of the 13th Symposium on Reliable Distributed Systems, pp. 148–157 (1994)

    Google Scholar 

  39. Talcott, C., Venkatasubramarian, N.: A Semantic Framework for Specifying and Reasoning about Composable Distributed Middleware Services (2001)

    Google Scholar 

  40. Venkatasubramanian, N., Talcott, C.: Reasoning about meta level activities in open distributed systems. In: Proceedings of the 14th annual ACM symposium on Principles of distributed computing, pp. 144–152 (1995)

    Google Scholar 

  41. Venkatasubramanian, N., Talcott, C., Agha, G.: A formal model for reasoning about adaptive QoS-enabled middleware. ACM Transactions on Software Engineering and Methodology (TOSEM) 13(1), 86–147 (2004)

    Article  Google Scholar 

  42. Watanabe, T., Yonezawa, A.: An Actor-Based Metalevel Architecture for Group-Wide Reflection. In: Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages, pp. 405–425 (1990)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Frank S. de Boer Marcello M. Bonsangue Susanne Graf Willem-Paul de Roever

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Donkervoet, B., Agha, G. (2007). Reflecting on Aspect-Oriented Programming, Metaprogramming, and Adaptive Distributed Monitoring. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, WP. (eds) Formal Methods for Components and Objects. FMCO 2006. Lecture Notes in Computer Science, vol 4709. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74792-5_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-74792-5_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-74791-8

  • Online ISBN: 978-3-540-74792-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics