Ada язык высокого уровня

Программирование | Ada

Порой в интернете можно встретить шутливые картинки с изображением старых потёртых книг, названия которых звучат как «Язык программирования Ада», и у человека, незнакомого с программированием это вполне естественно может вызвать улыбку. Откуда такое любопытное название, если о преисподней речи не идёт?

Ada — мощнейший модульный объектно–ориентированный язык общего назначения, ориентированный на разработку надёжного программного обеспечения.

История языка

Данный язык программирования высокого уровня назван в часть Августы Ады Байрон, графини Лавлейс и дочери английского поэта лорда Байрона. Она была ассистентом, коллегой и сторонницей Чарльза Бэббиджа, математика и изобретателя вычислительной машины, названной аналитической машиной. С помощью Ч. Бэббиджа в 1830 г. она написала практически законченную программу на аналитической машине для вычисления чисел Бернулли. Поэтому графиню можно назвать первым в мире программистом на вычислительной машине.

Ада, язык, носящий имя графини, был разработан по инициативе и при содействии министерства обороны США. Исследования, предпринятые в начале и середине 70-х годов, показали, что можно получить огромную экономию средств на программное обеспечение (около 24 млрд. долл. за период 1983 — 1999 гг.), если министерство обороны воспользуется единым языком программирования для решения всех своих задач вместо примерно 450 языков программирования и несовместимых диалектов, используемых программистами. Финансы поют романсы. Всё как всегда.

Результатом сих исследований стали требования к новому языку программирования, способному заменить большинство языков программирования, используемых в рамках министерства обороны США. Требования, получившие шутливое именование «соломенный человек», постепенно уточнялись с помощью широкого обсуждения как в США, так и за рубежом. В этот процесс были вовлечены вооруженные силы США, зарубежные военные организации, промышленность и университеты. Получаемые в результате очередного шага детализации требования постепенно назывались «деревянными», «железными» и, наконец, «стальными».

Несмотря на то, что побудительные мотивы создания нового языка программирования первоначально были чисто экономическими, на него оказало заметное влияние и желание иметь язык программирования, направленный на решение важных проблем разработки программного обеспечения. Требования к новому языку содержали такие технические особенности, как простота и полнота языка, надежность, правильность и переносимость программ, простота поддержки, возможность разработки больших программ, программирование в реальном масштабе времени и обнаружение и исправление ошибок. Для разработки языка, удовлетворяющего перечисленным требованиям, был организован международный конкурс. Семнадцать фирм подали свои предложения, четыре из них были отобраны как полуфиналисты. Интересно, что все полуфиналисты в качестве основы для своих языков взяли язык Паскаль. Победителем конкурса стал язык программирования, разработанный группой ученых под руководством Ж. Ишбиа фирмы CII Honeywell Bull. Претерпев некоторое число изменений, этот язык был назван Ада. Через некоторое время доработанный язык Ада становится стандартом ANSI; дальнейшие изменения в языке были направлены на его упрощение и устранение несоответствий. Язык Ада был принят как стандарт ANSI в феврале 1983 г.

Другим направлением работ министерства обороны США по стандартизации своего программного обеспечения был проект аттестации компиляторов с языка Ада. Цель этого проекта – разработка набора стандартных тестов, которые компилятор должен выполнить прежде, чем он будет зафиксирован как реализующий стандарт языка Ада. Параллельно с этим был начат процесс разработки требований к окружению программ на языке Ада и к интерфейсу между программами и пользователями.

Язык Ада – это современный язык программирования, содержащий такие возможности паскалеподобных языков, как определение типов, общие управляющие структуры и подпрограммы. Более того, в языке Ада собраны многие достижения теории языков программирования, полученные после 1970 г. Язык поддерживает логическую модульность, для которой данные, типы и подпрограммы – все могут быть пакетами. Физическая модульность достигается раздельной компиляцией. Язык Ада поддерживает программирование в реальном масштабе времени за счет механизмов распараллеливания и обработки исключений. Системное программирование поддерживается за счет доступа к системно-зависимым параметрам и управлением точностью при представлении данных.

Язык Ада вводит строгую дисциплину программирования, направленную на то, чтобы сделать программы более удобочитаемыми, надежными, переносимыми, модульными, эффективными и т.д. – т.е. обладающими всеми качествами хорошей программы. Например, программист должен объявить все объекты, использовать объекты в соответствии с их типами и обращаться к объектам только в соответствии с правилами видимости языка Ада. Пусть ранее программист использовал для этих целей язык, не обладающий той строгостью, которую предписывает язык Ада. Однако, написав несколько нетривиальных программ на языке Ада, программист оценит его правила, поймет, что цель ограничений языка Ада – это найти большее по сравнению с другими языками программирования число ошибок, причем раньше и автоматически, а также помочь программисту писать хорошие программы, не сдерживая его творчество и изобретательность.

Особенности языка

Синтаксис

Примеры программ

procedure HelloWorld is
begin
Ada.Text_IO.Put_Line(«Hello, World!»);
end HelloWorld;

2) рекурсивное определение факториала

with Ada.Text_IO, Ada.Integer_Text_IO, Ada.Long_Long_Integer_Text_IO;

procedure Factorial is
begin
declare
function Fact (N: Integer) return Long_Long_Integer is
begin
if N=0 then
return 1;
else
return Long_Long_Integer(N)*Fact(N-1);
end if;
end Fact;
i: Integer := 0;
begin
loop
Ada.Integer_Text_IO.Put (Item => i, Width => 1);
Ada.Text_IO.Put («! = «);
Ada.Long_Long_Integer_Text_IO.Put (Item => Fact(i), Width => 1);
Ada.Text_IO.New_Line;
i := i + 1;
exit when i=17;
end loop;
end;
end Factorial;

3) Решение квадратных уравнений

Ada предоставляет тип данных для работы с комплексными числами, который требует использования пакетов Generic_Complex_Types и Generic_Complex_Elementary_Functions с предварительной инициализацией их типом данных для хранения комплексных чисел (в данном случае — Float ). Ada не поддерживает неявные преобразования типов, поэтому все преобразования выполняются в явном виде.

with Ada.Text_IO,
Ada.Integer_Text_IO,
Ada.Float_Text_IO,
Ada.Numerics.Elementary_Functions,
Ada.Text_IO.Complex_IO,
Ada.Numerics.Generic_Complex_Types,
Ada.Numerics.Generic_Complex_Elementary_Functions;
use Ada.Text_IO, Ada.Integer_Text_IO, Ada.Float_Text_IO;

procedure QuadraticEquation is
package Complex_Types is new Ada.Numerics.Generic_Complex_Types (Float);
package Complex_Functions is new Ada.Numerics.Generic_Complex_Elementary_Functions(Complex_Types);
package Complex_IO is new Ada.Text_IO.Complex_IO (Complex_Types);

use Complex_Types, Complex_Functions, Complex_IO;

A,B,C,D: Integer;
A2f, Bf, S: Float;
Dc: Complex;
begin
Put(«A = «);
Get(Item => A);
if A = 0 then
Put_Line(«Not a quadratic equation.»);
return;
end if;
Put(«B = «);
Get(B);
Put(«C = «);
Get(C);
A2f := Float(2*A);
Bf := Float(B);

Источник

Язык программирования АДА


Язык программирования высокого уровня Ада назван в часть Августы Ады Байрон, графини Лавлейс и дочери английского поэта лорда Байрона. Она была ассистентом, коллегой и сторонницей Чарльза Беббиджа, математика и изобретателя вычислительной машины, названной аналитической машиной. С помощью Ч. Беббиджа в 1830 г. она написала практически законченную программу на аналитической машине для вычисления чисел Бернулли. Поэтому графиню можно назвать первым в мире программистом на вычислительной машине.

