Увы, это неверно. Язык Ada действительно эффективно реализован. Самые первые компиляторы, как и большинство первых компиляторов других языков, были не достаточно эффективны, но они вышли из употребления еще в начале 80-х. Большинство из современных компиляторов Ada являются сверхэффективными. И действительно, известен случай, когда компилятор Ada справился с заданием лучше, чем опытные программисты на ассемблере. [Elam 1992] Компиляторы Ada могут генерировать код, сравнимый с кодом, генерируемым компиляторами C, C++ и Pascal. Вследствие особенностей реализации Ada, компилятор может иногда генерировать еще лучший код, так как он владееет большим количеством информации, используемой для оптимизации. Например, в большинстве случаев при передаче параметров компилятор Ada ведет себя лучше, чем C или C++, так как ему известно, в каких случаях нежелательно использование указателей.

Некоторые компиляторы Ada, такие как GNAT и DEC VAX, используют те же генераторы кода, что и другие языки, и на таких системах результат работы компилятора Ada как минимум, не хуже, чем любого другого языка.

Одна из работ, в которой это рассмотрено более подробно - ``C vs. Ada: Arguing Performance Religion'' написанная David Syiek [1995].

Действительно, способность Ada проверять ошибки во время исполнения требует некоторых затрат времени и памяти, но каждую из этих проверок в отдельности, или все одновремено, можно отключить. Так как зачастую компилятор Ada может выяснить необходимость той или иной проверки и удалить ее при оптимизации, эти проверки нет оказывают такого значительного влияния на производительность, как можно было бы ожидать, даже если они присутствуют.

Вы можете вернуться к вопросу

Вы можете также:

NEXT Перейти к следующему разделу.

OUTLINE Вернуться к содержанию Урока 1

David A. Wheeler ([email protected])

Перевод:   Общая редакция перевода:

Исходная копия этого документа находится по адресу "http://www.adahome.com/Tutorials/Lovelace/s1s1r3.htm".

Исходная копия перевода размещена на сайте http://www.ada-ru.org