A large number of the Agency satellites that have been flown include Ada83 code. This language is
preferred for critical software such as platform command and control. A large amount
of technology has been made available around Ada, such as HOOD-to-Ada code generators,
Ada83 compilers suitable for schedulability analysis, etc. The transition
from Ada83 to Ada95 has been prepared .
Ada is recommended as the integration language of critical software,
to build the core architecture that will host the various application components, be they written
in another language. A
Guide for the Use of Ada Programming Language in High Integrity Systems and the
ESA Ada Coding Standard are available on the right menu.
C and C++
The C language is used for payloads, for Digital Signal Processing software and for
small instruments. It is seen also on some platforms. It is also a language commonly used by automatic code generators.
C can also be used for less critical software, or when C is the core of the team experience.
C++ implements the flexibility and the complexity of object orientation, but with poor semantic control. Its use for space
on-board software must be considered with care. In particular, two documents are applicable for the use of C++:
Embedded C++ (EC++) standard, mandated in the ESA
C/C++ coding standard
,and implemented by the
for using object-oriented programs on-board aircraft produced by the Aerospace Vehicule Systems Institute.
Some information can also be found at the Object Oriented Technology in Aviation
Java looks appealing in particular for its property to easily accept the exchange of
program elements at run-time. However, concerns like performance,
suitability of the Java Virtual Machine for on-board software, needs further investigation and
prevents currently the use of Java in space segment projects without previous R&D experiments.
Several R&D experiments have been performed:
AERO project has used the
virtual machine to secure the real-time behaviour of a typical on-board application
Real Time Java Framework
project has ported the AOCS Framework to a real-time version of Java
project run by ESA trainees has started to port OBOSS in Java,
- A survey
of the real-time Java market (in March 2004) by an ESA trainee
- A port of the PERC and JRTK technology from Aonix on the Leon is starting and under evaluation
Last update: 2 August 2006