Ада, язык, носящий имя графини, был разработан по инициативе и при содействии министерства обороны США. Исследования, предпринятые в начале и середине 70-х годов, показали, что можно получить огромную экономию средств на программное обеспечение (около 24 млрд. долл. за период 1983 — 1999 гг.), если министерство обороны воспользуется единым языком программирования для решения всех своих задач вместо примерно 450 языков программирования и несовместимых диалектов, используемых программистами.

Результатом этого исследования стали требования к новому языку программирования, способному заменить большинство языков программирования, используемых в рамках министерства обороны США. Требования, получившие шутливое название «соломенный человек», постепенно детализировались с помощью широкого обсуждения как в США, так и за рубежом. В этот процесс были вовлечены вооруженные силы США, зарубежные военные организации, промышленность и университеты. Получаемые в результате очередного шага детализации требования постепенно назывались «деревянными», «железными» и, наконец, «стальными».

Хотя побудительные мотивы создания нового языка программирования первоначально были чисто экономическими, на него оказало заметное влияние и желание иметь язык программирования, направленный на решение важных проблем разработки программного обеспечения. Требования к новому языку содержали такие технические особенности, как простота и полнота языка, надежность, правильность и переносимость программ, простота поддержки, возможность разработки больших программ, программирование в реальном масштабе времени и обнаружение и исправление ошибок. В поддержку тенденции перевода на мультикомпьютеры и отказа от больших ЭВМ в требованиях также содержалось и параллельное программирование, т.е. возможность писать программы, компоненты которых могли бы выполняться параллельно на различных ЭВМ или на одной ЭВМ квазипараллельно. Для разработки языка, удовлетворяющего перечисленным требованиям, был организован международный конкурс. Семнадцать фирм подали свои предложения, четыре из них были отобраны как полуфиналисты. Интересно, что все полуфиналисты в качестве основы для своих языков взяли язык Паскаль. Победителем конкурса стал язык программирования, разработанный группой ученых под руководством Ж. Ишбиа фирмы CII Honeywell Bull. Претерпев некоторое число изменений, этот язык был назван Ада. Через некоторое время доработанный язык Ада становится стандартом ANSI; дальнейшие изменения в языке были направлены на его упрощение и устранение несоответствий. Язык Ада был принят как стандарт ANSI в феврале 1983 г.

Другим направлением работ министерства обороны США по стандартизации своего программного обеспечения был проект аттестации компиляторов с языка Ада. Цель этого проекта – разработка набора стандартных тестов, которые компилятор должен выполнить прежде, чем он будет зафиксирован как реализующий стандарт языка Ада. Параллельно с этим был начат процесс разработки требований к окружению программ на языке Ада и к интерфейсу между программами и пользователями.

Язык Ада – это современный язык программирования, содержащий такие возможности паскалеподобных языков, как определение типов, общие управляющие структуры и подпрограммы. Более того, в языке Ада собраны многие достижения теории языков программирования, полученные после 1970 г. Язык поддерживает логическую модульность, для которой данные, типы и подпрограммы – все могут быть пакетами. Физическая модульность достигается раздельной компиляцией. Язык Ада поддерживает программирование в реальном масштабе времени за счет механизмов распараллеливания и обработки исключений. Системное программирование поддерживается за счет доступа к системно-зависимым параметрам и управлением точностью при представлении данных.

Язык Ада вводит строгую дисциплину программирования, направленную на то, чтобы сделать программы более удобочитаемыми, надежными, переносимыми, модульными, эффективными и т.д. – т.е. обладающими всеми качествами хорошей программы. Например, программист должен объявить все объекты, использовать объекты в соответствии с их типами и обращаться к объектам только в соответствии с правилами видимости языка Ада. Пусть ранее программист использовал для этих целей язык, не обладающий той строгостью, которую предписывает язык Ада. Однако, написав несколько нетривиальных программ на языке Ада, программист оценит его правила, поймет, что цель ограничений языка Ада – это найти большее по сравнению с другими языками программирования число ошибок, причем раньше и автоматически, а также помочь программисту писать хорошие программы, не сдерживая его творчество и изобретательность.

Источник

