Skip to main content

An Abstract Model of Java Dynamic Linking and Loading

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2071))

Abstract

We suggest a model for dynamic loading and linking as in Java. We distinguish five components in a Java implementation: evaluation, resolution, loading, verification, and preparation — with their associated checks. We demonstrate how these five together guarantee type soundness.

We take an abstract view, and base our model on a language nearer to Java source than to bytecode. We consider the following features of Java: classes, subclasses, fields and hiding, methods and inheritance, and interfaces.

This work was partly supported by EPSRC, Grant ref: GR/L 76709

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. Davide Ancona and Elena Zucca. A Primitive calculus for module systems. In PPDP Proceedings, September 1999.

    Google Scholar 

  2. Martin Buechi. Type soundness Issues in Java, May 1999. Types mailing list, at http://www:cis:upenn:edu=bcpierce=types=archives and then /current/msg00140.html.

  3. Luca Cardelli. Program Fragments, Linking, and Modularization. In POPL’97 Proceedings, January 1997.

    Google Scholar 

  4. Drew Dean. The Security of Static Typing with Dynamic Linking. In Fourth ACM Conference on Computer and Communication Security, 1997.

    Google Scholar 

  5. Sophia Drossopoulou. Towards an Abstract model of Java dynami linking and veri cation. In Preliminary Proceedings of the Third Workshop on Types in Compilation (TIC 2000). Carnegie Mellon, CMU-CS-00-161, 2000.

    Google Scholar 

  6. Sophia Drossopoulou, Susan Eisenbach, and Sarfraz Khurshid. Is Java Sound?Theory and Practice of Object Systems, 5(1), January 1999. 82 S. Drossopoulou

    Google Scholar 

  7. Sophia Drossopoulou, Susan Eisenbach, and David Wragg. A Fragment Calculus towards a model of Separate Compilation, Linking and Binary Compatibility. In LICS Proceedings, 1999.

    Google Scholar 

  8. Dominic Duggan. Saring in Typed Module Assembly Language. In Preliminary Proceedings of the Third Workshop on Types in Compilation (TIC 2000). Carnegie Mellon, CMU-CS-00-161, 2000.

    Google Scholar 

  9. Kathleen Fisher, John Reppy, and Jon Riecke. A Calculus for Compiling and Linking Classes. In ESOP Proceedings, March 2000.

    Google Scholar 

  10. Matthew Flatt, Shiram Khrishnamurthi, and Matthias Felleisen. Classes and Mixins. In POPL Proceedings, January 1998.

    Google Scholar 

  11. Philip W. L. Fong and Robert D. Cameron. Proof linking: An architecture for modular veri cation of dynamically-linked mobile code. In ACM SIGSOFT Sixth International Symposium on the Foundations of Software Engineering (FSE’98), November 1998.

    Google Scholar 

  12. Stephen N. Freund and J. C. Mitchell. A Formal Framework for the Java Bytecode Language and Verifier. In OOPSLA Proceeedings, November 1999.

    Google Scholar 

  13. Stephen N. Freund and J. C. Mitchell. A Type System for Object Initialization in the Java Bytecode Language. In OOPSLA Proceeedings, October 1998.

    Google Scholar 

  14. James Gosling, Bill Joy, and Guy Steele. The Java Language Speci cation. Addison-Wesley, August 1996.

    Google Scholar 

  15. Michael Hicks, Stephanie Weirich, and Karl Crary. Safe and Flexible Dynamic Linking of Native Code. In Preliminary Proceedings of the Third Workshop on Types in Compilation (TIC 2000). Carnegie Mellon, CMU-CS-00-161, 2000.

    Google Scholar 

  16. Atsushi Igarashi, Benjamin Pierce, and Philip Wadler. Featherweight Java: A minimal core calculus for Java and GJ. In OOPSLA Proceedings, November 1999.

    Google Scholar 

  17. Thomas Jensen, Daniel Le Metyayer, and Tommy Thorn. A Formalization of Visibility and Dynamic Loading in Java. In IEEE ICCL, 1998.

    Google Scholar 

  18. Christopher League, Zhong Shao, and Valery Trifonov. Representing Java Classes in a Typed Intermediate language. In ICFP Proceedings, September 1999.

    Google Scholar 

  19. Sheng Liang and Gilad Bracha. Dynamic Class Loading in the JavaTM Virtual Machine. In OOPSLA Proceedings, October 1998.

    Google Scholar 

  20. Tim Lindholm and Frank Yellin. The Java Virtual Machine. Addison-Wesley, 1997.

    Google Scholar 

  21. Tim Lindholm and Frank Yellin. The Java Virtual Machine. Addison-Wesley, 1999.

    Google Scholar 

  22. Zhenyu Qian. Least Types for Memory Locations in Java Bytecode. In FOOL 6. http://www.cs.williams.edu/_kim/FOOL/sched6.html, 1999.

  23. Zhenyu Qian, Allen Goldberg, and Alessandro Coglio. A Formal Speci cation of JavaTM Class Loading. In OOPSLA’2000, November 2000.

    Google Scholar 

  24. Vijay Saraswat. Java is not type-safe. Technical report, AT&T Research, 1997. http://www.research.att.comp/vj/bug.html.

  25. Raymie Stata and Martin Abadi. A Type System For Java Bytecode Subroutines. In POPL’98 Proceedings, January 1998.

    Google Scholar 

  26. Donald Syme. Proving Java Type Sound. In Jim Alves-Foss editor, Formal Syntax and Semantics of Java, volume 1523 of LNCS. Springer, 1999.

    Chapter  Google Scholar 

  27. Akihiko Tozawa and Masami Hagiya. Careful Analysis of Type Spoo ng. In Java Informationstage. Springer Verlag, 1999. An Abstract Model of Java Dynamic Linking and Loading 83

    Google Scholar 

  28. Joe Wells and Rene Vestergaard. Confluent Equational Reasoning for Linking with First-Class Primitive Modules. In ESOP Proceedings, March 2000.

    Google Scholar 

  29. Phillip Yelland. Re: Type soundness Issues in Java, May 1999. Types mailing list, at http://www:cis:upenn:edu=bcpierce=types=archives and then /current/msg00145.html.

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Drossopoulou, S. (2001). An Abstract Model of Java Dynamic Linking and Loading. In: Harper, R. (eds) Types in Compilation. TIC 2000. Lecture Notes in Computer Science, vol 2071. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45332-6_3

Download citation

  • DOI: https://doi.org/10.1007/3-540-45332-6_3

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42196-2

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics