Real-Time Systems Development

Over the years, there have been many programming languages developed for real-time applications. A set of criteria has emerged to compare their facilities and suitability for the role. With the central importance of compilers in the production of code, their performance must also be carefully assessed. There has been a change in the field of real-time systems from 'hard' embedded applications coded in Ada or C, to distributed, Internet-enabled products where Java may be more suitable.
Choosing a language suitable for real-time applications is complex and time consuming. In most circumstances, the implementation language adopted for your project is never really in question: you use what is available. Taking time to browse the shelves for a new language, or even a new compiler, is a rare luxury which few project teams can afford. Perhaps a less satisfactory recent development has been the growing domination of commercial suppliers, such as Microsoft and Sun, who effectively make decisions on our behalf by determining what compilers will be provided with their operating systems. The heroic activities of Richard Stallman and the GNU contributors can only go some way to mitigating this undesirable situation which increasingly reduces programmers' choice.
While designing and implementing a language suitable for real-time is not a project to be undertaken lightly, as can be confirmed by reading the historic articles concerning the birth of Ada, over the years several have appeared: RTL/2, CORAL66, CHILL, Modula/2, OCCAM, Esterel, realtime Euclid, Erlang and of course...