The answer to this question mentions the use of Ada-programmed applications on the ISS.

Ada was developed for the US DoD to replace a plethora of computer languages (some 465), for mission-critical applications. It has a strong ability for fault correction and bug identification, and hence is ideally suited to space applications as well.

What other space applications, projects and agencies are using the Ada programming language?


What other space applications, projects and agencies are using the Ada programming language?

In the US, old stuff such as the Delta rockets, the Atlas rockets, and the TDRSS ground terminal (but this is being switched to C, C++, C#, and Java). There might be new development, but it's mostly stuff you (and I) cannot know about because it's classified. New development is mostly in mainline languages such as C, C++, C#, and Java, and also specialized tools such as Matlab Simulink.

One reason for the shift away from Ada was that the Ada mandate came out too soon. Some projects that foundered because of lack of tools switched to C. The managers of these projects remember that Ada experience. The memories are not fond.

Another reason was demographics. Finding Ada programmers, good or bad, has always been a bit tough. It's much easier finding C or C++ programmers, and this gives managers the opportunity to select for quality.

Yet another is that many of the developers of tools that initially targeted Ada (e.g. Rational) found that their tools worked quite nicely with other languages. Because of the demographics, improvements and new features were first made to the mainline language versions before extending them to Ada. This added even more impetus to switch from Ada.

Ada appears to be more widely used in Europe than in the U.S. One reason is that the chief architect of Ada was Dr. Jean Ichbiah at CII-Honeywell-Bull in France. The Ada mandate was applied in Europe as well as in the U.S., but the timing was a bit better there. The tools had matured, and many of the tools were developed in Europe by the company founded by Dr. Ichbiah. A recent example is the flight software for the GOCE satellite.

A not so good example is the flight software for the maiden flight of the Ariane 5 rocket. This is perhaps the most infamous of all software errors. Ada has a number of safety features built into the language. (Compare with C, where the standard has twelve pages that summarize the undefined behaviors built into the language. Compare with C++, where the undefined behaviors are so numerous that they don't even list them.) Those Ada safety features can have a significant performance cost, and because of this, Ada also supplies the ability to selectively disable those safety features.

In the case of Ariane 5 flight 501, the software engineers reused Ariane 4 flight software, where safety features relating to overflow in some of the GNC software was disabled. The Ariane 5 had considerably more thrust than did the Ariane 4. This increased acceleration made the accelerometer data overflow on conversion to an integer. This in turn resulted in hardware exceptions, which in turn made the GNC software come to a halt, which in turn resulted in the destruction of the vehicle.

  • 1
    $\begingroup$ Fantastic answer. Ada is a sturdy language, still in use in a lot of applications, but it is hard to support. And, yes, in most cases it is being replaced by C based languages. $\endgroup$
    – called2voyage
    Mar 31 '16 at 18:55
  • 6
    $\begingroup$ I myself learned and worked in Ada, from the very late 1980s to the early 1990s. This was sandwiched between working in Lisp in the mid to late 1980s and then working in C starting in the mid 1990s. My memories of Ada are not fond ones. Ada is the ultimate bondage and discipline language. $\endgroup$ Mar 31 '16 at 19:06
  • 4
    $\begingroup$ I too had some experience with it, when I was briefly working on a space station simulator. I was not - at all - impressed. However, I came from a FORTRAN / assembly language era. $\endgroup$ Mar 31 '16 at 21:42
  • 5
    $\begingroup$ @OrganicMarble - I used those languages before I learned Lisp. Lisp was WOW. C was ok, maybe wow, but not as cool as Lisp. Ada was -- words escape me. I'll stick with your "not impressive". $\endgroup$ Mar 31 '16 at 22:49
  • 1
    $\begingroup$ Yeah. After a relatively sane though rapidly obsolescing FORTRAN experience in the shuttle simulator, I was in no way prepared for the mish-mash of "modern" languages and "automatic software development tools" that was the station simulator. $\endgroup$ Apr 1 '16 at 0:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.