Abstract
Safety-Critical Java (SCJ) is a version of Java for real-time programming that facilitates certification of implementations of safety-critical systems. It is the result of an international effort involving industry and academia. What we provide here is, as far as we know, the first formalisation of the SCJ model of memory regions. We use the Unifying Theories of Programming (UTP) to enable the integration of our theory with refinement models for object-orientation and concurrency. In developing the SCJ theory, we also make a contribution to the UTP by providing a general theory of invariants (of which the SCJ theory is an instance). Our results are a first essential ingredient to formalise the novel programming paradigm embedded in SCJ, and enable the justification and development of reasoning techniques based on refinement.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Barnes, J.: High Integrity Software: The SPARK Approach to Safety and Security. Addison-Wesley, Reading (2003)
Barnes, J.: Programming in Ada 95. Addison-Wesley, Reading (2005)
Burdy, L., et al.: An overview of JML tools and applications. Software Tools for Technology Transfer 7(3), 212–232 (2005)
Burns, A.: The Ravenscar Profile. Ada Letters XIX, 49–52 (1999)
Butterfield, A., Sherif, A., Woodcock, J.C.P.: Slotted-circus. In: Davies, J., Gibbons, J. (eds.) IFM 2007. LNCS, vol. 4591, pp. 75–97. Springer, Heidelberg (2007)
Cavalcanti, A.L.C., Wellings, A., Woodcock, J.C.P.: The Safety-Critical Java Mission Model: a formal account – Extended Version. Technical report (2011), http://www-users.cs.york.ac.uk/~alcc/CWW11b.pdf
Chen, Y., Sanders, J.: Compositional Reasoning for Pointer Structures. In: Yu, H.-J. (ed.) MPC 2006. LNCS, vol. 4014, pp. 115–139. Springer, Heidelberg (2006)
Haddad, G., Hussain, F., Leavens, G.T.: The Design of SafeJML, A Specification Language for SCJ with Support for WCET Specification. In: JTRES. ACM, New York (2010)
Harwood, W., Cavalcanti, A.L.C., Woodcock, J.C.P.: A Theory of Pointers for the UTP. In: Fitzgerald, J.S., Haxthausen, A.E., Yenigun, H. (eds.) ICTAC 2008. LNCS, vol. 5160, pp. 141–155. Springer, Heidelberg (2008)
Hoare, C.A.R., Jifeng, H.: Unifying Theories of Programming. Prentice-Hall, Englewood Cliffs (1998)
Hoare, C.A.R., Jifeng, H.: A trace model for pointers and objects. Programming methodology, pp. 223–245 (2003)
Jifeng, H.: UTP semantics for web services. In: Davies, J., Gibbons, J. (eds.) IFM 2007. LNCS, vol. 4591, pp. 353–372. Springer, Heidelberg (2007)
Locke, D., et al.: Safety Critical Java Specification. The Open Group, UK (2010), jcp.org/aboutJava/communityprocess/edr/jsr302/index.html
Oliveira, M.V.M., Cavalcanti, A.L.C., Woodcock, J.C.P.: A UTP Semantics for Circus. Formal Aspects of Computing 21(1-2), 3–32 (2009)
Santos, T.L.V.L., Cavalcanti, A.L.C., Sampaio, A.C.A.: Object-Orientation in the UTP. In: Dunne, S., Stoddart, B. (eds.) UTP 2006. LNCS, vol. 4010, pp. 18–37. Springer, Heidelberg (2006)
Sherif, A., et al.: A process algebraic framework for specification and validation of real-time systems. Formal Aspects of Computing 22(2), 153–191 (2010)
Tang, D., Plsek, A., Vitek, J.: Static Checking of Safety Critical Java Annotations. In: JTRES.ACM, New York (2010)
Tofte, M., Talpin, J.-P.: Region-based memory management. Information and Computation 132(2), 109–176 (1997)
Wellings, A.: Concurrent and Real-Time Programming in Java. Wiley, Chichester (2004)
Wellings, A., Kim, M.: Asynchronous event handling and safety critical Java. In: JTRES. ACM, New York
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cavalcanti, A., Wellings, A., Woodcock, J. (2011). The Safety-Critical Java Memory Model: A Formal Account. In: Butler, M., Schulte, W. (eds) FM 2011: Formal Methods. FM 2011. Lecture Notes in Computer Science, vol 6664. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21437-0_20
Download citation
DOI: https://doi.org/10.1007/978-3-642-21437-0_20
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21436-3
Online ISBN: 978-3-642-21437-0
eBook Packages: Computer ScienceComputer Science (R0)