Hello all ,
Just out of interest , we know there's a lot of programming involved in the making of a satellite . Which languages are they written in ?
Hello all ,
Just out of interest , we know there's a lot of programming involved in the making of a satellite . Which languages are they written in ?
I can tell you that the Mars Rover had at least some C++ code (PDF Link); They used Rogue Wave's Tools.h++ library.
As with any other software endeavour, the language used to perform some function in a satellite will be the most appropriate language given the various business and IT drivers in effect.
You'll find examples of different languages being used in aerospace if you look around. Given your question, you probably want to have a look at Ada, which is often referred to as being used in 'real-time systems', a news article so that effect is here, some non-defence users are listed here.
Since they have a custom architecture connected to miscellaneous I/O peripherals they should be programmed in C/C++ or directly in ASM for better performance and optimizations..
They are fully custom so I don't think there are other approaches to the problem, think also that they have to use really low energy (and must be charged by sun) so they tend to have not so powerful hardware and must be REALLY optimized (that's why ASM is the way). You shouldn't waste any single CPU cycle!
Lastly the kind of devices attached to a satellite are really uncommon so I think it's difficult to use any kind of standard API to interface (like RS232 or so on), I think they're different for every case.
I wouldn't surprise myself to find many old chips like Z80s doing the dirty work on a satellite just because they're powerful enough to do simple tasks although their 8bit bus!
C, C++ and Ada are mentioned here (yes, the authors can't capitalize "Ada"). The C code may be written by hand or generated from Scade.
Aside from the possibilities that have already been mentioned, at least one spacecraft was controlled by software written in Lisp for part of its flight.
The NASA satellite missions I've been involved with all used assembly language for the onboard software. There is a strong preference at NASA to use flight software with heritage -- reusing components (both hardware and software) with a proven successful history on previous missions. So rather than using compiled code on the latest, most powerful processors, we often end up using hand-coded assembly on wimpy, but tried-and-true, processors. For example, the THEMIS project, built in 2003 and launched in 2007, runs on Intel 8085 processors, with hand-coded assembly modules with heritage from previous missions like WIND, CLUSTER, and STEREO.