Moved comments here from main text. Reorganized into threads.--buzco
Really only used anymore in US Department of Defense stuff. Oh yeah, and Ada95, the most popular Ada compiler actually translates your code to C, then compiles the C. I love that.
- ----
- Ada95 is not a compiler, it is a version of Ada, the most recent version, I believe. I am also skeptical of the idea that Ada is "really only used anymore" in the US DOD.
- ----
- Do you mean GNAT (GNU Ada Translater) when writing "Ada95"? This is no translater to C any longer but a frontend to the GNU Compiler Collection, as the C or the Java frontends are. By the way, it is _not_ used only by DOD staff and it is a highly capable language. In contrast to the popular misbelief it produces rather fast code (comparable to C).
- ----
- Make that C, C++, Forth, FORTRAN, Java, Objective C and Pascal front ends! May be others! --buzco
- ----
- The team behind Gnat used in the beginning a proprietary Ada compiler and used that to build an compiler which implemented a subset of Ada big enough to support building itself. Now the team left that proprietary compiler in the dust. After that it was a simple matter of extending that they already have while using the base to build the next more evolved version.
- Gnat until 3.11 or so (ca 1999) needed to generate a C stub for the sake of elaboration but that liability is no more !!
- GNAT never was a Ada-to-C translator !
- cfront was a c++-to-c translator !
Ada is used in a few compiler theory books because of its comprehensiveness and elegance.
Should there be a section on primary users of a language like ada and how their requirements affected the language?
Ada has some tastes of Pascal still but not one of the bad ones. --Janet Davis
(list of possible topics moved from main page) What about
- how Ada tied into formal specification languages?
- how Ada is very stongly typed
- packages in Ada
- concurrency support
- real time/embedded system support ???
- how Ada suffered from design by DOC committee/specifications and required super-fast hardware for compilation/debugging.
- ?? others
I think the Steelman language requirements page would be better as part of this entry, or maybe a subpage, as it isn't really of interest except in the context of Ada. Anyone agree/disagree? --Matthew Woodcraft
I don't think the note re the Ariane 5 disaster is quite correct. As I understand it, the fault was the re-use of a part and its software, which had worked properly on the Ariane 4. However, the more powerful engines on the Ariane 5 gave a thrust/velocity/displacement that was out of the part's design range, and the part detected that fact -- correctly, according to its original design. But since it thought it had a number that failed the sanity check it went into debug mode -- again according to design -- and started dumping debug data onto the rocket's control bus. So unless my understanding of the problem is wrong, the problem was a simple failure to review a part's specifications, and nothing at all to do with the programming language or compilation switches. -- B.Bryant
- That's basically my understanding of the situation, except that 'detected that fact' is a bit strong -- it seems that the error was a CPU-level floating point trap, with no high-level-language handler. The Ada task in question didn't actually do anything useful after takeoff, so if the exception hadn't been explicitly suppressed the rocket would have been safe.
- Certainly that bit of the article could do with improvement, but some mention is probably appropriate in this article (if it were taken out someone would just add it in again). -- Matthew Woodcraft
Re: "design by DOC committee"
- Ada was not "designed by committee", each version (Ada and Ada-95) had ONE designer that had final say on any feature or change to the language. Its design is far cleaner and more organized than many other languages. -- RTC 01:38 2 Jul 2003 (UTC)