Spec-Zone.ru › Ada 2022
Справочник по Аде (Ada 2022)

Введение

Это Справочник по Аде.
Другие доступные документы по Аде включают:
  • Обзор Ada 2022. Он дает введение в изменения и новые возможности в Ada 2022. Программисты должны прочитать этот обзор перед углубленным изучением Справочника.
  • Этот абзац был удален.
  • Аннотированный справочник по Аде (AARM). AARM содержит весь текст консолидированного Справочника по Аде, плюс различные аннотации. Он предназначен прежде всего для авторов компиляторов, авторов тестовых средств проверки и других, желающих изучить детали. Аннотации включают подробное обоснование отдельных правил и объяснение некоторых более сложных взаимодействий между правилами.
Цели разработки
Ada изначально разрабатывалась с тремя основными целями: надёжность и поддержка программ, программирование как человеческая деятельность и эффективность. Ревизия языка 1995 года была разработана для обеспечения большей гибкости и расширяемости, дополнительного контроля над управлением памятью и синхронизацией, и стандартизированных пакетов, ориентированных на поддержку важных областей применения, сохраняя при этом первоначальный акцент на надёжности, поддерживаемости и эффективности. Последующие издания, включая это четвёртое издание, обеспечили дальнейшую гибкость и добавили больше стандартизированных пакетов в рамках, заданных ревизией 1995 года.
Необходимость языков, которые способствуют надёжности и упрощают техническое обслуживание, хорошо известна. Поэтому акцент был сделан на удобочитаемости программного кода, а не на простоте написания. Например, правила языка требуют явного объявления переменных и указания их типа. Поскольку тип переменной неизменен, компиляторы могут гарантировать, что операции над переменными совместимы с предполагаемыми свойствами объектов данного типа. Кроме того, были избегнуты подверженные ошибкам обозначения, а синтаксис языка избегает использования кодированных форм в пользу более похожих на английские конструкций. Наконец, язык поддерживает независимую компиляцию блоков программного кода, что облегчает разработку и поддержку программ и обеспечивает такой же уровень проверки между блоками, как и внутри блока.
При разработке также уделялось внимание программисту-человеку. Прежде всего, была предпринята попытка сохранить относительно небольшое число базовых понятий, интегрированных последовательным и систематическим образом, избегая при этом опасностей чрезмерной сложности. При разработке особое внимание уделяется обеспечению того, что конструкции языка интуитивно соответствуют обычным ожиданиям пользователей.
Как и многие другие виды человеческой деятельности, разработка программного обеспечения становится всё более децентрализованной и распределённой. Следовательно, возможность сборки программы из независимо созданных программных компонентов продолжает оставаться центральной идеей при разработке. Понятия пакетов, частных типов и обобщённых блоков напрямую связаны с этой идеей, которая затрагивает многие другие аспекты языка. Связанной проблемой является поддержка программ в соответствии с изменяющимися требованиями; расширение типов и иерархическая библиотека позволяют изменять программу, сводя к минимуму нарушения существующих проверенных и надёжных компонентов.
Ни один язык не может избежать проблемы эффективности. Языки, требующие чрезмерно сложных компиляторов или приводящие к неэффективному использованию памяти или времени выполнения, навязывают эти неэффективности всем машинам и всем программам. Каждая конструкция языка была изучена с точки зрения существующих методов реализации. Любая предлагаемая конструкция, реализация которой была неясна или которая требовала чрезмерных ресурсов машины, была отклонена. Были введены параллельные конструкции для упрощения безопасного и эффективного использования современных многоядерных архитектур.
Обзор языка
Программа на Аде состоит из одного или нескольких блоков. Блоки могут быть подпрограммами (определяющими исполняемые алгоритмы), пакетами (определяющими коллекции сущностей), блоками задач (определяющими параллельные вычисления), защищёнными блоками (определяющими операции для согласованного совместного использования данных между задачами) или обобщёнными блоками (определяющими параметризованные формы пакетов и подпрограмм). Каждый блок обычно состоит из двух частей: спецификации, содержащей информацию, видимую другим блокам, и тела, содержащего детали реализации, которые не видны другим блокам. Большинство блоков могут быть скомпилированы отдельно.
Это разделение спецификации и тела, а также возможность компиляции блоков отдельно, позволяет разрабатывать, писать и тестировать программу как набор в значительной степени независимых программных компонентов.
Программа на Аде обычно использует библиотеку блоков общего назначения. Язык предоставляет средства, с помощью которых отдельные организации могут создавать свои собственные библиотеки. Все библиотеки структурированы иерархически, что позволяет логически разложить подсистему на отдельные компоненты. Текст отдельно скомпилированного блока программного кода содержит ссылки на требуемые блоки из библиотеки.
Блоки программ
Подпрограмма является основным блоком для выражения алгоритма. Существует два типа подпрограмм: процедуры и функции. Процедура — это способ вызова последовательности действий. Например, она может считывать данные, обновлять переменные или генерировать какой-либо вывод. Она может иметь параметры, чтобы обеспечить управляемый способ передачи информации между процедурой и точкой вызова. Функция — это способ вызова вычисления значения. Она аналогична процедуре, но, кроме того, возвращает результат.
Пакет — это основной блок для определения коллекции логически связанных сущностей. Например, пакет можно использовать для определения набора объявлений типов и связанных с ними операций. Части пакета могут быть скрыты от пользователя, что позволяет получать доступ только к логическим свойствам, выраженным в спецификации пакета.
Блоки подпрограмм и пакетов могут быть скомпилированы отдельно и организованы в иерархию родительских и дочерних блоков, обеспечивая точный контроль над видимостью логических свойств и их детальной реализацией.
Блок задачи — это основной блок для определения задачи, последовательность действий которой может выполняться параллельно с действиями других задач. Такие задачи могут быть реализованы на многокомпьютерных системах, многопроцессорных системах или с чередующимся выполнением на одном процессоре. Блок задачи может определять либо единственную выполняющуюся задачу, либо тип задачи, позволяющий создавать любое количество похожих задач.
Защищенный блок — это основной блок для определения защищённых операций для согласованного использования данных, разделяемых между задачами. Автоматически обеспечивается простая взаимная исключаемость, и могут быть определены более сложные протоколы совместного использования. Защищённая операция может быть либо подпрограммой, либо входом. Защищённый вход указывает булево выражение (барьер входа), которое блокирует выполнение тела до тех пор, пока оно не станет истинным.
Защищенный блок может определять один защищенный объект или тип защищенного объекта, позволяющий создавать несколько похожих объектов.
Объявления и операторы
Тело блока программы обычно содержит две части: раздел объявлений, который определяет логические сущности, используемые в блоке, и последовательность операторов, которая определяет выполнение блока.
В разделе объявлений имена связываются с объявленными сущностями. Например, имя может обозначать тип, константу, переменную или исключение. Раздел объявлений также вводит имена и параметры других вложенных подпрограмм, пакетов, блоков задач, защищённых блоков и обобщённых блоков, которые будут использоваться в блоке.
Последовательность операторов описывает последовательность выполняемых действий. Операторы выполняются последовательно (если передача управления не вызывает продолжения выполнения с другой позиции).
Оператор присваивания изменяет значение переменной. Вызов процедуры вызывает выполнение процедуры после сопоставления предоставленных фактических параметров при вызове с соответствующими формальными параметрами.
Операторы case и if позволяют выбрать вложенную последовательность операторов в зависимости от значения выражения или условия.
Оператор цикла предоставляет основную итерационную возможность в языке. Оператор цикла определяет последовательность операторов, которые многократно выполняются в соответствии со схемой итерации или до тех пор, пока не встретится оператор выхода.
Оператор блока включает последовательность операторов, предваряемую объявлением локальных сущностей, используемых операторами.
Некоторые операторы связаны с параллельным выполнением. Оператор ожидания отсрочивает выполнение задачи на заданный срок или до заданного времени. Оператор вызова входа записывается как оператор вызова процедуры; он запрашивает операцию над задачей или защищенным объектом, блокируя вызывающего до тех пор, пока операция не сможет быть выполнена. Вызываемая задача может принять вызов входа, выполнив соответствующий оператор accept, который определяет действия, которые должны быть выполнены в рамках соединения с вызывающей задачей. Вызов входа защищенного объекта обрабатывается, когда соответствующее условие входа становится истинным, после чего выполняется тело входа. Оператор requeue позволяет предоставить услугу в виде ряда связанных действий с управлением приоритетом. Одна форма оператора select позволяет выборочное ожидание одного из нескольких альтернативных соединений. Другие формы оператора select позволяют условные или ограниченные во времени вызовы входов и асинхронную передачу управления в ответ на какое-либо событие запуска. Различные параллельные конструкции, включая параллельные циклы и параллельные блоки, поддерживают инициирование множества логических потоков управления, предназначенных для одновременного выполнения при наличии нескольких процессоров.
END_OF_DOCUMENT_MARKER
Выполнение блока программы может столкнуться с ошибочными ситуациями, в которых обычное выполнение программы невозможно продолжить. Например, арифметическое вычисление может превысить максимальное разрешенное значение числа, или может быть предпринята попытка доступа к элементу массива с использованием неправильного индекса. Для обработки таких ситуаций операторы блока программы могут быть текстово дополнены обработчиками исключений, которые определяют действия, которые должны быть выполнены при возникновении ситуации ошибки. Исключения могут быть подняты явно с помощью оператора raise.
Типы данных
Каждый объект в языке имеет тип, который характеризует набор значений и набор применимых операций. Основные категории типов — это элементарные типы (включающие типы перечисления, числовые и типы доступа) и составные типы (включая типы массивов и записей).
Тип перечисления определяет упорядоченный набор различных литералов перечисления, например, список состояний или алфавит символов. Типы перечисления Boolean, Character, Wide_Character и Wide_Wide_Character определены предварительно.
Числовые типы обеспечивают возможность выполнения точных или приближенных числовых вычислений. Точные вычисления используют целые типы, которые обозначают наборы последовательных целых чисел. Приближенные вычисления используют либо типы с фиксированной точкой, с абсолютными границами ошибки, либо типы с плавающей точкой, с относительными границами ошибки. Числовые типы Integer, Float и Duration определены предварительно.
Составные типы позволяют определять структурированные объекты с взаимосвязанными компонентами. Составные типы в языке включают массивы и записи. Массив — это объект с индексированными компонентами одного типа. Запись — это объект с именованными компонентами, которые могут иметь разные типы. Задачи и защищенные типы также являются формами составных типов. Типы массивов String, Wide_String и Wide_Wide_String определены предварительно.
Типы записей, задач и защищенных типов могут иметь специальные компоненты, называемые дискриминантами, которые параметризуют тип. Внутри типа записи можно определять структуры записей с вариантами, которые зависят от значений дискриминантов.
Типы доступа позволяют создавать связанные структуры данных. Значение типа доступа представляет ссылку на объект, объявленный как алиас, или на объект, созданный путем вычисления аллокатора. Несколько переменных одного типа доступа могут обозначать один и тот же объект, а компоненты одного объекта могут обозначать тот же или другие объекты. Как элементы в таких связанных структурах данных, так и их связь с другими элементами могут изменяться во время выполнения программы. Типы доступа также позволяют хранить ссылки на подпрограммы, передавать их в качестве параметров и, в конечном итоге, дереференсировать их как часть косвенного вызова.
Приватные типы допускают ограниченные представления типа. Приватный тип может быть определён в пакете, чтобы только логически необходимые свойства были видимы пользователям типа. Полные структурные детали, которые внешне не важны, доступны только внутри пакета и любых дочерних единиц.
Из любого типа можно определить новый тип путем получения. Тип вместе с его производными (как прямыми, так и косвенными) образует класс производных. Можно определить операции, относящиеся к классу, которые принимают в качестве параметра операнд любого типа в классе производных. Для типов записей и приватных типов производные могут быть расширениями родительского типа. Типы, которые поддерживают эти возможности объектно-ориентированного программирования — операции класса и расширение типов — являются помеченными, так что конкретный тип операнда в классе производных может быть идентифицирован во время выполнения. Когда операция помеченного типа применяется к операнду, чья специфика не известна до времени выполнения, выполняется неявное диспетчирование на основе метки операнда.
Типы интерфейсов обеспечивают абстрактные модели, из которых можно составлять и получать другие интерфейсы и типы. Это обеспечивает надёжную форму множественного наследования. Типы интерфейсов также могут быть реализованы типами задач и защищёнными типами, тем самым позволяя объединить параллельное программирование и наследование.
Понятие типа дополняется понятием подтипа, позволяющим пользователю ограничить набор допустимых значений типа. Подтипы могут использоваться для определения поддиапазонов скалярных типов, массивов с ограниченным набором значений индексов, а также записей и приватных типов со специфическими значениями дискриминантов.
Другие средства
Клаузы аспектов могут использоваться для указания соответствия между типами и особенностями базовой машины. Например, пользователь может указать, что объекты данного типа должны быть представлены с заданным количеством бит или что компоненты записи должны быть представлены с заданной структурой хранения. Другие возможности позволяют контролируемо использовать низкоуровневые, непереносимые или зависящие от реализации аспекты, включая непосредственное вставку машинного кода.
Клаузы аспектов также могут использоваться для указания более абстрактных свойств сущностей программы, таких как предусловия и постусловия подпрограммы или инвариант для приватного типа. Дополнительные аспекты могут быть указаны для того, чтобы пользовательские типы могли использовать конструкции языка, такие как литералы, агрегаты или индексирование, обычно резервируемые для определённых категорий типов, определённых языком, таких как числовые типы, типы записей или типы массивов.
Предопределённая среда языка обеспечивает ввод-вывод и другие возможности с помощью стандартных библиотек пакетов. Ввод-вывод поддерживается для значений пользовательских, а также предопределённых типов. Предоставляются стандартные средства представления значений в виде отображения.
Предопределённые стандартные пакеты библиотек предоставляют средства, такие как обработка строк, контейнеры различных типов (векторы, списки, отображения и т. д.), математические функции, генерация случайных чисел и доступ к среде выполнения.
Специализированные приложения определяют дополнительные предопределённые пакеты и средства библиотек с акцентом на такие области, как планирование в реальном времени, обработка прерываний, распределённые системы, численные вычисления и системы с высокой надёжностью.
Наконец, язык предоставляет мощное средство параметризации блоков программ, называемые обобщёнными блоками программ. Обобщённые параметры могут быть типами и подпрограммами (а также объектами и пакетами), что позволяет определять общие алгоритмы и структуры данных, которые применимы ко всем типам данного класса.
Параграфы 44 по 57 были заменены и перенесены в предисловие.
Инструкции по отправке комментариев
Неформальные комментарии к данному Справочнику могут быть отправлены тремя способами:
  • по электронной почте по адресу:
