Skip to main content

A Programmer Friendly Modular Definition of the Semantics of Java

  • Chapter
  • First Online:
Formal Syntax and Semantics of Java

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

Abstract

We propose in this paper a definition of the semantics of Java programs which can be used as a basis for the standardization of the language and of its implementation on the Java Virtual Machine. The definition provides a machine and system independent view of the language as it is seen by the Java programmer. It takes care to directly reflect the description in the Java language reference manual so that the basic design decisions can be checked by standardizers and implementors against a mathematical model.

Our definition is the basis for a related definition we give in a sequel to this paper for the implementation of Java on the Java Virtual Machine as described in the language and in the Virtual Machine reference manuals.

A preliminary version of this paper has been presented to the IFIP WG 2.2 Meeting in Graz (22.-26.9.1997) and to the Workshop on Programming Languages in Avendorf/Fehmarn (24.-26.9.1997) [12].

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. Bella and E. Riccobene. Formal analysis of the Kerberos authentification system. Journal of Universal Computer Science (J.UCS), 1997.

    Google Scholar 

  2. E. Börger. Why use evolving algebras for hardware and software engineering. In SOFSEM’95 22nd Seminar on Current Trends in Theory and Practice of Informatics, Springer LNCS 1012, 1995.

    Google Scholar 

  3. E. Börger, C. Beierle, I. Durdanovic, U. GlÄsser, and E. Riccobene. Refining abstract machine specifications of the steam boiler control to well documented executable code. In Formal Methods for Industrial Applications. Specifying and Programming the Steam-Boiler Control, Springer LNCS State-of-the-Art Survey 1165, 1996.

    Google Scholar 

  4. E. Börger and G. Del Castillo. A formal method for provably correct composition of a real-life processor out of basic components (the APE100 reverse engineering project). In Proc. First IEEE International Conference on Engineering of Complex Computer Systems (ICECCS’95). IEEE Computer Society Press, 1995.

    Google Scholar 

  5. E. Börger and I. Durdanovic. Correctness of compiling Occam to transputer code. The Computer Journal, 39, 1996.

    Google Scholar 

  6. E. Börger, I. Durdanovic, and D. Rosenzweig. Occam: Specification and compiler correctness. Part I: Simple mathematical interpreters. In E.-R. Olderog, editor, Proc. PROCOMET’94 (IFIP Working Conference on Programming Concepts, Methods and Calculi), 1994.

    Google Scholar 

  7. E. Börger, U. GlÄsser, and W. Müller. Formal definition of an abstract VHDL’93 simulator by EA-machines. In C. Delgado Kloos and P.T. Breuer, editors, Formal Semantics for VHDL. Kluwer Academic Publishers, 1995.

    Google Scholar 

  8. E. Börger and S. Mazzanti. A practical method for rigorously controllable hardware design. In ZUM’97: The Z Formal Specification Notation, Springer LNCS 1212, 1997.

    Chapter  Google Scholar 

  9. E. Börger and L. Mearelli. Integrating ASMs into the software development lifecycle. Journal of Universal Computer Science, Special ASM Issue, 3.5, 1997.

    Google Scholar 

  10. E. Börger and D. Rosenzweig. A mathematical definition of full Prolog. Science of Computer Programming, 24, 1995.

    Google Scholar 

  11. E. Börger and D. Rosenzweig. The WAM-definition and compiler correctness. In L. Plümer C. Beierle, editor, Logic Programming: Formal Methods and Practical Applications. Elsevier Science B.V./North-Holland, 1995.

    Google Scholar 

  12. E. Börger and W. Schulte. A programmer friendly modular definition of the semantics of Java. In R. Berghammer and F. Simon, editors, Programming Languages and Fundamentals of Programming. Technical report, Christian Albrechts Universit Ät Kiel, Institut für Informatik und Praktische Mathematik, 1997.

    Google Scholar 

  13. E. Börger and W. Schulte. Defining the Java Virtual Machine as platform for provably correct Java compilation. In J. Gruska, editor, 23rd International Symposium on Mathematical Foundations of Computer Science, Brno, Czech Republic, August 24–28, 1998, Springer LNCS, to appear, 1998.

    Google Scholar 

  14. E. Börger and W. Schulte. A modular design for the Java VM architecture. In E. Börger, editor, Architecture Design and Validation Methods. Springer Verlag, to appear, 1998.

    Google Scholar 

  15. P. Cenciarelli, A. Knapp, B. Reus, and M. Wirsing. An event-based structural operational semantics of multi-threaded Java. 1998. This volume.

    Google Scholar 

  16. R. M. Cohen. Defensive Java virtual machine version 0.5 alpha release. manuscript, Computer Logic International.

    Google Scholar 

  17. G. Del Castillo, I. DurdanoviÇ, and U. GlÄsser. An Evolving Algebra abstract machine. In H. Kleine Büning, editor, Computer Science Logic (CSL’95), Springer LNCS 1092, 1996.

    Google Scholar 

  18. S. Drossopoulou and S. Eisenbach. Java is type safe-probably. 1998. This volume.

    Google Scholar 

  19. J. Gosling, B. Joy, and G. Steele. The Java(tm) Language Specification. Addison Wesley, 1996.

    Google Scholar 

  20. Y. Gurevich. Evolving algebras 1993: Lipari guide. In E. Börger, editor, Specification and Validation Methods. Oxford University Press, 1995.

    Google Scholar 

  21. J. Huggins. Kermit: Specification and verification. In E. Börger, editor, Specification and Validation Methods. Oxford University Press, 1995.

    Google Scholar 

  22. G. Kahn. Natural semantics. Technical report, INRIA Rapport de Recherche No. 601, Février 1987.

    Google Scholar 

  23. T. Lindholm and F. Yellin. The Java(tm) Virtual Machine Specification. Addison Wesley, 1996.

    Google Scholar 

  24. B. Meyer. Object-oriented Software Construction. Prentice Hall, 1988.

    Google Scholar 

  25. P. D. Mosses. Action Semantics. Cambridge University Press, 1992.

    Google Scholar 

  26. Th. Nipkow and D. von Oheimb. Javalight is type-safe-definitely. 1998. This volume.

    Google Scholar 

  27. G. Plotkin. A structural approach to operational semantics. Technical report, Internal Report, CS Department, Aarhus University, DAIMI FN-19, 1997.

    Google Scholar 

  28. A. Poetzsch-Heffter. Prototyping realistic programming languages based on formal specifications. Acta Informatica, 34, 1997.

    Google Scholar 

  29. K. Popper. Logik der Forschung. 1935.

    Google Scholar 

  30. Z. Qian. A formal specification of Java(tm) Virtual Machine for objects, methods and subroutines. This volume, 1998.

    Google Scholar 

  31. V. Saraswat. Java is not type-safe. manuscript, AT& Research, New York, 1997.

    Google Scholar 

  32. G. Schellhorn and W. Ahrendt. Reasoning about Abstract State Machines: The WAM Case Study. Journal of Universal Computer Science (J.UCS), 1997.

    Google Scholar 

  33. E.G. Sirer, S. McDirmid, and B. Bershad. Kimera: A Java system security architecture. Web pages at: http://www.kimera.cs.washington.edu/, 1997.

  34. R. Stata and M. Abadi. A type system for Java bytecode subroutines. In Proceedings of the 25th Annual SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1998.

    Google Scholar 

  35. D. Syme. Proving Java type soundness. 1998. This volume.

    Google Scholar 

  36. Ch. Wallace. The semantics of the C++ programming language. In E. örger, editor, Specification and Validation Methods. Oxford University Press, 1995.

    Google Scholar 

  37. Ch. Wallace. The semantics of the Java programming language: Preliminary version. Technical report, University of Michigan, Electrical Engineering and Computer Science, Ann Arbor, 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Börger, E., Schulte, W. (1999). A Programmer Friendly Modular Definition of the Semantics of Java. In: Alves-Foss, J. (eds) Formal Syntax and Semantics of Java. Lecture Notes in Computer Science, vol 1523. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48737-9_10

Download citation

  • DOI: https://doi.org/10.1007/3-540-48737-9_10

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66158-0

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics