Ada

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Ada
Парадигма об'єктно-орієнтоване програмування, імперативне програмування, структурне програмування і мультипарадигмальне програмуванняd
Дата появи 1980
Творці Жан Ішбіа і S. Tucker Taftd[1][2]
Розробник Жан Ішбіа і S. Tucker Taftd[2]
Система типізації типобезпечність, nominative typingd, статична і строга типізація
Під впливом від ALGOL 68d, Pascal, Modula-2d, C++, Smalltalk, Java, Eiffel, ALGOL 60d, Green[d] і Ada 95d
Вебсайт adaic.org
CMNS: Ada у Вікісховищі

АДА (англ. Ada) — універсальна мова програмування високого рівня, орієнтована на застосування в системах реального часу і призначена для автоматизації завдань управління процесами та пристроями, до яких висуваються високі вимоги надійності.

Історія[ред. | ред. код]

Структурована наказова мова програмування зі статичним зв'язуванням типу змінних була розроблена у 1977–1983 роках групою вчених під керівництвом Жана Ішбіа (фр. Jean David Ichbiah) на фірмі Cii Honeywell Bull за ініціативи Міністерства оборони США. Готовий програмний продукт був названий на честь математикині Ади Лавлейс.

Перша стандартизована версія була відома як Ада83. Першим компілятором мови, який пройшов валідацію, був NYU Ada/Ed translator, сертифікований у 1983 році. Пізніше застосування АДА було розширено до фінансового та системного програмування і новий стандарт отримав назву Ада95.

Мова АДА використовується у США та Європі для розроблення програмного забезпечення військових об’єктів, також великих складних проектів, які потребують підвищеної безпеки та надійності: керування повітряним і залізничним рухом, банківською діяльністю, галузями економіки з високими ризиками[3].

Особливості мови[ред. | ред. код]

АДА — структурна, модульна мова програмування, що містить високорівневі засоби програмування паралельних процесів. Синтаксис АДА успадкований від мов типу Алгол та Паскаль, однак він розширений, перевершує їх за строгістю типізації даних, гнучкістю роздільної компіляції, можливістю створення високонадійних систем реального часу, наявністю засобів суворого контролю за параметрами функцій і виходом індексів за межі масивів. АДА вимагає строгішого стилю програмування, ніж її попередники. Перш за все цю мову було націлено на програмування вбудованих (англ. embedded) систем та систем реального часу (англ. real-time), де нею й досі успішно користуються.

У вихідному варіанті, стандартизованому 1983 року, Ада — це структурна, модульна мова програмування, що містить високорівневі засоби програмування паралельних процесів. Синтаксис Ади успадковано від мов типу Алгол або Паскаль, але розширено і зроблено строгішим та логічнішим. Ада — мова зі строгою типізацією, в ній виключена робота з об'єктами, що не мають типів, а автоматичні перетворення типів зведені до абсолютного мінімуму. У стандарті 1995 року в мову було додано базові засоби об'єктно-орієнтованого програмування, у стандарті 2007 ці можливості було доповнено, тому сучасна Ада — об'єктно-орієнтована мова програмування.

З особливостей синтаксису можливо відзначити:

  • Програми модульні, механізм контролю імпорту-експорту описів між модулями включає дві різні директиви: одну для підключення іншого модуля (with), іншу — для імпорту його описів (use). Також існує можливість перейменувати модуль при імпорті (rename) — цей варіант дозволяє використовувати для позначення пакета зручніші програмісту ідентифікатори.
  • Розвинена система типів, як вбудованих, так і породжуваних програмістом. Є безліч способів створення нових типів, мову підтримує два різних поняття: «підтип» і «похідний тип». Змінні типу і підтипу сумісні, змінні типу та його похідного типу — ні.
  • Підтримується перевантаження процедур, функцій і операторів — створення декількох варіантів процедури, функції або оператора з одним і тим же ім'ям, але різними сигнатурами (типами та кількістю параметрів).
  • Розвинені засоби звертання до процедур і функцій: підтримуються вхідні і вихідні параметри, передача фактичних параметрів в довільному порядку із зазначенням імен формальних, параметри зі значеннями за замовчуванням.
Для задоволення вимогам надійності мову побудовано таким чином, щоб якомога більша кількість помилок виявлялася на етапі компіляції. Крім того, однією з вимог при розробці мови була максимально легка читаність текстів програм, навіть на шкоду легкості написання[джерело?]. Результатом такого підходу став дещо «великоваговий» синтаксис і безліч обмежень, відсутніх в найбільш поширених промислових мовах (C і C++), що часто сприймаються професійними програмістами як надлишкові, наприклад, та ж строга типізація. Це призвело до формування уявлення про Аду як про складну, малозрозумілу і незручну у використанні мову[4].

Дизайн мови[ред. | ред. код]

«Hello, World»[ред. | ред. код]

Програма Hello world!: (hello.adb)

with Ada.Text_IO; use Ada.Text_IO;
procedure Hello is
begin
  Put_Line ("Hello, world!");
end Hello;

Компіляція компілятором GNAT:

gnatmake hello.adb

Див. також[ред. | ред. код]

Література[ред. | ред. код]

1. Бар Р. Язык АДА в проектировании систем / Пер. с англ. Москва : Мир, 1988. 320 с.

2. Джехани Н. Язык Ада / Пер. с англ. Москва : Мир, 1988 . 549 с.

3. Корочкин А. В. Ада 95. Введение в программирование. Киев : Світ, 1998. 160 с.

4. Ковалюк Т. В. Основи програмування. Київ: Видавнича группа BHV, 2005. 384 с

5. Armstrong, Deborah J. (February 2006). The Quarks of Object-Oriented Development. Communications of the ACM 49 (2): p.123–128.

6. Вирт Н. Построение компиляторов / Пер. с англ. Москва : ДМК Пресс, 2013. 188 с.

Посилання[ред. | ред. код]


  1. https://www.adahome.com/Rogues/taft.html
  2. а б https://blog.adacore.com/author/taft
  3. АДА
  4. Довідкове керівництво по мові АДА83. (рос.)