Abstract
Implicit invocation (II) and aspect-oriented (AO) languages provide related but distinct mechanisms for separation of concerns. II languages have explicitly announced events that run registered observer methods. AO languages have implicitly announced events that run method-like but more powerful advice. A limitation of II languages is their inability to refer to a large set of events succinctly. They also lack the expressive power of AO advice. Limitations of AO languages include potentially fragile dependence on syntactic structure that may hurt maintainability, and limits on the available set of implicit events and the reflective contextual information available. Quantified, typed events, as implemented in our language Ptolemy, solve all these problems. This paper describes Ptolemy and explores its advantages relative to both II and AO languages.
Rajan was supported in part by the NSF grant CNS-0627354. Leavens was supported in part by NSF grant CCF-0429567. Both were supported in part by NSF grant CNS 08-08913.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Dingel, J., Garlan, D., Jha, S., Notkin, D.: Reasoning about implicit invocation. SIGSOFT Software Engineering Notes 23(6), 209–221 (1998)
Garlan, D., Notkin, D.: Formalizing design spaces: Implicit invocation mechanisms. In: Prehn, S., Toetenel, H. (eds.) VDM 1991. LNCS, vol. 551, pp. 31–44. Springer, Heidelberg (1991)
Luckham, D.C., Vera, J.: An event-based architecture definition language. IEEE Trans. Softw. Eng. 21(9), 717–734 (1995)
Notkin, D., Garlan, D., Griswold, W.G., Sullivan, K.J.: Adding implicit invocation to languages: Three approaches. In: JSSST International Symposium on Object Technologies for Advanced Software, pp. 489–510 (1993)
Reiss, S.P.: Connecting tools using message passing in the Field environment. IEEE Softw. 7(4), 57–66 (1990)
Sullivan, K.J., Notkin, D.: Reconciling environment integration and software evolution. ACM Transactions on Software Engineering and Methodology 1(3), 229–268 (1992)
Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Tarr, P., Ossher, H., Harrison, W., Sutton, S.: N degrees of separation: Multi-dimensional separation of concerns. In: ICSE 1999 (1999)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: elements of reusable object-oriented software. Addison-Wesley Publishing Co., Inc, Reading (1995)
Kiczales, G., et al.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Kiczales, G., Mezini, M.: Separation of concerns with procedures, annotations, advice and pointcuts. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 195–213. Springer, Heidelberg (2005)
Filman, R.E., Elrad, T., Clarke, S., Akşit, M. (eds.): Aspect-Oriented Software Development. Addison-Wesley, Boston (2005)
Elrad, T., Filman, R.E., Bader, A.: Aspect-oriented programming: Introduction. Commun. ACM 44(10), 29–32 (2001)
Laddad, R.: AspectJ in Action: Practical Aspect-Oriented Programming. Manning (2003)
AspectJ Team: The AspectJ programming guide. Version 1.5.3 (2006), http://eclipse.org/aspectj
Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced Separation of Concerns (OOPSLA 2000 (October 2000)
Rho, T., Kniesl, G., Appeltauer, M.: Fine-grained generic aspects. In: FOAL 2006 (2006)
Eichberg, M., Mezini, M., Ostermann, K.: Pointcuts as functional queries. In: Chin, W.-N. (ed.) APLAS 2004. LNCS, vol. 3302, pp. 366–381. Springer, Heidelberg (2004)
Douence, R., Fradet, P., Sudholt, M.: Trace-based aspects. Aspect-oriented Software Development, 141–150
Stolz, V., Bodden, E.: Temporal assertions using AspectJ. In: Fifth Workshop on Runtime Verification (RV 2005) (2005)
Stoerzer, M., Graf, J.: Using pointcut delta analysis to support evolution of aspect-oriented software. In: ICSM 2005, pp. 653–656 (2005)
Tourwé, T., Brichau, J., Gybels, K.: On the existence of the AOSD-evolution paradox. In: SPLAT 2003, Boston (March 2003)
Kellens, A., Mens, K., Brichau, J., Gybels, K.: Managing the evolution of aspect-oriented software with model-based pointcuts. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 501–525. Springer, Heidelberg (2006)
Sullivan, K.J., Griswold, W.G., Song, Y., Cai, Y., Shonle, M., Tewari, N., Rajan, H.: Information hiding interfaces for aspect-oriented design. In: ESEC/FSE 2005, pp. 166–175 (2005)
W. G. Griswold et al.: Modular software design with crosscutting interfaces. IEEE Software (January/ February 2006)
Aldrich, J.: Open Modules. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 144–168. Springer, Heidelberg (2005)
Harbulot, B., Gurd, J.R.: A join point for loops in AspectJ. In: AOSD 2006, pp. 63–74 (2006)
Rajan, H., Sullivan, K.J.: Aspect language features for concern coverage profiling. In: AOSD 2005, pp. 181–191 (2005)
Altman, R., Cyment, A., Kicillof, N.: On the need for Setpoints. In: European Interactive Workshop on Aspects in Software (2005)
Rajan, H., Sullivan, K.J.: Classpects: unifying aspect- and object-oriented language design. In: Inverardi, P., Jazayeri, M. (eds.) ICSE 2005. LNCS, vol. 4309, pp. 59–68. Springer, Heidelberg (2006)
Mezini, M., Ostermann, K.: Conquering aspects with Caesar. In: AOSD 2003, pp. 90–99 (2003)
Clifton, C.: A design discipline and language features for modular reasoning in aspect-oriented programs. Technical Report 05-15, Iowa State University (July 2005)
Clifton, C., Leavens, G.T.: MiniMAO1: Investigating the semantics of proceed. Science of Computer Programming 63(3), 321–374 (2006)
Rajan, H., Sullivan, K.J.: Eos: instance-level aspects for integrated system design. In: ESEC/FSE 2003, pp. 297–306 (2003)
Rajan, H., Leavens, G.T.: Quantified, typed events for improved separation of concerns. Technical Report 07-14c, Iowa State University, Dept. of Computer Sc. (October 2007)
Clifton, C., Leavens, G.T., Noble, J.: MAO: Ownership and effects for more effective reasoning about aspects. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 451–475. Springer, Heidelberg (2007)
Flatt, M., Krishnamurthi, S., Felleisen, M.: A programmer’s reduction semantics for classes and mixins. In: Formal Syntax and Semantics of Java, pp. 241–269. Springer, Heidelberg (1999)
Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38–94 (1994)
Eclipse Foundation, http://www.eclipse.org/
Rajan, H., Leavens, G.T.: Ptolemy (2007), http://www.cs.iastate.edu/~ptolemy/
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis, 2nd printing edn. Springer, Heidelberg (2005)
Clifton, C., Leavens, G.: Observers and assistants: A proposal for modular aspect-oriented reasoning. In: FOAL 2002, pp. 33–44 (2002)
Dantas, D.S., Walker, D.: Harmless advice. In: POPL 2006, pp. 383–396 (2006)
Steimann, F.: The paradoxical success of aspect-oriented programming. In: OOPSLA 2006, pp. 481–497 (October 2006)
Hanenberg, S., Unland, R.: Parametric introductions. In: AOSD 2003, pp. 80–89 (2003)
Douence, R., Motelet, O., Südholt, M.: A formal definition of crosscuts. In: REFLECTION 2001, pp. 170–186 (2001)
Steimann, F., Pawlitzki, T.: Types and modularity for implicit invocation with implicit announcement. Obtained from the first author (August 2007)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rajan, H., Leavens, G.T. (2008). Ptolemy: A Language with Quantified, Typed Events. In: Vitek, J. (eds) ECOOP 2008 – Object-Oriented Programming. ECOOP 2008. Lecture Notes in Computer Science, vol 5142. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-70592-5_8
Download citation
DOI: https://doi.org/10.1007/978-3-540-70592-5_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-70591-8
Online ISBN: 978-3-540-70592-5
eBook Packages: Computer ScienceComputer Science (R0)