No, sorry. Ada is efficiently implemented. The very first Ada compilers, like most first compilers for a language, were not very efficient, but they came out in the early 1980s. Many of todays' Ada compilers are extremely efficient. Indeed, there's a documented case where an Ada compiler did better than experienced assembly language programmers [Elam 1992].

Ada compilers can generate code comparable to C, C++, and Pascal compilers. Because of the way Ada was designed, Ada compilers can sometimes generate better code because they have more information that can be used for code optimization. For example, in a large number of cases an Ada compiler can do better than a C or C++ compiler can while passing parameters, because an Ada compiler knows when aliasing is not possible.

Some Ada compilers, such as the GNAT and DEC VAX Ada compilers, use the same (back-end) code generators as many other languages, and on those systems the Ada compiler's results should be at least as good as for other languages.

One paper that discusses this further is ``C vs. Ada: Arguing Performance Religion'' by David Syiek [1995].

It is true that Ada run-time error-checking capabilities require some time and space, but they can be selectively or completely turned off. Since Ada compilers can often detect and optimize these away, they often do not have as much of a performance hit as you might expect even when left in.

You may go back to the question

You may also:

NEXT     Skip to the next section.

OUTLINE  Go up to the outline of lesson 1

David A. Wheeler (dwheeler@dwheeler.com)

The master copy of this file is at "http://www.adahome.com/Tutorials/Lovelace/s1s1r3.htm".