Skip to main content

Composing Safely — A Type System for Aspects

  • Conference paper
  • 326 Accesses

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

Abstract

In this paper we present an approach towards safe software composition based on aspect-orientation. Aspects enable the systematic addition of code into existing programs but often they also introduce errors. In order to provide safe aspects for software composition we address the verification of the aspect-oriented language paradigm. We construct a basic calculus for aspects with types and prove formally type safety. More precisely, this paper presents the following contributions (a) a fully formalized type system for the Theory of Objects including the proof of type safety, (b) a theory of aspects based on the Theory of Objects including a type system for aspects, and (c) the definition of a notion of type safety for aspects including its proof. The entire theory and proofs are carried out in the theorem prover Isabelle/HOL.

Keywords

  • Type System
  • Base Program
  • High Order Logic
  • Label Type
  • Type Safety

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.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-540-78789-1_18
  • Chapter length: 17 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   74.99
Price excludes VAT (USA)
  • ISBN: 978-3-540-78789-1
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   99.00
Price excludes VAT (USA)

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)

    MATH  Google Scholar 

  2. Abadi, M., Cardelli, L.: A Theory of Primitive Objects. In: Hagiya, M., Mitchell, J.C. (eds.) TACS 1994. LNCS, vol. 789, Springer, Heidelberg (1994)

    Google Scholar 

  3. Avgustinov, P., et al.: Semantics of Static Pointcuts in Aspect. In: Principles of Programming Languages, POPL 2007, ACM Press, New York (2007)

    Google Scholar 

  4. Aydemir, B., Charguéraud, A., Pierce, B.C., Pollack, R., Weirich, S.: Engineering Formal Metatheory. In: Principles of Programming Languages, POPL 2008, ACM Press, New York (2008)

    Google Scholar 

  5. Barendregt, H.P.: The Lambda Calculus, its Syntax and Semantics, 2nd edn. North-Holland, Amsterdam (1984)

    MATH  Google Scholar 

  6. Clifton, C., Leavens, G.: Minimao: Investigating the semantics of proceed. In: Foundations of Aspect-Oriented Languages, FOAL 2005 (2005)

    Google Scholar 

  7. Ciaffaglione, A., Liquori, L., Miculan, M.: Reasoning about object-based calculi in (co)inductive type theory and the theory of contexts. Journal of Automated Reasoning 39, 1–47 (2007)

    MATH  CrossRef  MathSciNet  Google Scholar 

  8. Filman, R., Friedman, D.: Aspect-Oriented Programming is Quantification and Obliviousness. In: Workshop on Advanced Separation of Concerns, OOPSLA 2000, October 2000, Minneapolis, USA (2000)

    Google Scholar 

  9. Henrio, L., Kammüller, F.: A Mechanized Model of the Theory of Objects. In: Bonsangue, M.M., Johnsen, E.B. (eds.) FMOODS 2007. LNCS, vol. 4468, Springer, Heidelberg (2007)

    CrossRef  Google Scholar 

  10. Jähnichen, S., Kammüller, F.: Ascot: Formal, mechanical foundation of aspect-oriented and collaboration-based languages. DFG (2006), Web-page at, http://swt.cs.tu-berlin.de/~flokam/ascot/index.html

  11. Jagadeesan, R., Jeffrey, A., Riely, J.: Typed Parametric Polymorphism for Aspects. In [17], 267–296

    Google Scholar 

  12. Kammüller, F.: Interactive Theorem Proving in Software Engineering. Habilitationsschrift (habilitation thesis), Technische Universität Berlin (2006)

    Google Scholar 

  13. Kammüller, F., Vösgen, M.: Towards Type Safety of Aspect-Oriented Languages. In: Foundations of Aspect-Oriented Languages, FOAL 2006 (2006)

    Google Scholar 

  14. Ligatti, J., Walker, D., Zdancewic, S.: A type-theoretic interpretation of pointcuts and advice. In [17], pp. 240–266

    Google Scholar 

  15. Paulson, L.C.: Isabelle. LNCS, vol. 828. Springer, Heidelberg (1994)

    MATH  Google Scholar 

  16. Nipkow, T.: More Church Rosser Proofs. Journal of Automated Reasoning 26, 51–66 (2001)

    MATH  CrossRef  MathSciNet  Google Scholar 

  17. Science of Computer Programming: Special Issue on Foundations of Aspect-Oriented Programming. vol. 63(3), Elsevier (2006)

    Google Scholar 

  18. Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)

    MATH  Google Scholar 

  19. Urban, C., Tasson, C.: Nominal Techniques in Isabelle/HOL. In: Nieuwenhuis, R. (ed.) CADE 2005. LNCS (LNAI), vol. 3632, Springer, Heidelberg (2005)

    Google Scholar 

  20. Wright, A., Felleisen, M.: A Syntactic Approach to Type Soundness. Information and Computation 115, 38–94 (1994)

    MATH  CrossRef  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kammüller, F., Sudhof, H. (2008). Composing Safely — A Type System for Aspects. In: Pautasso, C., Tanter, É. (eds) Software Composition. SC 2008. Lecture Notes in Computer Science, vol 4954. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78789-1_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-78789-1_18

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-78788-4

  • Online ISBN: 978-3-540-78789-1

  • eBook Packages: Computer ScienceComputer Science (R0)