ada-comment@ada-auth.org
  • заполнив веб-форму по адресу:
https://arg.adaic.org/community-input
  • создав новую «задачу» на сайте GitHub ARG:
https://github.com/Ada-Rapporteur-Group/User-Community-Input
При необходимости редактор проекта инициирует процедуру исправления дефекта.
Комментарии должны использовать следующий формат:
!Тема Заголовок, обобщающий комментарий
!Ссылка Ada 2022 RMss.ss(pp)
!От Имя автора гггг-мм-дд
!Ключевые слова Ключевые слова, относящиеся к теме
!Обсуждение

Текст обсуждения
где ss.ss — номер раздела или подраздела, pp — номер параграфа при необходимости, а гггг-мм-дд — дата отправки комментария. Дата является необязательной, как и строка !Ключевые слова.
Пожалуйста, используйте описательный «Тема» при отправке сообщения по электронной почте или заголовок при создании новой задачи и ограничьте каждое сообщение одним комментарием.
При исправлении опечаток или внесении незначительных предложений по формулировкам, поместите исправление непосредственно как тему комментария; используйте квадратные скобки [ ] для указания текста, который нужно удалить, фигурные скобки { } для указания текста, который нужно добавить, и предоставьте достаточно контекста, чтобы суть предложения была понятна сама по себе, или поместите дополнительную информацию в тело комментария, например:
!Тема [c]{C}haracter
!Тема его значение не определено
Этот параграф был удалён.
Благодарности за издание Ada 83
Ada — результат коллективных усилий по разработке общего языка для программирования масштабных и систем реального времени.
Работа над общим языком высокого уровня началась в 1974 году. Требования Министерства обороны США были формализованы в серии документов, которые были широко обсуждены службами, промышленными организациями, университетами и зарубежными военными ведомствами. Язык Ada был разработан в соответствии с окончательной (1978) формой этих требований, воплощённых в спецификации Стилмана.
Команда разработчиков Ada во главе с Жан Д. Ичбиахом включала Бернда Криг-Брюкнера, Брайана А. Вичмана, Генри Ф. Ледгарда, Жан-Клода Элиара, Жан-Люпа Гейли, Жан-Ремо Абриала, Джона Г.П. Барнса, Майкла Вудгера, Оливье Рубина, Пола Н. Хильфингера и Роберта Фёрта.
На различных этапах проекта важные вклады внесли несколько человек, тесно связанных с командой разработчиков. К ним относятся Дж.Б. Гудэнф, Р.Ф. Брендер, М.В. Дэвис, Г. Ферран, К. Лестер, Л. МакЛэрэн, Э. Морель, И.Р. Насси, И.С. Пайл, С.А. Шуман и С.С. Вестал.
Два параллельных проекта, которые были начаты во второй фазе разработки, оказали глубокое влияние на язык. Один был посвящён разработке формального определения с использованием денотационной семантики, в котором участвовали В. Донзо-Гуж, Г. Кан и Б. Ланг. Другой — разработке тестового транслятора, в котором участвовали К. Рипкен, П. Булье, П. Кадио, Дж. Холден, Дж.Ф. Хуэрас, Р.Г. Ланге и Д.Т. Корнхилл. Вся работа была поддержана посвящённой помощью Лин Черчилль и Мэрион Майерс, а также эффективной технической поддержкой Б. Гревем, В.Л. Хеймердингера и П. Клева. Г.Г. Шмитц занимал должность руководителя программы.
За пять лет, потраченных на этот проект, были проведены несколько интенсивных недельных обзоров дизайна с участием П. Белмонта, Б. Броског, П. Коэна, Р. Дьюара, А. Эванса, Г. Фишера, Х. Харте, А.Л. Хисген, П. Кнувена, М. Кроненталя, Н. Ломуто, Э. Плодередера, Г. Зигмуллера, В. Стеннинга, Д. Таффа, а также Ф. Белза, Р. Конверса, К. Корелла, А.Н. Хаберманна, Дж. Саммета, С. Сквайрса, Дж. Теллера, П. Вегнера и П.Р. Уэзерэлла.
Несколько человек оказали конструктивное влияние своими комментариями, критикой и предложениями. К ним относятся П. Бринч-Хансен, Г. Гус, К.А.Р. Хоар, Марк Рейн, У.А. Вульф, а также Э. Боэберт, П. Боннар, Х. Клаусен, М. Кокс, Г. Дизмукс, Р. Ичс, Т. Фроггатт, Х. Ганзинга, К. Хьюитт, С. Камин, Р. Котлер, О. Лекарм, Дж.А.Н. Ли, Дж.Л. Мансьон, Ф. Минель, Т. Финни, Дж. Роэрих, В. Шнейдер, А. Сингер, Д. Слозберг, И.К. Ванд, рецензенты Ada-Europe, AdaTech, Afcet, члены команды рецензирования LMSC, а также участники Ada Tokyo Study Group.
Эти обзоры и комментарии, многочисленные отчёты об оценке, полученные в конце первой и второй фазы, девятьсот отчётов о проблемах языка и отчётов о тестировании и оценке, полученных из пятнадцати разных стран во время третьей фазы проекта, тысячи комментариев, полученных во время обзора ANSI, и текущая работа рабочей группы IFIP 2.4 по языкам реализации систем и комитета Purdue Europe LTPL-E, все оказали существенное влияние на окончательное определение Ada.
Военные ведомства и агентства предоставили широкую поддержку, включая финансирование, обширные обзоры и бесчисленные индивидуальные вклады членов рабочей группы по языкам высокого уровня и других заинтересованных лиц. В частности, Уильям А. Уайтакер руководил программой на её ранних этапах. Дэвид А. Фишер отвечал за успешное разработку и доработку документов требований к языку, которые привели к спецификации Steelman.
Определение языка Ada 83 было разработано Cii Honeywell Bull, а затем Alsys, и Honeywell Systems and Research Center по контракту с Министерством обороны США. Уильям Э. Карлсон, а позднее Ларри Э. Дрюффель, служили техническими представителями правительства США и эффективно координировали усилия всех участников программы Ada.
Благодарности за издание Ada 95
Этот справочник был подготовлен группой по сопоставлению/пересмотру Ada 9X, базирующейся в Intermetrics, Inc., в состав которой входили: У. Карлсон, руководитель программы; Т. Тафт, технический директор; Дж. Барнс (консультант); Б. Броског (консультант); Р. Дафф (Oak Tree Software); М. Эдвардс; К. Гаррити; Р. Хиллард; О. Пази (консультант); Д. Розенфельд; Л. Шафер; У. Уайт; М. Вуджер.
Следующие консультанты проекта Ada 9X внесли вклад в Специальные приложения по особым потребностям: Т. Бейкер (Реальное время/Программирование систем — SEI, FSU); К. Дриц (Числовые методы — Argonne National Laboratory); А. Гаргаро (Распределённые системы — Computer Sciences); Дж. Гудэнф (Реальное время/Программирование систем — SEI); Дж. МакХью (Безопасные системы — консультант); Б. Вичман (Системы, критически важные для безопасности — NPL: Великобритания).
Эта работа регулярно просматривалась экспертами Ada 9X и членами группы референтов Ada 9X (XRG): Э. Плодередером, председателем DR и XRG (Штутгартский университет: Германия); Б. Бардин (Hughes); Дж. Барнс (консультант: Великобритания); Б. Бретт (DEC); Б. Броског (консультант); Р. Брукхардт (RR Software); Н. Коэн (IBM); Р. Дьюар (NYU); Г. Дизмукс (TeleSoft); А. Эванс (консультант); А. Гаргаро (Computer Sciences); М. Герхардт (ESL); Дж. Гудэнф (SEI); С. Хейльбруннер (Зальцбургский университет: Австрия); П. Хильфингера (UC/Беркли); Б. Кальберг (CelsiusTech: Швеция); М. Камрад II (Unisys); Дж. ван Кэтвайк (Делфтский технологический университет: Нидерланды); В. Кауфман (Россия); П. Крухтен (Rational); Р. Ландвеер (CCI: Германия); К. Лестер (Политехнический колледж Портсмута: Великобритания); Л. Мэнссон (TELIA Research: Швеция); С. Мичелл (Multiprocessor Toolsmiths: Канада); М. Миллс (Воздушные силы США); Д. Погге (ВМС США); К. Пауэр (Boeing); О. Рубин (Verdix: Франция); А. Штромейер (Швейцарский федеральный технологический институт: Швейцария); У. Тейлор (консультант: Великобритания); Дж. Токар (Tartan); Э. Василеску (Grumman); Дж. Владик (Prospeks s.r.o.: Чешская Республика); С. Ван Влиерберге (OFFIS: Бельгия).
Другая ценная обратная связь, повлиявшая на процесс пересмотра, была предоставлена командой Ada 9X по точности языка (Odyssey Research Associates), командами пользователей/реализаторов Ada 9X (AETECH, Tartan, TeleSoft), командой анализа реализации Ada 9X (Нью-Йоркский университет) и сообществом Ada в целом.
Особая благодарность Р. Мэтису, руководителю рабочей группы ISO/IEC JTC 1/SC 22 Working Group 9.
Проект Ada 9X спонсировался Совместным офисом по программе Ada. Кристин М. Андерсон в лаборатории ВВС Филлипса (Kirtland AFB, NM) была руководителем проекта.
Благодарности за исправление версии
Редактор [Р. Брукхардт (США)] хотел бы поблагодарить многих людей, чья усердная работа и помощь сделали этот выпуск возможным.
Благодарность всем членам группы референтов Ada рабочей группы ISO/IEC JTC 1/SC 22/WG 9, чья работа по созданию и редактированию исправлений формулировок была критически важна для всего процесса. Особенно ценные вклады внесли председатель ARG, Э. Плодередер (Германия), который поддерживал процесс; Дж. Барнс (Великобритания) и К. Исихата (Япония), чьи чрезвычайно подробные обзоры заставили редактора быть начеку; Г. Дизмукс (США), М. Камрад (США), П. Лерой (Франция), С. Мичелл (Канада), Т. Тафт (США), Дж. Токар (США), и другие члены, которых слишком много, чтобы их перечислить.
Особая благодарность Р. Даффу (США) за объяснения предыдущей системы форматирования этих документов во время утомительной конвертации в более современные форматы. Особая благодарность также руководителю ISO/IEC JTC 1/SC 22/WG 9, Дж. Муру (США), без чьей помощи и поддержки исправление и этот консолидированный справочник не были бы возможны.
Благодарности за версию изменения 1
Редактор [Р. Брукхардт (США)] хотел бы поблагодарить многих людей, чья усердная работа и помощь сделали этот выпуск возможным.
Благодарность всем членам группы референтов Ada рабочей группы ISO/IEC JTC 1/SC 22/WG 9, чья работа по созданию и редактированию исправлений формулировок была критически важна для всего процесса. Особенно ценные вклады внесли председатель ARG, П. Лерой (Франция), который поддерживал процесс в графике; Дж. Барнс (Великобритания), чьи тщательные обзоры обнаружили множество опечаток; Т. Тафт (США), у которого всегда было предложение, когда мы застревали, и который также, как правило, мог предоставить ценную услугу объяснения, почему вещи были такими, какие они есть; С. Бейрд (США), который обнаружил много неясных проблем с предложениями; и А. Бернс (Великобритания), который продвинул многие предложения по реальному времени до завершения. Другими членами ARG, которые внесли свой вклад, были: Р. Дьюар (США), Г. Дизмукс (США), Р. Дафф (США), К. Исихата (Япония), С. Мичелл (Канада), Э. Плодередер (Германия), Дж.П. Розен (Франция), Э. Шонберг (США), Дж. Токар (США) и Т. Варданега (Италия).
Особая благодарность Ada-Europe и Ada Resource Association, без чьей помощи и поддержки поправка и этот консолидированный справочник не были бы возможны. М. Хини (США) заслуживает особой благодарности за его неустанную работу над пакетами контейнеров. Наконец, особая благодарность руководителю ISO/IEC JTC 1/SC 22/WG 9, Дж. Муру (США), который руководил документом через процесс стандартизации.
Благодарности за издание Ada 2012
Редактор [Р. Брукхардт (США)] хотел бы поблагодарить многих людей, чья усердная работа и помощь сделали этот пересмотр возможным.
Благодарность всем членам группы референтов Ada рабочей группы ISO/IEC JTC 1/SC 22/WG 9, чья работа по созданию и редактированию изменений формулировок была критически важна для всего процесса. Особенно ценные вклады внесли председатель ARG, Э. Шонберг (США), который руководил работой; Т. Тафт (США), чьи идеи устраняли многочисленные заторы как в проектировании, так и в формулировках; Дж. Барнс (Великобритания), чьи тщательные обзоры выявили многочисленные редакционные ошибки; С. Бейрд (США), который неоднократно находил скрытые взаимодействия с предложениями, которые мы упустили. К другим членам ARG, которые существенно внесли свой вклад, относятся: А. Бернс (Великобритания), Дж. Кузинс (Великобритания), Р. Дьюар (США), Г. Дизмукс (США), Р. Дафф (США), П. Лерой (Франция), Б. Мур (Канада), Э. Плодередер (Германия), Дж.П. Розен (Франция), Б. Томас (США) и Т. Варданега (Италия).
Особая благодарность Ada-Europe и Ada Resource Association, без чьей помощи и поддержки эта третья редакция стандарта Ada не была бы возможна. Отдельное упоминание следует сделать о А. Бенешане (США) за его усилия по устранению небрежности в нашей формулировке. М. Хини (США) также заслуживает упоминания за его усилия по улучшению пакетов контейнеров. Наконец, особая благодарность руководителю ISO/IEC JTC 1/SC 22/WG 9, Дж. Токару (США), который провёл документ через процесс стандартизации.
Благодарности за исправление Ada 2012 версии 1
Редактор [Р. Брукхардт (США)] хотел бы поблагодарить многих людей, чья усердная работа и помощь сделали этот выпуск возможным.
Благодарность всем членам группы референтов Ada рабочей группы ISO/IEC JTC 1/SC 22/WG 9, чья работа по созданию и редактированию изменений формулировок была критически важна для всего процесса. Особенно ценные вклады внесли председатель ARG, Дж. Кузинс (Великобритания), который руководил работой; Т. Тафт (США), который, похоже, обладает способностью разрезать любой гордиев узел, с которым мы сталкиваемся в формулировках; Дж. Барнс (Великобритания), который по-прежнему способен находить редакционные ошибки, невидимые большинству; С. Бейрд (США), который так часто находит скрытые взаимодействия, что мы теперь назвали такие вещи в его честь. К другим членам ARG, которые существенно внесли свой вклад, относятся: А. Бернс (Великобритания), Р. Дьюар (США), Г. Дизмукс (США), Р. Дафф (США), Б. Мур (Канада), Э. Плодередер (Германия), Дж.П. Розен (Франция), Э. Шонберг (США) и Т. Варданега (Италия).
Наконец, особая благодарность руководителю ISO/IEC JTC 1/SC 22/WG 9, Дж. Токару (США), который провёл документ через процесс стандартизации.
Благодарности за версию Ada 2022
Редактор [R. Brukardt] хотел бы поблагодарить многих людей за их усердный труд и помощь, которые сделали эту ревизию возможной.
Благодарность выражается всем членам группы экспертов ISO/IEC JTC 1/SC 22/WG 9 Ada, чья работа на всех этапах процесса, от определения проблем до решения, обзора проектов функций и создания и редактирования изменений формулировок, имела решающее значение для всего процесса. Особенно ценный вклад был сделан председателем группы экспертов до июня 2018 года, Дж. Каузином, который руководил работой и обеспечил соблюдение определенных процедур; его преемником на посту председателя, С. Бэйрдом, который умело преодолевал препятствия для завершения работы, продолжая находить скрытые взаимодействия; Т. Тафтом, который часто решал сложные проблемы, которые ставили в тупик других; Б. Муром, чьи частые предложения по параллельным конструкциям значительно улучшили результат. Другими членами группы экспертов, которые существенно внесли свой вклад, были: Р. Амиард, Дж. Барнс, А. Бернс, А. Шарле, Г. Дизмукес, К. Дросс, Р. Дафф, Э. Фиш, Э. Плоэдерер, Дж.П. Розен, Ф. Шанда, Э. Шонберг, Дж. Сквирек, Т. Варданега и Р. Вай.
Наконец, особая благодарность выражается руководителю ISO/IEC JTC 1/SC 22/WG 9, П. Роджерсу, который направлял документ через процесс стандартизации.
Использование этого издания Справочника по Аде
Этот документ был переработан с исправлениями, указанными в Техническом исправлении 1 для Ады 2012 (что соответствует ISO/IEC 8652:2012/COR.1:2016) и другими изменениями, специально для этого четвертого издания. Кроме того, были исправлены различные редакционные ошибки.
Изменения в оригинальной версии Справочника по Аде 1995 года можно определить по номеру версии, следующему за номером параграфа. Параграфы с номером версии /1 были изменены Техническим исправлением 1 для Ады 95 или были редакционными исправлениями в то время, в то время как параграфы с номером версии /2 были изменены Изменением 1 или были более поздними редакционными исправлениями, а параграфы с номером версии /3 были изменены изданием Справочника 2012 года (включая дополнительные редакционные исправления). Параграфы с номером версии /4 были изменены Техническим исправлением 1 для Ады 2012 или были редакционными исправлениями в то время. Параграфы с номером версии /5 были изменены изданием Справочника 2022 года (включая дополнительные редакционные исправления). Параграфы, не помеченные таким образом, не были изменены с момента первоначального издания Справочника по Аде 1995 года и имеют те же номера параграфов, что и в этом издании. Кроме того, некоторые версии этого документа содержат полосы ревизии около номеров параграфов. Там, где вставляются параграфы, номера параграфов имеют вид pp.nn, где pp — номер предшествующего параграфа, а nn — номер вставки. Например, первый вставленный параграф после параграфа 8 имеет номер 8.1, второй вставленный параграф имеет номер 8.2 и так далее. Удаленные параграфы обозначены текстом Этот параграф был удален. Удаленные параграфы включают пустые параграфы, которые были пронумерованы в издании Справочника по Аде 1995 года.


Spec-Zone.ru

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