Rationale for Ada 2005: Exceptions, generics etc
RUSTOPBACKNEXT
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.Rationale for Ada 2005: Exceptions, generics etc
@ENGRUSTOPBACKNEXT1. Обзор изменений
@ Области, обсуждаемые в этой статье определенно не упомянуты в руководящем документе 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).
2010-10-24 00:26:56
. .