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


Ада — это структурированный , статически типизированный , императивный и объектно-ориентированный язык программирования высокого уровня , расширенный из Паскаля и других языков. Он имеет встроенную поддержку языка для проектирования по контракту (DbC), чрезвычайно строгую типизацию , явный параллелизм, задачи, синхронную передачу сообщений, защищенные объекты и недетерминизм . Ада повышает безопасность и удобство сопровождения кода, используя компилятор для поиска ошибок в пользу ошибок времени выполнения . Ада — это международный технический стандарт , совместно определенныйМеждународная организация по стандартизации (ISO) и Международная электротехническая комиссия (IEC). С 2020 года стандарт, неофициально называемый Ada 2012, [13] — это ISO/IEC 8652:2012. [14]

Первоначально Ada была разработана группой под руководством французского ученого-компьютерщика Жана Ишбиа из Honeywell по контракту с Министерством обороны США (DoD) с 1977 по 1983 год, чтобы заменить более 450 языков программирования, используемых Министерством обороны в то время. [15] Ада была названа в честь Ады Лавлейс (1815–1852), которая считается первым программистом. [16]

Первоначально Ада была разработана для встроенных систем и систем реального времени . Версия Ada 95, разработанная С. Такером Тафтом из Intermetrics в период с 1992 по 1995 год, улучшила поддержку систем, числового, финансового и объектно-ориентированного программирования (ООП).

Особенности Ada включают в себя: строгую типизацию , модульные механизмы программирования (пакеты), проверку во время выполнения , параллельную обработку ( задачи , синхронная передача сообщений , защищенные объекты и недетерминированные операторы выбора ), обработку исключений и дженерики . В Аде 95 добавлена ​​поддержка объектно-ориентированного программирования , включая динамическую диспетчеризацию .

Синтаксис Ады сводит к минимуму выбор способов выполнения основных операций и предпочитает английские ключевые слова (такие как «или иначе» и «и затем») символам (таким как «||» и «&&»). Ада использует основные арифметические операторы «+», «-», «*» и «/», но избегает использования других символов. Блоки кода разделяются такими словами, как «объявить», «начать» и «конец», где за «концом» (в большинстве случаев) следует идентификатор закрываемого им блока (например, если... конец, если , петля ... конец петли ). В случае условных блоков это позволяет избежать висячего else , которое может сочетаться с неправильным вложенным выражением if в других языках, таких как C или Java.

Ада предназначена для разработки очень больших программных систем. Пакеты Ada можно компилировать отдельно. Спецификации пакета Ada (интерфейс пакета) также могут быть скомпилированы отдельно без реализации для проверки согласованности. Это позволяет обнаруживать проблемы на ранней стадии проектирования, до начала реализации.


Августа Ада Кинг , графиня Лавлейс.