Abstract
The development of Safety-Critical Java (SCJ) has introduced a novel programming paradigm designed specifically to make Java applicable to safety-critical systems. Unlike in a Java program, memory management is an important concern under the control of the programmer in SCJ. It is, therefore, not possible to apply tools and techniques for Java programs to SCJ. We describe a new technique that uses an abstract language and inference rules to guarantee memory safety. Our approach does not require user-added annotations and automatically checks programs at the source-code level, although it can give false negatives.
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
The Open Group: SCJ technology specification (v0.94). Technical report (2013)
Bollella, G., Gosling, J.: The Real-Time Specification for Java. Computer 33, 47–54 (2000)
Burns, A.: The ravenscar profile. ACM SIGAda Ada Letters 11, 49–52 (1999)
Cavalcanti, A., Wellings, A., Woodcock, J.: The Safety-Critical Java memory model: A formal account. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 246–261. Springer, Heidelberg (2011)
Tang, D., Plsek, A., Vitek, J.: Static checking of Safety-Critical Java annotations. In: Proceedings of Java Technologies for Real-time and Embedded Systems, pp. 148–154. ACM (2010)
Dalsgaard, A.E., Hansen, R.R., Schoeberl, M.: Private memory allocation analysis for SCJ. In: Proceedings of Java Technologies for Real-time and Embedded Systems, pp. 9–17. ACM (2012)
Woodcock, J.C.P., Davies, J.: Using Z—Specification, Refinement, and Proof. Prentice-Hall (1996)
Schoeberl, M.: Nested Private SCJ example (2013), http://www.jopwiki.com/Download
Marriott, C.: The formalisation of SCJmSafe  - Technical Report. The University of York, UK (2013), http://www-users.cs.york.ac.uk/marriott/
Marriott, C.: SCJ Memory Safety with SCJCircus  - Technical Report. The University of York, UK (2012), http://www-users.cs.york.ac.uk/marriott/
Zeyda, F., Lalkhumsanga, L., Cavalcanti, A., Wellings, A.: Circus models for Safety-Critical Java programs. The Computer Journal, bxt060 (2013)
Kalibera, T., Hagelberg, J., Pizlo, F., Plsek, A., Titzer, B., Vitek, J.: CDx: a family of real-time Java benchmarks. In: Proceedings of Java Technologies for Real-time and Embedded Systems, pp. 41–50. ACM (2009)
Nemer, F., Cassé, H., Sainrat, P., Bahsoun, J.P., De Michiel, M.: Papabench: a free real-time benchmark. WCET 4 (2006)
Wellings, A.: Concurrent and real-time programming in Java. Wiley (2004)
Kalibera, T., Parizek, P., Malohlava, M., Schoeberl, M.: Exhaustive testing of Safety-Critical Java. In: Proceedings of Java Technologies for Real-time and Embedded Systems, pp. 164–174. ACM (2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Marriott, C., Cavalcanti, A. (2014). SCJ: Memory-Safety Checking without Annotations. In: Jones, C., Pihlajasaari, P., Sun, J. (eds) FM 2014: Formal Methods. FM 2014. Lecture Notes in Computer Science, vol 8442. Springer, Cham. https://doi.org/10.1007/978-3-319-06410-9_32
Download citation
DOI: https://doi.org/10.1007/978-3-319-06410-9_32
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-06409-3
Online ISBN: 978-3-319-06410-9
eBook Packages: Computer ScienceComputer Science (R0)