Spec-Zone.ru › Ada 2005
Справочник по Ada 2005

Введение

Это Справочник по Ada.
Другие доступные документы по Ada:
  • Обоснование Ada 95. В нем представлено введение в новые функции Ada, включенные в издание стандарта 1995 года, и объясняется их обоснование. Программистам, незнакомым с Ada 95, следует прочитать его в первую очередь.
  • Обоснование Ada 2005. В нем дается введение в изменения и новые функции в Ada 2005 (по сравнению с изданием 1995 года), а также объясняется их обоснование. Программисты должны прочитать это обоснование перед глубоким изучением данного стандарта.
  • Этот абзац был удален.
  • Разъясненный Справочник по Ada (AARM). AARM содержит весь текст объединенного Справочника по Ada, а также различные пояснения. Он предназначен в первую очередь для разработчиков компиляторов, авторов тестов валидации и других лиц, желающих изучить детали. Комментарии включают подробное обоснование отдельных правил и объяснения некоторых более сложных взаимодействий между правилами.
Цели проектирования
Ada изначально разрабатывалась с тремя основными целями: надежность и сопровождаемость программ, программирование как человеческая деятельность и эффективность. Ревизия языка 1995 года была разработана для обеспечения большей гибкости и расширяемости, дополнительного управления управлением памятью и синхронизацией, а также стандартных пакетов, ориентированных на поддержку важных областей применения, при одновременном сохранении первоначального акцента на надежности, поддерживаемости и эффективности. Эта измененная версия обеспечивает дополнительную гибкость и добавляет больше стандартных пакетов в рамках, заданных ревизией 1995 года.
Нужда в языках, которые способствуют надежности и упрощают сопровождение, хорошо известна. Поэтому акцент делался на читабельности программы, а не на легкости написания. Например, правила языка требуют явного объявления переменных и указания их типа. Поскольку тип переменной неизменен, компиляторы могут гарантировать, что операции с переменными совместимы с предполагаемыми свойствами объектов данного типа. Кроме того, были избегнуты подверженные ошибкам обозначения, а синтаксис языка избегает использования закодированных форм в пользу более похожих на английский конструкции. Наконец, язык поддерживает независимую компиляцию блоков программы, что способствует разработке и сопровождению программ и обеспечивает тот же уровень проверки между блоками, что и внутри блока.
В процессе проектирования также большое внимание уделялось программисту-человеку. Прежде всего, была предпринята попытка сохранить относительно небольшое количество базовых понятий, интегрированных согласованным и систематическим образом, избегая при этом ловушек чрезмерной сложности. Проект особенно направлен на предоставление конструкций языка, которые интуитивно соответствуют обычным ожиданиям пользователей.
Как и многие другие виды человеческой деятельности, разработка программного обеспечения становится все более децентрализованной и распределенной. Следовательно, способность собирать программу из независимо разработанных программных компонентов остается центральной идеей в проектировании. Понятия пакетов, частных типов и обобщенных блоков напрямую связаны с этой идеей, которая имеет последствия во многих других аспектах языка. Смежная задача заключается в поддержании программ для соответствия изменяющимся требованиям; расширение типа и иерархическая библиотека позволяют изменять программу, минимизируя нарушения существующих проверенных и надежных компонентов.
Ни один язык не может избежать проблемы эффективности. Языки, которые требуют чрезмерно сложных компиляторов или приводят к неэффективному использованию памяти или времени выполнения, навязывают эти неэффективности всем машинам и всем программам. Каждая конструкция языка рассматривалась с учетом современных методов реализации. Любая предлагаемая конструкция, реализация которой была неясной или требовала чрезмерных ресурсов машины, отклонялась.
Обзор языка
Программа Ada состоит из одного или нескольких блоков. Блоки могут быть подпрограммами (определяющими исполняемые алгоритмы), пакетами (определяющими коллекции сущностей), блоками задач (определяющими параллельные вычисления), защищенными блоками (определяющими операции для согласованного совместного использования данных между задачами) или обобщенными блоками (определяющими параметризованные формы пакетов и подпрограмм). Каждый блок программы обычно состоит из двух частей: спецификации, содержащей информацию, которая должна быть видимой другим блокам, и тела, содержащего детали реализации, которые не должны быть видны другим блокам. Большинство блоков программ могут быть скомпилированы независимо.
Это различие спецификации и тела, а также возможность независимой компиляции блоков, позволяет разрабатывать, писать и тестировать программу как набор в значительной степени независимых программных компонентов.
Программа Ada обычно использует библиотеку программных блоков общего назначения. Язык предоставляет средства, позволяющие отдельным организациям создавать собственные библиотеки. Все библиотеки структурированы иерархически; это позволяет логически разбить подсистему на отдельные компоненты. Текст отдельно скомпилированного блока программы должен указывать на требуемые блоки из библиотеки.
Блоки программ
Подпрограмма является основным блоком для выражения алгоритма. Существует два типа подпрограмм: процедуры и функции. Процедура — это способ вызова последовательности действий. Например, она может считывать данные, обновлять переменные или генерировать какой-либо вывод. Она может иметь параметры для обеспечения управляемого способа передачи информации между процедурой и точкой вызова. Функция — это способ вызова вычисления значения. Она похожа на процедуру, но дополнительно возвращает результат.
Пакет — это основной блок для определения набора логически связанных сущностей. Например, пакет может быть использован для определения набора объявлений типов и связанных операций. Части пакета могут быть скрыты от пользователя, что позволяет получить доступ только к логическим свойствам, выраженным в спецификации пакета.
Блоки подпрограмм и пакетов могут быть скомпилированы независимо и организованы в иерархии родительских и дочерних блоков, обеспечивая точный контроль над видимостью логических свойств и их детальной реализацией.
Блок задачи — это базовый блок для определения задачи, последовательность действий которой может выполняться одновременно с другими задачами. Такие задачи могут быть реализованы на многопроцессорных машинах, многопроцессорных системах или с чередованием выполнения на одном процессоре. Блок задачи может определять как одну выполняющуюся задачу, так и тип задачи, позволяющий создавать любое количество подобных задач.
Защищенный блок — это базовый блок для определения защищенных операций для согласованного использования данных, общих между задачами. Простая взаимная блокировка обеспечивается автоматически, и могут быть определены более сложные протоколы совместного использования. Защищенная операция может быть либо подпрограммой, либо входом. Защищенное задание указывает булево выражение (барьер входа), которое должно быть истинным перед выполнением тела задания. Защищенный блок может определить один защищенный объект или тип защищенного объекта, позволяющий создавать несколько подобных объектов.
Объявления и операторы
Тело блока программы обычно содержит две части: декларативную часть, которая определяет логические сущности, используемые в блоке программы, и последовательность операторов, которая определяет выполнение блока программы.
Декларативная часть связывает имена с объявленными сущностями. Например, имя может обозначать тип, константу, переменную или исключение. Декларативная часть также вводит имена и параметры других вложенных подпрограмм, пакетов, блоков задач, защищенных блоков и обобщенных блоков, которые будут использоваться в блоке программы.
Последовательность операторов описывает последовательность действий, которые должны быть выполнены. Операторы выполняются последовательно (если передача управления не вызывает продолжения выполнения с другого места).
Оператор присваивания изменяет значение переменной. Вызов процедуры вызывает выполнение процедуры после сопоставления всех фактических параметров, предоставленных при вызове, с соответствующими формальными параметрами.
Операторы выбора и условные операторы позволяют выбирать вложенную последовательность операторов на основе значения выражения или условия.
Оператор цикла предоставляет базовый итерационный механизм в языке. Оператор цикла задает, что последовательность операторов должна выполняться многократно в соответствии с заданной схемой итерации или пока не будет встречен оператор выхода.
Блок-оператор состоит из последовательности операторов, предваряемой объявлением локальных сущностей, используемых операторами.
Некоторые операторы связаны с одновременным выполнением. Оператор ожидания задерживает выполнение задачи на указанное время или до указанного момента. Оператор вызова входа записывается как оператор вызова процедуры; он запрашивает операцию в задаче или защищенном объекте, блокируя вызывающий элемент до тех пор, пока операция не сможет быть выполнена. Вызываемая задача может принять вызов входа, выполнив соответствующий оператор приема, который определяет действия, которые затем должны быть выполнены в рамках встречи с вызывающей задачей. Вызов входа для защищенного объекта обрабатывается, когда соответствующее условие входа оценивается как истинное, после чего выполняется тело входа. Оператор переповтор позволяет предоставить услугу в качестве нескольких связанных задач с управлением приоритетами. Одна форма оператора выбора позволяет селективно ждать одного из нескольких альтернативных встреч. Другие формы оператора выбора позволяют условные или временные вызовы входов и асинхронную передачу управления в ответ на какое-либо событие запуска.
END_OF_DOCUMENT_MARKER
Выполнение единицы программы может столкнуться с ошибочными ситуациями, в которых нормальное выполнение программы не может быть продолжено. Например, арифметическое вычисление может превысить максимальное разрешённое значение числа, или может быть предпринята попытка доступа к компоненту массива с использованием неправильного значения индекса. Для обработки таких ситуаций операторы единицы программы могут быть текстово дополнены обработчиками исключений, которые определяют действия, которые необходимо выполнить при возникновении ситуации с ошибкой. Исключения могут быть явно подняты оператором raise.
Типы данных
Каждый объект в языке имеет тип, который характеризует набор значений и набор применимых операций. Основные классы типов — это элементарные типы (включающие типы перечислений, числовые и типы доступа) и составные типы (включающие типы массивов и записей).
Тип перечисления определяет упорядоченный набор различных литералов перечисления, например, список состояний или алфавит символов. Типы перечислений Boolean, Character, Wide_Character и Wide_Wide_Character определены заранее.
Числовые типы предоставляют возможность выполнения точных или приближенных численных вычислений. Точные вычисления используют целочисленные типы, которые обозначают наборы последовательных целых чисел. Приближённые вычисления используют либо типы с фиксированной точкой с абсолютными границами ошибки, либо типы с плавающей точкой с относительными границами ошибки. Числовые типы Integer, Float и Duration определены заранее.
Составные типы позволяют определять структурированные объекты с взаимосвязанными компонентами. Составные типы в языке включают массивы и записи. Массив — это объект с индексированными компонентами одного типа. Запись — это объект с именованными компонентами, которые могут быть разных типов. Задачи и защищённые типы также являются формами составных типов. Типы массивов String, Wide_String и Wide_Wide_String определены заранее.
Типы записей, задач и защищённых типов могут иметь специальные компоненты, называемые дискриминантами, которые параметризуют тип. Внутри типа записи могут быть определены структуры вариантов записей, которые зависят от значений дискриминантов.
Типы доступа позволяют создавать связанные структуры данных. Значение типа доступа представляет собой ссылку на объект, объявленный как алиас, или на объект, созданный путём оценки аллокатора. Несколько переменных одного типа доступа могут указывать на один и тот же объект, а компоненты одного объекта могут указывать на один и тот же или другие объекты. Как элементы таких связанных структур данных, так и их отношение к другим элементам могут быть изменены во время выполнения программы. Типы доступа также позволяют хранить ссылки на подпрограммы, передавать их в качестве параметров и, в конечном итоге, дереференцировать их как часть непрямого вызова.
Частные типы допускают ограниченные представления о типе. Частный тип может быть определён в пакете, таким образом, что только логически необходимые свойства делаются видимыми для пользователей типа. Полные структурные детали, которые внешне не имеют значения, доступны только внутри пакета и любых дочерних модулей.
Из любого типа может быть определён новый тип путём деривации. Тип вместе со своими производными (прямыми и косвенными) образует класс производных. Могут быть определены операции класса, принимающие в качестве параметра операнд любого типа в классе производных. Для типов записей и частных типов производные могут быть расширениями родительского типа. Типы, поддерживающие эти объектно-ориентированные возможности операций класса и расширения типов, должны быть помечены, чтобы конкретный тип операнда в классе производных мог быть идентифицирован во время выполнения. Когда операция помеченного типа применяется к операнду, чьё специфический тип неизвестен до момента выполнения, выполняется неявное диспетчирование, основанное на метке операнда.
Типы интерфейсов предоставляют абстрактные модели, из которых могут быть составлены и получены другие интерфейсы и типы. Это предоставляет надёжную форму множественного наследования. Типы интерфейсов также могут быть реализованы типами задач и защищёнными типами, что позволяет объединить одновременную обработку и наследование.
Понятие типа дополняется понятием подтипа, позволяющим пользователю ограничить набор допустимых значений типа. Подтипы могут использоваться для определения поддиапазонов скалярных типов, массивов с ограниченным набором значений индексов, а также записей и частных типов с определёнными значениями дискриминантов.
Другие средства
Операторы аспектов могут использоваться для указания соответствия между типами и функциями базовой машины. Например, пользователь может указать, что объекты заданного типа должны быть представлены заданным количеством битов, или что компоненты записи должны быть представлены с заданной структурой хранения. Другие возможности позволяют контролировать использование низкоуровневых, непереносимых или зависящих от реализации аспектов, включая непосредственное вставку машинного кода.
Предопределённая среда языка обеспечивает ввод-вывод и другие возможности с помощью стандартных библиотек пакетов. Ввод-вывод поддерживается для значений, определённых пользователем, а также для предопределённых типов. Также предоставляются стандартные средства представления значений в виде отображения.
Предопределённые стандартные пакеты библиотек предоставляют средства, такие как обработка строк, контейнеры различных типов (векторы, списки, карты и т. д.), математические функции, генерация случайных чисел и доступ к среде выполнения.
Специализированные приложения определяют дополнительные предопределённые пакеты и средства библиотек, делая упор на такие области, как планирование реального времени, обработка прерываний, распределённые системы, численные вычисления и системы высокой надёжности.
Наконец, язык предоставляет мощные средства параметризации единиц программы, называемые обобщёнными единицами программы. Обобщённые параметры могут быть типами и подпрограммами (а также объектами и пакетами), что позволяет определять общие алгоритмы и структуры данных, применимые ко всем типам данного класса.
Изменения в языке
Данный изменённый международный стандарт обновляет издание 1995 года, которое заменило первое издание 1987 года. В издании 1995 года были внесены следующие основные изменения в языке:
  • Была добавлена поддержка стандартных 8-битных и 16-битных символов. См. пункты 2.1, 3.5.2, 3.6.3, A.1, A.3 и A.4.
  • Модель типов была расширена, чтобы включить средства объектно-ориентированного программирования с динамическим полиморфизмом. См. обсуждения классов, производных типов, помеченных типов, расширений записей и частных расширений в пунктах 3.4, 3.9 и 7.3. Дополнительные формы обобщённых формальных параметров были разрешены, как описано в пунктах 12.5.1 и 12.7.
  • Типы доступа были расширены, чтобы позволить значению доступа указывать на подпрограмму или объект, объявленный объявлением объекта, а не только объект, выделенный в куче. См. пункт 3.10.
  • Эффективная синхронизация, ориентированная на данные, была обеспечена путём введения защищённых типов. См. пункт 9.4.
  • Структура библиотеки была расширена, чтобы разрешить библиотечным модулям организовываться в иерархию родительских и дочерних модулей. См. пункт 10.1.
  • Была добавлена дополнительная поддержка взаимодействия с другими языками. См. Приложение B.
  • Были добавлены специализированные приложения, чтобы обеспечить специфическую поддержку для определённых областей применения:
  • Приложение C, «Программирование систем»
  • Приложение D, «Системы реального времени»
  • Приложение E, «Распределённые системы»
  • Приложение F, «Информационные системы»
  • Приложение G, «Численные методы»
  • Приложение H, «Системы высокой надёжности»