Язык программирования Ада

Ада — мощный объектно‐ориентированный язык общего назначения ориентированный на разработку надежного программного обеспечения. В язык включены механизмы поддержки параллельного исполнения, обработки исключений, настраиваемых модулей, поддержки распределенных вычислений, стандартные интерфейсы с другими языками и библиотеками. Ада имеет компиляторы под практически любую операционную систему.

Этот сайт посвящен языку программирования Ада. Здесь собраны как русскоязычные материалы, представляющие главный интерес, так и ссылки на другие ресурсы, которые могут оказаться полезными людям, использующим язык или желающим его изучить.

В этой брошюре Джон Барнс, на примере языка Ада 2012, SPARK 2014 и других языков, раскрывает особенности разработки безопасного и надежного программного обеспечения.

Для обсуждения вопросов языка Ада создана почтовая конференция Ada_Ru. Участвуя в ней, вы можете получить ответы на интересующие вас вопросы, касающиеся Ады, узнать новости из мира Ады, пообщаться с единомышленниками. Конференция насчитывает более 70 человек, трафик около 30 сообщений в месяц.

Подписаться на конференцию и посмотреть архив можно на страничке groups.yahoo.com. Также можно подписаться и послав письмо по адресу ada_ru-subscribe@yahoogroups.com.

Рассылка также архивируется на сервере в разделе „Форум“, где есть возможность читать обычным веб‐клиентом.

На тему языка Ада можно пообщаться «вживую»

    Группе telegram — adalang Viber чате adaru в Jabber‐чате по адресу ada-ru@conference.jabber.ru IRC канал #ada в сети RusNet

В грядущий стандарт языка Ада, с условным названием Ада 202x, уже добавлено немало изменений. Мы подготовили краткий обзор.

09.08.2018 Краткий обзор изменений уже приняты в грядущий стандарт языка Ада 202x.

07.06.2018 Выпуск инструментария для языка Ада GNAT Community 2018.

14.01.2018 Нашу почтовую рассылку теперь можно использовать как обычный форум. Для создания новых тем и отправки сообщений необходимо зарегистрироваться. В данный момент работает регистрация с использованием OAuth2 учетных записей Google, Facebook и GitHub.

08.02.2017 Доступен перевод брошюры «Безопасное и надежное программное обеспечение на примере языка Ада 2012, SPARK 2014» Джона Барнса.

31.01.2017 Новая статья «Механизм сигналов‐слотов» в которой рассматривается реализация данного приема на языке Ада.

24.07.2014 Доступен кросс‐компилятор «GNAT GPL for Bare Board ARM» для платформ Linux, Mac OS X и Windows. Он позволяет вести разработку для процессоров ARM Cortex. Пакет включает студию разработки GPS, а также несколько разновидностей системных библиотек — минимальную версию (Small Footprint Profile) и Ravenscar Profile. Обе дают возможность исполнять Ада код без ОС. Ravenscar версия предоставляет эффективную, легкую, предсказуемую поддержку многозадачных систем. Скачать можно на сайте libre.adacore.com

10.06.2013 Обзорная статья Что нового в Ада 2012 раскрывает новые возможности языка Ада стандарта 2012 года, такие как поддержка контрактного программирования, новые типы выражений, расширение стандартной библиотеки и прочее.

29.05.2013 Вышла новая версия средств разработки GNAT GPL 2013. Скачать можно на сайте libre.adacore.com.

15.12.2012 Принят и опубликован новый стандарт языка Ада 2012. Скачать руководство по языку и обзор нововведений (Ada 2012 Rationale) можно на сайте www.adaic.org. Развернутую презентация на английском можно посмотреть тут. Ведет ее Эд Шомберг, один из ведущих специалистов по языку Ада.

27.06.2011 О неблокирующих алгоритмах, низкоуровневых средствах синхронизации потоков и других хитростях можно почитать в новой статье на нашем сайте.

06.05.2011 Мы разместили Gentoo ada_ru Overlay с пакетами для языка Ада на нашем сайте и планируем его постепенно пополнять. Более того, у нас теперь открыт хостинг Git репозиториев проектов связанных с языком Ада.

11.11.2010 О том, как работать с портами ввода/вывода в ОС Linux из программе на Аде рассказывает Александр Гавва.

17.08.2010 Мы объявляем конкурс студенческих работ Ada-GUI-2010. Подробнее.

25.06.2010 Вышла новая версия GNAT GPL 2010. Скачать можно на сайте libre.adacore.com.

18.09.2009 Приглашаем принять участие в Международной выставке «Перспективные технологии и системы» PTS-2009, где планируется выставочный блок сообщества Ada-ru.

11.06.2008 Вышла новая версия GNAT GPL 2008. Скачать можно на сайте libre.adacore.com и на нашем FTP зеркале.

07.04.2008 Теперь на тему языка Ада можно пообщаться в Jabber‐чате по адресу ada-ru@conference.jabber.ru

04.10.2007 Для ускорения развития сайта мы вводим Wiki. Это позволит легче и оперативней размещать материалы. Например, сразу появилась страничка с бинарными пакетами для Windows. В период перехода возможна небольшая рассинхронизация индекса страниц.

Источник

Язык программирования АДА


Язык программирования высокого уровня Ада назван в часть Августы Ады Байрон, графини Лавлейс и дочери английского поэта лорда Байрона. Она была ассистентом, коллегой и сторонницей Чарльза Беббиджа, математика и изобретателя вычислительной машины, названной аналитической машиной. С помощью Ч. Беббиджа в 1830 г. она написала практически законченную программу на аналитической машине для вычисления чисел Бернулли. Поэтому графиню можно назвать первым в мире программистом на вычислительной машине.

Ада, язык, носящий имя графини, был разработан по инициативе и при содействии министерства обороны США. Исследования, предпринятые в начале и середине 70-х годов, показали, что можно получить огромную экономию средств на программное обеспечение (около 24 млрд. долл. за период 1983 — 1999 гг.), если министерство обороны воспользуется единым языком программирования для решения всех своих задач вместо примерно 450 языков программирования и несовместимых диалектов, используемых программистами.

Результатом этого исследования стали требования к новому языку программирования, способному заменить большинство языков программирования, используемых в рамках министерства обороны США. Требования, получившие шутливое название «соломенный человек», постепенно детализировались с помощью широкого обсуждения как в США, так и за рубежом. В этот процесс были вовлечены вооруженные силы США, зарубежные военные организации, промышленность и университеты. Получаемые в результате очередного шага детализации требования постепенно назывались «деревянными», «железными» и, наконец, «стальными».

Хотя побудительные мотивы создания нового языка программирования первоначально были чисто экономическими, на него оказало заметное влияние и желание иметь язык программирования, направленный на решение важных проблем разработки программного обеспечения. Требования к новому языку содержали такие технические особенности, как простота и полнота языка, надежность, правильность и переносимость программ, простота поддержки, возможность разработки больших программ, программирование в реальном масштабе времени и обнаружение и исправление ошибок. В поддержку тенденции перевода на мультикомпьютеры и отказа от больших ЭВМ в требованиях также содержалось и параллельное программирование, т.е. возможность писать программы, компоненты которых могли бы выполняться параллельно на различных ЭВМ или на одной ЭВМ квазипараллельно. Для разработки языка, удовлетворяющего перечисленным требованиям, был организован международный конкурс. Семнадцать фирм подали свои предложения, четыре из них были отобраны как полуфиналисты. Интересно, что все полуфиналисты в качестве основы для своих языков взяли язык Паскаль. Победителем конкурса стал язык программирования, разработанный группой ученых под руководством Ж. Ишбиа фирмы CII Honeywell Bull. Претерпев некоторое число изменений, этот язык был назван Ада. Через некоторое время доработанный язык Ада становится стандартом ANSI; дальнейшие изменения в языке были направлены на его упрощение и устранение несоответствий. Язык Ада был принят как стандарт ANSI в феврале 1983 г.

