On the connection between functional programming languages and real-time Java scoped memory

  • Authors:
  • Delvin C. Defoe;Rob LeGrand;Ron K. Cytron

  • Affiliations:
  • Rose-Hulman Institute of Technology, Terre Haute, Indiana;Washington University in St. Louis, St. Louis, Missouri;Washington University in St. Louis, St. Louis, Missouri

  • Venue:
  • JTRES '07 Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Java has recently joined C and C++ as a relatively high-level language suitable for developing real-time applications. Java's garbage collection, while generally a useful feature, can be problematic for real-time applications if collection occurs with unpredictable frequency and latency. The Real-Time Specification for Java™ (RTSJ) incorporates a scoped-memory model, akin to regions, that is not subject to garbage collection. However, applications are subject to strict rules concerning how objects can reference each other in scoped memory. Unfortunately, almost all extant Java code, including Java's vast and useful runtime libraries, will not execute properly in scoped-memory areas without significant modification. In this paper, we show that programs written in a pure functional programming language can be executed in a provably safe manner using scoped memory in RTSJ. This new connection allows extant implementations of important abstract data types to migrate safely to RTSJ. We also explore the effect of RTSJ's referencing rules on the asymptotic, real-time behavior of some abstract data types.