Rationale for Ada 2005: Predefined library

RUSTOP
BACKNEXT

ENG

1. Overview of changes

@ The WG9 guidance document [1] 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." Certainly one of the stated advantages of languages such as Java is that they come with a huge predefined library. By contrast the Ada library is somewhat Spartan and extensions to it should make Ada more accessible.

@ The guidance document also warns about secondary standards. Its essence is don't use secondary standards if you can get the material into the RM itself. And please put the stuff on vectors and matrices from ISO/IEC 13813 [2] into the RM. The reason for this exhortation is that secondary standards have proved themselves to be almost invisible and hence virtually useless.

@ We have already discussed the additional library packages in the area of tasking and real time in a previous paper. The following Ada issues cover the relevant changes in other areas and are described in detail in this paper:

@ These changes can be grouped as follows.

@ First the container library is rather extensive and merits a whole paper alone (302). We only refer to it here for completeness.

@ New child packages of Calendar provide extra facilities for manipulating times and dates (351, 427).

@ There are additional packages in the core library providing access to aspects of the operational environment. These concern directory operations (248) and environment variables (370).

@ There are changes concerning characters both for writing program text itself and for handling characters and strings at run time. There is now support for 16- and 32-bit characters (285, 388, 395, 400), and there are additional operations in the string packages (301, 428).

@ The Numerics annex is enhanced by the addition of the vector and matrix material previously in ISO/IEC 13813 plus some commonly required linear algebra algorithms (296, 418) and a trivial addition concerning complex input–output (328).

@ The categorization of various predefined units has been changed in order to remove unnecessary restrictions on their use in distributed systems and similar applications (362, 366). The new pragma Preelaborable_Initialization is introduced as well for similar reasons (161). We can also group a minor change to the Distributed Systems annex here (273).

@ Finally there is new attribute Stream_Size in order to increase the portability of streams (270) and the parameter Stream of Read, Write etc now has a null exclusion (441).

Rationale for Ada 2005: Predefined library

@ENGRUSTOPBACKNEXT

1. Обзор изменений

@ Документ [1] руководства WG9 говорит что "основная цель Поправки состоит в том, чтобы обратиться к идентифицированным проблемам Ады с которыми сталкиваются пользователи Ады особенно в тех прикладных областях (таких как высоко- надёжные, долгоживущие - и/или встраиваемые приложения реального времени и очень большие сложные системы). Получающиеся изменения располагаются в порядке начиная с относительно незначительных, к более существенным." Конечно, одно из установленных преимуществ языков, таких как Java состоит в том, что они идут с огромной предопределенной библиотекой. В отличие от этого библиотека Ады является несколько Спартанской, и расширения к ней должны сделать Аду более доступной.

@ Документ руководства также предупреждает о вторичных стандартахх. Его суть состоит в том, чтобы не использовать вторичные стандарты если Вы можете получить материал из RM непосредственно. И пожелание переместить материал по векторам и матрицам из ISO/IEC 13813 [2] в RM. Причина для этого увещевания состоит в том, что вторичные стандарты оказались почти невидимыми и следовательно фактически бесполезными.

@ Мы уже обсуждали дополнительные библиотечные пакеты в области управления задачами и реального времени в одной из предыдущих статей. Следующие проблемы Ады покрывающие соответствующие изменения в других областях описаны подробно в этой статье:

@ Эти изменения могут быть группированы следующим образом.

@ Контейнерная библиотека довольно обширна и заслуживает целую статью (302). Здесь мы только обращаемся к ней для полноты картины.

@ Новые дочерние пакеты пакета Calendar обеспечивают дополнительные средства для управления данными представляющими время и дату (351, 427).

@ Есть дополнительные пакеты в оперативной библиотеке обеспечивающие доступ к аспектам операционной среды. Это операции с директориями (248) и переменными среды (370).

@ Есть изменения относительно символов и для того, чтобы писать текст программы непосредственно и для того, чтобы обработать символы и строки во время выполнения. Есть теперь поддержка 16-и 32-разрядных символов (285, 388, 395, 400), и есть дополнительные операции в строковых пакетах (301, 428).

@ Приложение Численных данных увеличено добавлением векторного и матричного материала ранее располагавшегося в ISO/IEC 13813 плюс некоторые обычно необходимые алгоритмы линейной алгебры (296, 418) и тривиальное добавление ввода - вывода комплексных чисел (328).

@ Классификация различных предопределенных модулей была изменена, чтобы удалить ненужные ограничения на их использование в распределенных системах и приложениях (362, 366). Новая прагма Preelaborable_Initialization введена также по этим же причинам (161). Мы можем также группировать незначительное изменение в приложении для Распределенных Систем здесь (273).

@ Наконец есть новый атрибут Stream_Size, чтобы увеличить мобильность потоков (270) и параметры Stream - Read, Write, и т.д теперь имеет нулевое исключение (441).

@ ENG RUS

TOP BACK NEXT

2010-10-24 00:26:57

. .