Rationale for Ada 2005: Introduction
RUSTOPBACKNEXT
ENG |
3. Overview of changes
@ It would be tedious to give a section by section review of the changes as seen by the Reference Manual language lawyer. Instead, the changes will be presented by areas as seen by the user. There can be considered to be six areas:Rationale for Ada 2005: Introduction
ENGRUSTOPBACKNEXT3. Обзор изменений
@ Было бы утомительно делать обзор изменений подобно разделу формальных описаний правил языка как в RM. Вместо этого изменения будут разбиты на шесть тем:
@ Конечно, упомянутые выше области в разделах 2 и 3 могут быть классифицированы как усовершенствования модели OOП. Но имеется также много не упомянутых здесь изменений, которые будут представлять интерес для экспертов в различных областях. Они затрагивают такие темы как потоки, функции фабрики объектов, тонкие аспекты правил разрешения перегрузки, и классификации пакетов с pragma Pure и Preelaborate.
@ Проницательный читатель заметит, что эти изменения весьма обширны, и у каждого из них есть важная роль в создании более полезной Ады. Действительно, много других изменений были отклонены как действительно ненужные. Они включают старые анахронизмы такие как спецификаторы in out и out параметров функций (тьфу), расширяемые типы перечисления (абзадз), значения по умолчанию для всех настраиваемых параметров (отстой), и определяемые пользователем символы операций (кошмар).
@ Перед рассмотрением этих шести областей немного подробней стоит поговорить о совместимости с Адой 95. Рекомендации ARG дали разумную свободу в этой области. Конечно, самый плохой вариант несовместимости это когда правильная программа на Аде 95 продолжает быть правильной на Аде 2005, но делает что - то другое. Полагается, что серьезная несовместимость такого рода никогда не будет возникать. Есть однако, незначительные несовместимости относительно возбуждения исключений и с ссылочными параметрами (они обсуждаются в Разделе 3.2).
@ Однако, несовместимость вида, когда правильная Ада 95 программа не в состоянии правильно компилироваться в Аде 2005 терпима, если она не встречается слишком часто. Иногда такие несовместимости возможны. Самая очевидная причина - введение еще трех зарезервированных слов: interface, overriding, и synchronized. Таким образом, если существующая программа на Аде 95 использует любое из них в качестве идентификатора, тогда эта программа будет нуждаться в модификации. Замена подобных идентификаторов на другие легко решает эту проблему. Однако, чувствовалось, что это было уродливым, запутывающим, и склонным к представлению противных ошибок. В любом случае идентификаторы Overriding и Synchronized, вероятно, будут редки и хотя Interface - более вероятный идентификатор. Однако,иметь его и как идентификатор и как ключевое слово в одной и той же самой программе было бы противно. Отметим также, что прагма Interface, которую многие компиляторы всё еще поддерживают с Ады 83 (хотя в Аде 95 она не упоминается вообще) помещена в Приложение J как анахронизм.
2010-10-24 00:26:52
. .