Many of the current high-level languages that have been called real-time programming languages, although well-suited for systems programming, are not suited for programming hard real-time systems. They provide no insurance that the constraints would be respected when executing the program.
There are some minimal requirements that should be satisfied by any language used for building hard real-time systems. These are related to the nature of execution of modules (or tasks) in time-constrained environment:
To meet that need was designed RT-ASLAN language [AUER 86]. It is an extension of ASLAN, a specification language for sequential systems. RT-ASLAN supports the specification of processes in a real-time system through arbitrary levels of abstraction. Time is maintained by a process that increments a time variable after each tick transition. The assertion language is built on first-order predictable calculus and employs the state machine approach to verification. A user specifies the invariants (i.e., assertions that hold in every state) and constraints (i.e., requirements between two consecutive states). From these abstract specifications, conjectures about the correctness of performance are generated.
Real-Time Euclid [KLIN 95] is a language designed specifically to address reliability and guaranteed schedulability issues in time-constrained environment. The philosophy of the language is that every exception detectable by the hardware or the software must have an exception handler clause associated with it. Moreover, the language definition forces every construct in the language to be time- and space-bounded. All programs in RT-Euclid can always be analyzed for guaranted schedulability of their processes.
Other real-time languages:
Erlang
Real-Time Java
Real-Time Concurrent ADA 95 | Home | Back to top |
|---|