Другим направлением работ министерства обороны США по стандартизации своего программного обеспечения был проект аттестации компиляторов с языка Ада. Цель этого проекта – разработка набора стандартных тестов, которые компилятор должен выполнить прежде, чем он будет зафиксирован как реализующий стандарт языка Ада. Параллельно с этим был начат процесс разработки требований к окружению программ на языке Ада и к интерфейсу между программами и пользователями.

Язык Ада – это современный язык программирования, содержащий такие возможности паскалеподобных языков, как определение типов, общие управляющие структуры и подпрограммы. Более того, в языке Ада собраны многие достижения теории языков программирования, полученные после 1970 г. Язык поддерживает логическую модульность, для которой данные, типы и подпрограммы – все могут быть пакетами. Физическая модульность достигается раздельной компиляцией. Язык Ада поддерживает программирование в реальном масштабе времени за счет механизмов распараллеливания и обработки исключений. Системное программирование поддерживается за счет доступа к системно-зависимым параметрам и управлением точностью при представлении данных.

Язык Ада вводит строгую дисциплину программирования, направленную на то, чтобы сделать программы более удобочитаемыми, надежными, переносимыми, модульными, эффективными и т.д. – т.е. обладающими всеми качествами хорошей программы. Например, программист должен объявить все объекты, использовать объекты в соответствии с их типами и обращаться к объектам только в соответствии с правилами видимости языка Ада. Пусть ранее программист использовал для этих целей язык, не обладающий той строгостью, которую предписывает язык Ада. Однако, написав несколько нетривиальных программ на языке Ада, программист оценит его правила, поймет, что цель ограничений языка Ада – это найти большее по сравнению с другими языками программирования число ошибок, причем раньше и автоматически, а также помочь программисту писать хорошие программы, не сдерживая его творчество и изобретательность.

Источник

Ада (язык программирования)

А́да (Ada) — язык программирования, созданный в 1979—1980 годах в ходе проекта Министерством обороны США с целью разработать единый язык программирования для встроенных систем (то есть систем управления автоматизированными комплексами, функционирующими в реальном времени). Имелись в виду, прежде всего, бортовые системы управления военными объектами (кораблями, самолётами, танками, ракетами, снарядами и т. п.). Перед разработчиками не стояло задачи создать универсальный язык, поэтому решения, принятые авторами Ады, нужно воспринимать в контексте особенностей выбранной предметной области. Язык назван в честь Ады Лавлэйс.

Содержание

Особенности языка

В исходном варианте, стандартизованном в 1983 году, Ада — это структурный, модульный язык программирования, содержащий высокоуровневые средства программирования параллельных процессов. Синтаксис Ады унаследован от языков типа Algol или Паскаль, но расширен, а также сделан более строгим и логичным. Ада — язык со строгой типизацией, в нём исключена работа с объектами, не имеющими типов, а автоматические преобразования типов сведены к абсолютному минимуму. В стандарте 1995 года в язык были добавлены базовые средства объектно-ориентированного программирования, в стандарте 2007 эти средства были дополнены, поэтому современная Ада — объектно-ориентированный язык программирования.

Из особенностей синтаксиса можно отметить:

«Hello, world!» на Аде

Несколько различных вариантов программы «Hello, world!» можно увидеть в Викиучебнике (англ.). Различия обусловлены необходимостью использовать библиотечную функцию Put_Line — в этом языке есть три различных способа организации такого использования.

Здесь для применения функции Put_Line содержащий её пакет Ada.Text_IO импортируется с помощью конструкции use, что даёт возможность вызывать функцию по имени без квалификации — указания в вызове имени пакета, содержащего функцию.

История

