Ada

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

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

За своєю структурою Ада подібна до мови Паскаль, але вимагає строгішого стилю програмування, ніж її попередник. Перш за все цю мову було націлено на програмування вбудованих (англ. 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

Див. також

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

Посилання

  1. https://www.adahome.com/Rogues/taft.html
  2. https://blog.adacore.com/author/taft
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.