Rationale for Ada 2005: Exceptions, generics etc

RUSTOP
BACKNEXT

ENG

1. Overview of changes

@ The areas mentioned in this paper are not specifically mentioned in the WG9 guidance document [1] other than under the request to remedy shortcomings and improve interfacing.

@ The following Ada Issues cover the relevant changes and are described in detail in this paper.

@ These changes can be grouped as follows.

@ First there are some minor changes to exception handling. There are neater means for testing for null occurrence and raising an exception with a message (241, 361) and also wide and wide-wide versions of some procedures (400, 417).

@ The numerics area has a number of small but important changes. They are the introduction of an attribute Mod to aid conversion between signed and unsigned integers (340); changes to the rules for fixed point multiplication and division which permit user-defined operations (364, 420); and an attribute Machine_Rounding which can be used to aid fast conversions from floating to integer types (267).

@ A number of new pragmas and Restrictions identifiers have been added. These generally make for more reliable programming. The pragmas are: Assert, No_Return, Preelaborable_Initialization, Unchecked_Union, and Unsuppress (161, 216, 224, 286, 329, 414). The restrictions identifiers are No_Dependence, No_Implementation_Pragmas, No_Implementation_Restrictions, and No_Obsolescent_Features (257, 368, 381). Note that there are also other new pragmas and new restrictions identifiers concerned with tasking as described in the previous paper. However, the introduction of No_Dependence means that the identifiers No_Asynchronous_Control, No_Unchecked_Conversion and No_Unchecked_Deallocation are now obsolescent (394).

@ Finally there are changes in generic units. There are changes in generic parameters which are consequences of changes in other areas such as the introduction of interfaces and dispatching constructors as described in the paper on the object oriented model (parts of 251 and 260); there are also changes to formal access and derived types (419, 423). Also, it is now possible to give just some parameters of a formal package in the generic formal part (317, 398).

Rationale for Ada 2005: Exceptions, generics etc

@ENGRUSTOPBACKNEXT

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

@ Области, обсуждаемые в этой статье определенно не упомянуты в руководящем документе WG9 [1] кроме как в виде пожелания исправить недостатки и улучшить связь с помощью интерфейса.

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

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

@ Сначала есть несколько незначительных изменений в обработке исключительных ситуаций. Есть более опрятные средства для того, чтобы проверить на нулевое вхождение и возбудить исключение с сообщением (241, 361) и также широкие и общеширокие версии некоторых процедур (400, 417).

@ В области численных данных есть несколько маленьких, но важных изменений. Это - введение атрибута Mod чтобы помочь преобразованию между знаковыми и беззнаковыми числами (340); изменения к правилам целочисленного умножения и деления, которые разрешают определяемые пользователем операции (364, 420); и атрибут Machine_Rounding, который может использоваться, чтобы помочь быстрым преобразованиям из плавающего в целочисленный тип (267).

@ Были добавлены многие новые прагмы и идентификаторы Ограничений. Они предназначены для более надежного программирования. Прагмы: Assert, No_Return, Preelaborable_Initialization, Unchecked_Union, и Unsuppress (161, 216, 224, 286, 329, 414). Идентификаторы ограничений - No_Dependence, No_Implementation_Pragmas, No_Implementation_Restrictions, и No_Obsolescent_Features (257, 368, 381). Отметим, что есть также другие новые прагмы и новые идентификаторы ограничений, заинтересованные в управлении задачами как описано в предыдущей статье. Однако, введение No_Dependence означает, что идентификаторы No_Asynchronous_Control, No_Unchecked_Conversion и No_Unchecked_Deallocation теперь являются устаревшими (394).

@ Наконец, есть изменения в настраиваемых модулях. Есть изменения в настраиваемых параметрах, которые являются последствиями изменений в других областях, таких как введение интерфейсов и конструкторов диспетчеризации как описано в статье об объектно-ориентированной модели (части 251 и 260); есть также изменения к формальным ссылкам и наследуемым типам (419, 423). Кроме того, теперь можно давать только некоторые параметры формального пакета в настраиваемой формальной части (317, 398).

@ ENG RUS

TOP BACK NEXT

2010-10-24 00:26:56

. .