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.