Chad Perrin wrote: > Ada, on the other hand -- for circumstances in which it is most commonly > employed (embedded systems, et cetera), it does indeed tend to kick C's > behind a bit. That may have more to do with compiler optimization than > language spec, though. Language specs mean a good deal, actually. C semantics (except in C99, /if/ the restrict keyword is consistently used by the coder and seriously implemented by the optimizer) lead to unnecessarily slow object code in many common cases. Ada's in-language support of tasking also makes it easier for the compiler to know whether a segment of code will or will not be multithreaded, which allows the compiler to optimize more aggressively in many instances. These are two of the reasons that so many C compilers include an "optimize beyond safe limits" switch. Indeed, many aspects of C's design cause optimization problems. 0-terminated strings were dandy on 8-bit processors, but the S/370 actually had to add some new opcodes just to make strcpy and strcmp tolerably fast. Ada has another advantage in that the language design strongly encourages designing global optimization into the compiler, whereas the C tradition of make files tends to discourage it. -- John W. Kennedy "The blind rulers of Logres Nourished the land on a fallacy of rational virtue." -- Charles Williams. "Taliessin through Logres: Prelude"