Поправка 1 изменяет международный стандарт 1995 года, внеся изменения и дополнения, которые улучшают возможности языка и надёжность программ, написанных на этом языке. В частности, изменения были разработаны для повышения переносимости программ, взаимодействия с другими языками, а также объектно-ориентированных и возможностей реального времени.
Ниже представлены значительные изменения по сравнению с изданием 1995 года:
  • Поддержка текстов программы расширена для охвата всего репертуара ISO/IEC 10646:2003. Поддержка выполнения теперь включает 32-битный набор символов. См. пункты 2.1, 3.5.2, 3.6.3, A.1, A.3 и A.4.
  • Объектно-ориентированная модель была улучшена добавлением механизма интерфейсов, который обеспечивает множественное наследование и дополнительную гибкость для расширений типов. См. пункты 3.4, 3.9 и 7.3. Также была добавлена альтернативная запись для вызова операций, более похожая на используемую в других языках. См. пункт 4.1.3.
  • Типы доступа были дополнительно расширены для объединения свойств, таких как возможность доступа к константам и исключение нулевых значений. См. пункт 3.10. Теперь разрешены анонимные типы доступа, а также анонимные типы доступа к подпрограммам. См. пункты 3.3, 3.6, 3.10 и 8.5.1.
  • Управление структурой и видимостью было улучшено, чтобы разрешить взаимные зависимые ссылки между модулями и более тонкий контроль доступа из закрытой части пакета. См. пункты 3.10.1 и 10.1.2. Кроме того, ограниченные типы стали более полезными благодаря предоставлению агрегатов, констант и функций-конструкторов. См. пункты 4.3, 6.5 и 7.5.
  • Предварительно определенная среда была расширена, чтобы включить дополнительные операции со временем и календарем, улучшенную обработку строк, полную библиотеку контейнеров, управление файлами и каталогами и доступ к переменным среды. См. пункты 9.6.1, A.4, A.16, A.17 и A.18.
  • Два из Специализированных приложений расширены:
  • Приложение по системам реального времени теперь включает профиль Ravenscar для систем высокой надежности, дополнительно включая политики диспетчеризации, такие как Round Robin и Earliest Deadline First, поддержку событий времени и поддержку контроля использования времени ЦП. См. пункты D.2, D.13, D.14 и D.15.
  • Приложение по численным методам теперь включает поддержку векторов и матриц вещественных и комплексных чисел, как определено ранее в ISO/IEC 13813:1997, плюс дополнительные базовые операции линейной алгебры. См. пункт G.3.
  • Общую надежность языка повысили благодаря ряду улучшений. Они включают новый синтаксис, который обнаруживает случайное переопределение, а также псевдокоманды для создания утверждений и лучшего контроля над подавлением проверок. См. пункты 6.1, 11.4.2 и 11.5.




