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.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
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)
Boyapati, C., Liskov, B., Shrira, L.: Ownership types for object encapsulation. In: POPL, pp. 213–223. ACM (2003)
Boyland, J.: Checking interference with fractional permissions. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 55–72. Springer, Heidelberg (2003)
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)
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)
Clarke, D., Potter, J.M., Noble, J.: Ownership types for flexible alias protection. ACM SIGPLAN Notices 33, 48–64 (1998)
Gordon, D., Noble, J.: Dynamic ownership in a dynamic language. In: DLS: Dynamic Languages Symposium, pp. 41–52. ACM (2007)
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)
Hogg, J.: Islands: aliasing protection in object-oriented languages. In: OOPSLA, pp. 271–285. ACM (1991)
Li, P., Cameron, N., Noble, J.: Mojojojo - more ownership for multiple owners. In: FOOL (2010)
Meyer, B.: Writing correct software with Eiffel. Dr. Dobb’s Journal 14(12), 48–60 (1989)
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)
Nethercote, N., Seward, J.: Valgrind: a framework for heavyweight dynamic binary instrumentation. In: PLDI, pp. 89–100 (2007)
Oracle Corporation: OpenJDK (2013), http://openjdk.java.net
Sergey, I., Clarke, D.: Gradual ownership types. In: Seidl, H. (ed.) Programming Languages and Systems. LNCS, vol. 7211, pp. 579–599. Springer, Heidelberg (2012)
Siek, J., Taha, W.: Gradual typing for functional languages. In: Scheme and Functional Programming Workshop (September 2006)
TIOBE software: TIOBE programming community index for (May 2013), http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)