Ada

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Ада — структурована наказова мова програмування зі статичним зв'язуванням типу змінних, розроблена Жаном Ішбіа (фр. Jean David Ichbiah) на фірмі Cii Honeywell Bull у 1977–1983 роках. Ця перша стандартизована версія була відома як Ада83, пізніше вона була розширена, і новий стандарт отримав назву Ада95.

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

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

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

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

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

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

«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

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

  • Ада Лавлейс — англійський математик, ім'ям якої названо цю мову програмування.