Инструкции по представлению комментариев
Неформальные комментарии к данному международному стандарту можно отправлять по электронной почте на адрес ada-comment@ada-auth.org. При необходимости редактор проекта инициирует процедуру исправления ошибок.
Комментарии должны использовать следующий формат:
!topic Заголовок, кратко обобщающий комментарий
!reference Ada 2005 RMss.ss(pp)
!from Имя автора yy-mm-dd
!keywords Ключевые слова, относящиеся к теме
!discussion

Текст обсуждения
где ss.ss — номер раздела, пункта или подпункта, pp — номер абзаца, если применимо, а yy-mm-dd — дата отправки комментария. Дата необязательна, как и строка !keywords.
Пожалуйста, используйте описательное «Тема» в вашем сообщении электронной почты и ограничивайте каждое сообщение одним комментарием.
При исправлении опечаток или внесении небольших предложений по формулировкам, пожалуйста, поместите исправление непосредственно в качестве темы комментария; используйте квадратные скобки [ ] для указания текста, который следует опустить, и фигурные скобки { } для указания текста, который следует добавить, и предоставьте достаточный контекст, чтобы сделать характер предложения понятным или укажите дополнительную информацию в теле комментария, например:
!topic [c]{C}haracter
!topic it[']s meaning is not defined
Формальные запросы о толкованиях и об обнаружении ошибок в данном международном стандарте могут быть выполнены в соответствии с директивами ISO/IEC JTC 1 и политикой ISO/IEC JTC 1/SC 22 по толкованиям. Национальные органы могут подать отчет об ошибке в ISO/IEC JTC 1/SC 22 для решения в соответствии с процедурами JTC 1. Будет предоставлен ответ и, при необходимости, будет издан технический исправительный лист в соответствии с процедурами.




Благодарности за издание руководства по Ada 95
Этот международный стандарт был подготовлен командой Ada 9X Mapping/Revision в Intermetrics, Inc., которая включала: W. Carlson, менеджер программы; T. Taft, технический директор; J. Barnes (консультант); B. Brosgol (консультант); R. Duff (Oak Tree Software); M. Edwards; C. Garrity; R. Hilliard; O. Pazy (консультант); D. Rosenfeld; L. Shafer; W. White; M. Woodger.
Следующие консультанты проекта Ada 9X внесли вклад в приложения по специализированным потребностям: T. Baker (программирование систем реального времени — SEI, FSU); K. Dritz (численность — Argonne National Laboratory); A. Gargaro (распределенные системы — Computer Sciences); J. Goodenough (программирование систем реального времени — SEI); J. McHugh (защищенные системы — консультант); B. Wichmann (системы, критические для безопасности — NPL: Великобритания).
Эта работа регулярно проверялась экспертами Ada 9X и членами группы референтов Ada 9X (XRG): E. Ploedereder, председатель DR и XRG (Университет Штутгарта: Германия); B. Bardin (Hughes); J. Barnes (консультант: Великобритания); B. Brett (DEC); B. Brosgol (консультант); R. Brukardt (RR Software); N. Cohen (IBM); R. Dewar (NYU); G. Dismukes (TeleSoft); A. Evans (консультант); A. Gargaro (Computer Sciences); M. Gerhardt (ESL); J. Goodenough (SEI); S. Heilbrunner (Университет Зальцбурга: Австрия); P. Hilfinger (UC/Berkeley); B. Källberg (CelsiusTech: Швеция); M. Kamrad II (Unisys); J. van Katwijk (Технологический университет Делфт: Нидерланды); V. Kaufman (Россия); P. Kruchten (Rational); R. Landwehr (CCI: Германия); C. Lester (Портсмутский политехнический институт: Великобритания); L. Månsson (TELIA Research: Швеция); S. Michell (Multiprocessor Toolsmiths: Канада); M. Mills (Военно-воздушные силы США); D. Pogge (ВМС США); K. Power (Boeing); O. Roubine (Verdix: Франция); A. Strohmeier (Швейцарский федеральный технологический институт: Швейцария); W. Taylor (консультант: Великобритания); J. Tokar (Tartan); E. Vasilescu (Grumman); J. Vladik (Prospeks s.r.o.: Чешская Республика); S. Van Vlierberghe (OFFIS: Бельгия).
Другая ценная обратная связь, повлиявшая на процесс пересмотра, была предоставлена командой Ada 9X Language Precision Team (Odyssey Research Associates), командами Ada 9X User/Implementer (AETECH, Tartan, TeleSoft), командой Ada 9X Implementation Analysis (New York University) и сообществом Ada в целом.
Особая благодарность R. Mathis, руководителю рабочей группы ISO/IEC JTC 1/SC 22 Working Group 9.
Проект Ada 9X спонсировался Ada Joint Program Office. Христина М. Андерсон из лаборатории ВВС Филипса (Kirtland AFB, NM) была менеджером проекта.
Благодарности за версию исправления руководства по Ada
Редактор [R. Brukardt (США)] хотел бы поблагодарить многих людей за их усердную работу и помощь, которые сделали этот пересмотр возможным.
Благодарность всем членам группы референтов Ada ISO/IEC JTC 1/SC 22/WG 9 за их работу по созданию и редактированию исправлений формулировок, что было крайне важно для всего процесса. Особенно ценные вклады внесли председатель ARG E. Ploedereder (Германия), который поддерживал процесс; J. Barnes (Великобритания) и K. Ishihata (Япония), чьи чрезвычайно подробные обзоры помогли редактору оставаться в тонусе; G. Dismukes (США), M. Kamrad (США), P. Leroy (Франция), S. Michell (Канада), T. Taft (США), J. Tokar (США) и другие члены, которых слишком много, чтобы перечислить.
Особая благодарность R. Duff (США) за объяснения предыдущей системы форматирования этих документов во время утомительной конвертации в более современные форматы. Особая благодарность также секретарю ISO/IEC JTC 1/SC 22/WG 9, J. Moore (США), без чьей помощи и поддержки исправление и этот консолидированный справочник не были бы возможны.
Благодарности за версию дополнения руководства по Ada
Редактор [R. Brukardt (США)] хотел бы поблагодарить многих людей за их усердную работу и помощь, которые сделали этот пересмотр возможным.
Благодарность всем членам группы референтов Ada ISO/IEC JTC 1/SC 22/WG 9 за их работу по созданию и редактированию исправлений формулировок, что было крайне важно для всего процесса. Особенно ценные вклады внесли председатель ARG P. Leroy (Франция), который поддерживал график; J. Barnes (Великобритания), чьи внимательные обзоры обнаружили много опечаток; T. Taft (США), у которого всегда было предложение, когда мы застревали, и кто также обычно мог предоставить ценную услугу — объяснить, почему все обстоит именно так; S. Baird (США), который обнаружил много скрытых проблем с предложениями; и A. Burns (Великобритания), который продвинул многие предложения по системам реального времени до завершения. Другие члены ARG, которые внесли вклад: R. Dewar (США), G. Dismukes (США), R. Duff (США), K. Ishihata (Япония), S. Michell (Канада), E. Ploedereder (Германия), J.P. Rosen (Франция), E. Schonberg (США), J. Tokar (США) и T. Vardanega (Италия).
Особая благодарность Ada-Europe и Ada Resource Association за их помощь и поддержку внесения дополнений и этого консолидированного справочника. M. Heaney (США) заслуживает особой благодарности за его неустанную работу над пакетами контейнеров. Наконец, особая благодарность секретарю ISO/IEC JTC 1/SC 22/WG 9, J. Moore (США), который руководил документом на всех этапах процесса стандартизации.




Изменения
Международный стандарт идентичен этой версии Справочника, за исключением:
  • Этот список изменений не включен в Международный стандарт.
  • Страница «Благодарности» не включена в Международный стандарт.
  • Текст в заголовках и подвалах каждой страницы немного отличается в Международном стандарте.
  • Титульные страницы отличаются в Международном стандарте.
  • Этот документ отформатирован для бумаги размером 8,5 на 11 дюймов, тогда как Международный стандарт отформатирован для бумаги формата А4 (210 на 297 мм); таким образом, разрывы страниц находятся в разных местах.
  • Пункт «Предисловие к данному изданию Руководства по Ada» не включён в Международный стандарт.
  • Пункт «Использование данного издания Руководства по Ada» не включён в Международный стандарт.
Использование данного издания Руководства по Ada
Данный документ был пересмотрен с внесёнными исправлениями, указанными в Техническом исправительном документе 1 (ISO/IEC 8652:1995/COR.1:2001) и поправке 1 (ISO/IEC 8652/AMD.1:2007). Кроме того, было исправлено множество редакционных ошибок.
Изменения в оригинале 8652:1995 можно определить по номеру версии, следующему за номером абзаца. Абзацы с номером версии /1 были изменены Техническим исправительным документом 1 или были редакционными исправлениями в то время, в то время как абзацы с номером версии /2 были изменены Поправкой 1 или были более поздними редакционными исправлениями. Абзацы, не помеченные таким образом, не были изменены Поправкой 1, Техническим исправительным документом 1 или редакционными исправлениями. Номера абзацев неизменённых абзацев такие же, как в оригинальном Руководстве по Ada. Кроме того, некоторые версии этого документа содержат полосы ревизии рядом с номерами абзацев. Там, где вставляются абзацы, номера абзацев имеют вид pp.nn, где pp — номер предыдущего абзаца, а nn — номер вставки. Например, первый вставленный абзац после абзаца 8 имеет номер 8.1, второй вставленный абзац имеет номер 8.2 и так далее. Удаленные абзацы обозначены текстом Этот абзац был удален. Удаленные абзацы включают пустые абзацы, которые имели номера в оригинальном Руководстве по Ada.


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API