Rationale for Ada 2005: Object oriented model
RUSTOPBACKNEXT
ENG |
1. Overview of changes
@ The WG9 guidance document [1] identifies very large complex systems as a major application area for Ada. It says "The main purpose of the Amendment is to address identified problems in Ada that are interfering with Ada's usage or adoption, especially in its major application areas (such as high-reliability, long- lived real-time and/or embedded applications and very large complex systems). The resulting changes may range from relatively minor, to more substantial." Object oriented techniques are of course important in very large systems in providing flexibility and extensibility. The document later asks the ARG to pay particular attention to Improvements that will remedy shortcomings in Ada. It cites in particular improvements in OO features, specifically, adding a Java-like interface feature and improved interfacing to other OO languages. @ Ada 2005 does indeed make many improvements in the object oriented area. The following Ada Issues cover the relevant changes and are described in detail in this paper:Rationale for Ada 2005: Object oriented model
@ENGRUSTOPBACKNEXT1. Обзор изменений
@ Документ [1] руководства WG9 идентифицирует очень большие сложные системы как главную прикладную область Ады. В нём говорится, что "Основная цель Поправки состоит в том, чтобы обратиться к идентифицированным проблемам Ады с которыми сталкиваются пользователи, особенно в её главных прикладных областях (таких как высоко-надёжные, долго - живущие и/или встраиваемые приложения реального времени и очень большие сложные системы). Получающиеся изменения распологаются в порядке от относительно незначительных, к более существенным." Объектно-ориентированные средства несомненно важны в очень больших системах для обеспечения гибкости и расширяемости. В последующем документе заявлено что ARG обратил особое внимание на Усовершенствования которые исправят недостатки в Аде. Они включают усовершенствования специфические для OOП, добавление java-подобного интерфейса и улучшенние связи с другими языками OOП.
@ Ада 2005 действительно получила много усовершенствований в объектно-ориентированной области. Перечислим эти изменения затрагиваемые в этой статье:
@ Эти изменения могут быть группированы следующим образом.
@ Сначала мы обсудим появление в Аде 2005 трёх новых зарезервированных слова, interface, overriding и synchronized. Так получилось, что все они используются в различных аспектах модели OOП и, таким образом, мы обсуждаем их в этой статье (284).
@ Введена префиксная нотация при вызове процедур в формате Obj.Op, используемая во многих других языках (252, 407). Это должно сделать Аду более легкой для использования, улучшить её имидж и связь с другими языками.
@ Огромное усовершенствование - добавление java-подобного интерфейса, который разрешает множественное наследование (251, 396, 401, 411, 419). Связанное с ним изменение - введение категории нулевых процедур подобных абстрактным операциям (348).
@ Расширение типа теперь разрешено на более вложенном уровне чем родительский (344). Важное последствие этого состоит в том, что контролируемые (controlled) типы больше не обязательно должны быть объявлены на библиотечном уровне.
@ Интересная доработка - введение настраиваемых функций для динамического создания объектов любого типа (260, 400, 405, 417). Их иногда называют функциями-фабриками объектов или просто фабриками объектов.
@ Дополнительный синтаксис разрешает пользователю явно определить, будет ли операция иметь 'заменяемый' (overriding) тип или нет (218). Это позволяет обнаруживать досадные ошибки ещё на этапе трансляции, которые иначе бывает трудно найти во время выполнения. Небольшое изменение к правлам замены (overriding) - теперь функция с управляющим результатом не "go abstract", если расширение фактически нулевое (391). Наконец, мы обсудим небольшое, но полезное изменение к правилам перегрузки (overloading); в некотором смысле оно не относится к OOП вообще, а касается правил для недиспетчерируемых (nondispatching) операций, но его удобно обсудить здесь (310).
@ Имеются ряд других усовершенствований Ады 2005 связанных с ООП, таких как ссылочные (access) типы, видимость и настраиваемые (generic) средства. Они будут описаны в последующих разделах.
2010-10-26 14:41:45
. .