Разработка языка была проведена в рамках международного конкурса, организованного и профинансированного министерством обороны США. Целью разработки было получение языка программирования, который мог бы стать единым для разработки проектов по заказам военного ведомства, главным образом, для разработки встроенных систем военного назначения и для больших военных компьютеров (на базе процессора iAPX 432 от Intel). Работа началась в 1975 году, с формирования набора требований к языку, который бы в полной мере удовлетворил разработчиков систем указанного типа. Первоначальный список требований, выпущенный под кодовым наименованием «Соломенный», был представлен на рецензию в ряд организаций и фирм, в течение двух лет последовательно уточнялся, в конечном счёте превратившись в итоговый документ под названием «Стальной».

После завершения формирования требований был проведён анализ, который показал, что ни один из имеющихся языков программирования не удовлетворяет требованиям в достаточной мере, так что было принято решение разработать новый язык. Конкурс на его создание был объявлен в 1977 году, разработчикам было предложено базироваться на одном из трёх языков: Паскаль, Алгол-68 или PL/1.

Из представленных на конкурс 15 проектов было отобрано 4 (все основаны на Паскале). Эти проекты были отправлены на дальнейшую доработку. На следующем этапе из 4 проектов отобрали два, из которых, после очередной доработки, был выбран один. Этот язык получил наименование «Ада» — разработавшая его группа под руководством француза Жана Ишбиа дала языку название в честь Огасты Ады Кинг Лавлейс (1815—1852), дочери поэта Дж. Байрона, которая занималась разработкой программ для вычислительной машины Бэббиджа и считается первым программистом в мире.

В 1983 году язык был официально стандартизован ANSI. Стандарт языка ANSI/MIL-STD-1815-A-1983 был утверждён 17 февраля 1983 года. МО США сделало наименование «Ada» зарегистрированной торговой маркой, запретив выпускать трансляторы языка, не прошедшие официальную процедуру тестирования на соответствие стандартам. Процедура состояла в прогоне через тестируемый компилятор большого количества (более 1000) тестовых программ (так называемый комплект ACVC), для каждой из которых был однозначно определён результат тестирования: либо удачная компиляция, либо выдача вполне конкретного сообщения об ошибке. Тестирование проводилось по принципу «всё или ничего» — при ошибке в обработке хотя бы одного тестового примера компилятор считался не прошедшим тест, причём тестирование было действительно только на той аппаратной и программной платформе, на которой оно проводилось. Таким образом была в зародыше подавлена возможность образования «версий» или «диалектов» языка Ада.

В 1987 году язык Ада был официально стандартизован ISO. С этого момента МО США предоставило язык в публичное распоряжение.

К 1990 году в мире существовало уже около 200 компиляторов, соответствовавших стандарту языка Ада.

В 1995 году был принят новый стандарт Ады, известный как Ada95. В язык были введены средства объектного программирования. Кроме того, язык был дополнен более развитыми средствами для взаимодействия с программами, написанными на других языках.

В марте 2007 года опубликованы [3] изменения в стандарте Ады. Они коснулись, в основном, возможностей объектно-ориентированного программирования: введены интерфейсы, принят обычный для большинства гибридных языков синтаксис вызова метода, внесён ещё ряд дополнений.

Ада в СССР и России

В СССР в 80-х годах была организована Рабочая Группа по языку Ада при Госкомитете по науке и технике. Группа занималась изучением всех открытых (а также, по слухам, добытых разведкой закрытых) данных по языку Ада и исследовала возможность и целесообразность развития и использования Ады в СССР. Деятельность этой группы привела к концу 80-х годов к разработке компиляторов Ады для практически всех применяемых в СССР компьютеров. Было выпущено несколько книг по языку Ада на русском языке.

В МГУ проводилась работа по созданию собственных пакетов тестирования Ада-трансляторов на соответствие стандартам. В ЛГУ для создания Ада-системы была использована ранее разрабатываемая для реализации Алгола-68 система «Паллада», которую перевели на Аду. Система содержит интегрированную среду разработки, компилятор, текстовый редактор, отладчик, библиотеки, систему контроля версий и командный интерпретатор.

