Skip to main content

Dynamic Alias Protection with Aliasing Contracts

  • Conference paper
  • 636 Accesses

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

Abstract

Object-oriented languages allow any object to point to any other object, limited only by type. The resultant possible aliasing makes programs hard to verify and maintain.

Much research has been done on alias protection schemes to restrict aliasing. However, existing schemes are either informal (design-pattern-like) or static type-like systems. The former are hard to verify, while the latter tend to be inflexible (e.g. shared ownership is problematic).

We introduce aliasing contracts: a novel, dynamic alias protection scheme which is highly flexible. We present JaCon, a prototype implementation of aliasing contracts for Java, and use it to quantify their runtime performance overheads. Results show that aliasing contracts perform comparably to existing debugging tools, demonstrating practical feasibility.

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. Almeida, P.: Balloon types: Controlling sharing of state in data types. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 32–59. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  2. Boyapati, C., Liskov, B., Shrira, L.: Ownership types for object encapsulation. In: POPL, pp. 213–223. ACM (2003)

    Google Scholar 

  3. Boyland, J.: Checking interference with fractional permissions. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 55–72. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  4. Boyland, J., Noble, J., Retert, W.: Capabilities for sharing: A generalisation of uniqueness and read-only. In: Lindskov Knudsen, J. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 2–7. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  5. Clarke, D., Östlund, J., Sergey, I., Wrigstad, T.: Ownership types: A survey. In: Clarke, D., Noble, J., Wrigstad, T. (eds.) Aliasing in Object-Oriented Programming. LNCS, vol. 7850, pp. 15–58. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  6. Clarke, D., Potter, J.M., Noble, J.: Ownership types for flexible alias protection. ACM SIGPLAN Notices 33, 48–64 (1998)

    Article  Google Scholar 

  7. Gordon, D., Noble, J.: Dynamic ownership in a dynamic language. In: DLS: Dynamic Languages Symposium, pp. 41–52. ACM (2007)

    Google Scholar 

  8. Haller, P., Odersky, M.: Capabilities for uniqueness and borrowing. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 354–378. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  9. Hogg, J.: Islands: aliasing protection in object-oriented languages. In: OOPSLA, pp. 271–285. ACM (1991)

    Google Scholar 

  10. Li, P., Cameron, N., Noble, J.: Mojojojo - more ownership for multiple owners. In: FOOL (2010)

    Google Scholar 

  11. Meyer, B.: Writing correct software with Eiffel. Dr. Dobb’s Journal 14(12), 48–60 (1989)

    Google Scholar 

  12. Müller, P., Poetzsch-Heffter, A.: Universes: A type system for controlling representation exposure. In: Poetzsch-Heffter, A., Meyer, J. (eds.) Programming Languages and Fundamentals of Programming (1999)

    Google Scholar 

  13. Nethercote, N., Seward, J.: Valgrind: a framework for heavyweight dynamic binary instrumentation. In: PLDI, pp. 89–100 (2007)

    Google Scholar 

  14. Oracle Corporation: OpenJDK (2013), http://openjdk.java.net

  15. Sergey, I., Clarke, D.: Gradual ownership types. In: Seidl, H. (ed.) Programming Languages and Systems. LNCS, vol. 7211, pp. 579–599. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  16. Siek, J., Taha, W.: Gradual typing for functional languages. In: Scheme and Functional Programming Workshop (September 2006)

    Google Scholar 

  17. TIOBE software: TIOBE programming community index for (May 2013), http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

  18. Voigt, J., Mycroft, A.: Aliasing contracts: a dynamic approach to alias protection. Technical Report UCAM-CL-TR-836, University of Cambridge, Computer Laboratory (June 2013)

    Google Scholar 

  19. Westbrook, E., Zhao, J., Budimlić, Z., Sarkar, V.: Practical permissions for race-free parallelism. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol. 7313, pp. 614–639. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer International Publishing Switzerland

About this paper

Cite this paper

Voigt, J., Mycroft, A. (2013). Dynamic Alias Protection with Aliasing Contracts. In: Shan, Cc. (eds) Programming Languages and Systems. APLAS 2013. Lecture Notes in Computer Science, vol 8301. Springer, Cham. https://doi.org/10.1007/978-3-319-03542-0_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-03542-0_10

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-03541-3

  • Online ISBN: 978-3-319-03542-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics