An Approach to Platform Independent Real-Time Programming:
(1) Formal Description
(2) Practical Application

Jozef Hooman and Onno van Roosmalen

Real-Time Systems, Journal of Time-Critical Computing Systems, Volume 19, Number 1, 2000,
(1) pages 61 - 85
(2) pages 87 - 112

ABSTRACT (1)

A method for extending programming languages with timing constructs is proposed. It enables the specification of timing constraints in programs. The approach is not language specific and the extension can be included in many existing programming languages. With the extension it is possible to write real-time program components that can be proven correct independently of the properties of the machine that is used for their execution. It therefore provides a similar abstraction from the execution platform as is normal in non-real-time programming. The presented approach distinguishes two phases in system construction: (1) a platform-independent programming phase that includes the expression of timing requirements, and (2) an implementation phase where all platform dependencies are addressed. The latter only differs from a normal compilation in the sense that a feasible schedule must be found to execute the program.

ABSTRACT (2)

In a previously published companion paper a method for extending programming languages with timing constructs was proposed. It was shown that the extension enables the construction of real-time programs that can be proven correct independently of the properties of the machine that is used for their execution. It also yields a strict division of system construction into two phases: (1) a platform-independent programming phase that includes the expression of timing requirements, and (2) an implementation phase where all platform dependencies are addressed. In this second paper the approach is illustrated using an example problem often quoted in the literature: the mine-pump system. The two mentioned phases are described in detail for this example. First, a program is obtained in a systematic way. Then, realizations of the program under various schemes for distribution and scheduling are considered and analyzed. A comparison with other approaches to real-time programming is given.

A preliminary version of this work appeared as
A Programming-Language Extension for Distributed Real-Time Systems
Computing Science Reports, Eindhoven University of Technology, Report 97/02, pp. 50, 1997.