После распада СССР работа по распространению Ады практически прервалась. Правда, были приняты три программы развития разработки ПО на Аде (в министерстве обороны, министерстве гражданской авиации и министерстве образования и науки), но разработка их ведётся медленно и нескоординированно. В результате в России язык Ада малоизвестен, большинство современных российских программистов считают его «мёртвым языком» и ничего о нём не знают. Ада используется в России и СНГ отдельными энтузиастами. Тем не менее, язык применяется для промышленной разработки ПО. Известно несколько разработанных на Аде проектов, работающих в России. Среди них:

Критика

С момента появления Ада подверглась критике некоторых признанных авторитетов в области разработки языков программирования, в первую очередь — за сложность синтаксиса и большой объём. В частности, язык критиковали Чарльз Хоар и Никлаус Вирт (участвовавшие со своим проектом в данном конкурсе, но выбывшие после первого этапа), а также Эдсгер Дейкстра.

Дейкстра усомнился, что язык такой сложности, как Ада, может быть обозрим и управляем.

Распространение, перспективы

Тем не менее, по некоторым осторожным прогнозам, с удешевлением аппаратуры и распространением встроенных систем со сложным ПО рынок для программ на Аде может заметно вырасти:

… сейчас на постсоветском пространстве в области программной индустрии и образования сложился очевидный порочный круг: в индустрии практически не знают про Аду, соответственно, со стороны индустрии нет запроса к образованию по подготовке Ада-специалистов, и из вузов в индустрию приходят новые люди, которые практически ничего не знают про Аду.

Операционные системы, написанные на Аде

Встроенные системы

Системы в разработке

Больше не существующие системы

Компиляторы Ада

Название Компания Версия Операционная система Сайт
AdaMagic SofCheck Ада 95 ? www.sofcheck.com
AdaMULTI Green Hills Software Ада 83, Ада 95, Си, Си++, Фортран Solaris SPARC, GNU/Linux x86, Windows www.ghs.com
DEC Ada Hewlett Packard Ада 83 OpenVMS h71000.www7.hp.com
GNAT AdaCore Ада 83, Ада 95, Ада 2005, Си Solaris SPARC, Linux x86/x86-64, Windows, другие libre.adacore.com
ICC Irvine Compiler Corporation Ада 83, Ада 95 DEC VAX/VMS, HP 9000/700, Solaris SPARC, DEC Alpha OSF/1, PC Linux, SGI IRIX, Windows www.irvine.com
Janus/Ada RR Software Ада 83, Ада 95 SCO, UnixWare, Interactive, MS-DOS, Windows www.rrsoftware.com
MAXAda Concurrent Ада 95 Linux/Xeon, PowerPC www.ccur.com
ObjectAda Aonix Ада 95 Solaris SPARC, HP-UX, IBM AIX, Linux, Windows www.aonix.com
PowerAda OC Systems Ада 83, Ада 95 Linux, AIX (Ада 95); IBM System 370/390 (Ада 83) www.ocsystems.com
Rational Apex IBM Rational Ада, Си, Си++ Solaris SPARC, Linux www-01.ibm.com
SCORE DDC-I Ада 83, Ада 95, Си, Фортран Solaris SPARC, Windows www.ddci.com
XD Ada SWEP-EDS Ада 83 OpenVMS Alpha/VAX www.swep-eds.com
XGC Ada XGC Software Ада 83, Ада 95, Си Solaris SPARC, PC Linux, Windows (Cygwin) www.xgc.com

За исключением GNAT и XGC (для некоторых платформ) вышеперечисленные компиляторы являются платными. Некоторые фирмы, например Aonix, предлагают бесплатные демонстрационные версии, ограниченные либо по времени использования, либо по функциональности.

Среды разработки NetBeans [7] и Eclipse имеют плагины для работы с Ада.

Производные языки

Синтаксис языка Ада использован в следующих языках:

Интересные факты

Язык Пентагона — враг мира. Язык «Ады» — голос термоядерного ада… В языке «Ады» слышится проклятие роду людскому.

Источник

Читайте также:  Значение русского языка в жизни
Поделиться с друзьями
Расскажем обо всем понемногу
Adblock
detector