Rationale for Ada 2005: Access types
RUSTOPBACKNEXT
ENG |
1. Overview of changes
@ The WG9 guidance document [1] does not specifically mention access types as an area needing attention. Access types are, of course, more of a tactical detail than a strategic issue and so this is not surprising. @ However, the guidance document strongly emphasizes improvements to object oriented programming and the use of access types figures highly in that area. Indeed one of the motivations for changes was to reduce the number of explicit access type conversions required for OOP. @ The guidance document also asks for "improvements that will remedy shortcomings in Ada". The introduction of anonymous access-to-subprogram types comes into that category in the minds of many users. @ The following Ada issues cover the relevant changes and are described in detail in this paper:Rationale for Ada 2005: Access types
@ENGRUSTOPBACKNEXT1. Обзор изменений
@ Руководящий документ [1] WG9 не рассматривает ссылочные типы как область, нуждающуюся во внимании. Т.к. ссылочные типы больше тактический инструмент чем стратегический.
@ Однако, руководящий документ придает особое значение усовершенствованиям ООП и использованию ссылочных типов в этой области. Действительно, одно из побуждений для изменений здесь было уменьшение количества явных преобразований ссылочных типов.
@ Руководящий документ гласит "усовершенствования, которые исправят недостатки в Аде". Введение анонимных ссылочных типов на подпрограммы входит в эту категорию в умах многих пользователей.
@ Приведём список проблем Ады связанных с вышеперчисленными изменениями которые будем рассматривать в этой статье:
@ Эти изменения могут быть группированы следующим образом.
@ Сначала, есть общее ортогональное правило относительно того, является ли определяемый тип константным и разрешает ли ссылочный подтип пустой указатель (231, часть 404, часть 423).
@ Главное изменение - возможность использовать анонимные ссылочные типы более широко (230, часть 318, 385, 392, часть 404, 406, часть 416, часть 420). Это потребовало некоторого переопределения правил использования имени типа в пределах его собственного определения (382). Ссылочные дискриминанты теперь также разрешаются с неограниченными типами (402).
@ Введение анонимных ссылочных типов к подпрограмме дает возможность локальным подпрограммам быть переданными в качестве параметра для других подпрограмм (254, 409). Эта возможность была во многих других языках программирования в течение более чем 40 лет, и её отсутствие в Аде всегда и удивляло и раздражало и вызвало чрезмерное использование generics.
@ Наконец, есть некоторые исправления правил связаннх дискриминантами, которые предотвращают попытки обратиться к компонентам вариантов, которых не существует (363). Есть также изменения к правилам преобразований типов и дискриминантов, чтобы сделать их симметричными (384).
2010-10-24 00:26:53
. .