Ptolemy: A Language with Quantified, Typed Events

  • Hridesh Rajan
  • Gary T. Leavens
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5142)


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.


Operational Semantic Base Code Event Closure Event Expression Return Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Dingel, J., Garlan, D., Jha, S., Notkin, D.: Reasoning about implicit invocation. SIGSOFT Software Engineering Notes 23(6), 209–221 (1998)CrossRefGoogle Scholar
  2. 2.
    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)Google Scholar
  3. 3.
    Luckham, D.C., Vera, J.: An event-based architecture definition language. IEEE Trans. Softw. Eng. 21(9), 717–734 (1995)CrossRefGoogle Scholar
  4. 4.
    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)Google Scholar
  5. 5.
    Reiss, S.P.: Connecting tools using message passing in the Field environment. IEEE Softw. 7(4), 57–66 (1990)CrossRefMathSciNetGoogle Scholar
  6. 6.
    Sullivan, K.J., Notkin, D.: Reconciling environment integration and software evolution. ACM Transactions on Software Engineering and Methodology 1(3), 229–268 (1992)CrossRefGoogle Scholar
  7. 7.
    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)CrossRefGoogle Scholar
  8. 8.
    Tarr, P., Ossher, H., Harrison, W., Sutton, S.: N degrees of separation: Multi-dimensional separation of concerns. In: ICSE 1999 (1999)Google Scholar
  9. 9.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: elements of reusable object-oriented software. Addison-Wesley Publishing Co., Inc, Reading (1995)Google Scholar
  10. 10.
    Kiczales, G., et al.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  11. 11.
    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)Google Scholar
  12. 12.
    Filman, R.E., Elrad, T., Clarke, S., Akşit, M. (eds.): Aspect-Oriented Software Development. Addison-Wesley, Boston (2005)Google Scholar
  13. 13.
    Elrad, T., Filman, R.E., Bader, A.: Aspect-oriented programming: Introduction. Commun. ACM 44(10), 29–32 (2001)CrossRefGoogle Scholar
  14. 14.
    Laddad, R.: AspectJ in Action: Practical Aspect-Oriented Programming. Manning (2003)Google Scholar
  15. 15.
    AspectJ Team: The AspectJ programming guide. Version 1.5.3 (2006),
  16. 16.
    Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced Separation of Concerns (OOPSLA 2000 (October 2000)Google Scholar
  17. 17.
    Rho, T., Kniesl, G., Appeltauer, M.: Fine-grained generic aspects. In: FOAL 2006 (2006)Google Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    Douence, R., Fradet, P., Sudholt, M.: Trace-based aspects. Aspect-oriented Software Development, 141–150Google Scholar
  20. 20.
    Stolz, V., Bodden, E.: Temporal assertions using AspectJ. In: Fifth Workshop on Runtime Verification (RV 2005) (2005)Google Scholar
  21. 21.
    Stoerzer, M., Graf, J.: Using pointcut delta analysis to support evolution of aspect-oriented software. In: ICSM 2005, pp. 653–656 (2005)Google Scholar
  22. 22.
    Tourwé, T., Brichau, J., Gybels, K.: On the existence of the AOSD-evolution paradox. In: SPLAT 2003, Boston (March 2003)Google Scholar
  23. 23.
    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)CrossRefGoogle Scholar
  24. 24.
    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)Google Scholar
  25. 25.
    W. G. Griswold et al.: Modular software design with crosscutting interfaces. IEEE Software (January/ February 2006)Google Scholar
  26. 26.
    Aldrich, J.: Open Modules. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 144–168. Springer, Heidelberg (2005)Google Scholar
  27. 27.
    Harbulot, B., Gurd, J.R.: A join point for loops in AspectJ. In: AOSD 2006, pp. 63–74 (2006)Google Scholar
  28. 28.
    Rajan, H., Sullivan, K.J.: Aspect language features for concern coverage profiling. In: AOSD 2005, pp. 181–191 (2005)Google Scholar
  29. 29.
    Altman, R., Cyment, A., Kicillof, N.: On the need for Setpoints. In: European Interactive Workshop on Aspects in Software (2005)Google Scholar
  30. 30.
    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)Google Scholar
  31. 31.
    Mezini, M., Ostermann, K.: Conquering aspects with Caesar. In: AOSD 2003, pp. 90–99 (2003)Google Scholar
  32. 32.
    Clifton, C.: A design discipline and language features for modular reasoning in aspect-oriented programs. Technical Report 05-15, Iowa State University (July 2005)Google Scholar
  33. 33.
    Clifton, C., Leavens, G.T.: MiniMAO1: Investigating the semantics of proceed. Science of Computer Programming 63(3), 321–374 (2006)zbMATHCrossRefMathSciNetGoogle Scholar
  34. 34.
    Rajan, H., Sullivan, K.J.: Eos: instance-level aspects for integrated system design. In: ESEC/FSE 2003, pp. 297–306 (2003)Google Scholar
  35. 35.
    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)Google Scholar
  36. 36.
    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)CrossRefGoogle Scholar
  37. 37.
    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)CrossRefGoogle Scholar
  38. 38.
    Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38–94 (1994)zbMATHCrossRefMathSciNetGoogle Scholar
  39. 39.
    Eclipse Foundation,
  40. 40.
    Rajan, H., Leavens, G.T.: Ptolemy (2007),
  41. 41.
    Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis, 2nd printing edn. Springer, Heidelberg (2005)zbMATHGoogle Scholar
  42. 42.
    Clifton, C., Leavens, G.: Observers and assistants: A proposal for modular aspect-oriented reasoning. In: FOAL 2002, pp. 33–44 (2002)Google Scholar
  43. 43.
    Dantas, D.S., Walker, D.: Harmless advice. In: POPL 2006, pp. 383–396 (2006)Google Scholar
  44. 44.
    Steimann, F.: The paradoxical success of aspect-oriented programming. In: OOPSLA 2006, pp. 481–497 (October 2006)Google Scholar
  45. 45.
    Hanenberg, S., Unland, R.: Parametric introductions. In: AOSD 2003, pp. 80–89 (2003)Google Scholar
  46. 46.
    Douence, R., Motelet, O., Südholt, M.: A formal definition of crosscuts. In: REFLECTION 2001, pp. 170–186 (2001)Google Scholar
  47. 47.
    Steimann, F., Pawlitzki, T.: Types and modularity for implicit invocation with implicit announcement. Obtained from the first author (August 2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Hridesh Rajan
    • 1
  • Gary T. Leavens
    • 2
  1. 1.Iowa State University 
  2. 2.University of Central Florida 

Personalised recommendations