Язык ada был разработан для написания переносимых программ

Сведения об истории разработки и появлении на свет языка программирования Ада, а также понимание целей его разработки не только интересны сами по себе, но они также дают некоторое представление как о самом языке, так и об его свойствах.

История языка программирования Ада

В 1974 году в Министерстве Обороны США (US Department of Defence / US DoD) осознали, что они теряют много времени, усилий и денег на разработку и сопровождение встроенных компьютерных систем (например, систем наведения ракет).

В это время использовалось около 450 различных языков программирования и/или их расширений. Это увеличивало затраты времени и средств на разработку новых систем и на постоянную техническую переподготовку персонала для обслуживания уже созданных систем. Кроме того, сопровождению существующих систем мешало отсутствие стандартизации в инструментах поддержки (редакторы, компиляторы и т.д.). Все эти факторы привели к тому, что в Министерстве Обороны США осознали необходимость в едином мощном языке программирования, который должен был бы использоваться всеми поставщиками встроенных компьютерных систем.

Ада, качество и стиль. Руководство для профессиональных программистов.

Работы по разработке были начаты в 1975 году после того как в Министерстве Обороны США был разработан список требований к языку, который был широко распространен. Однако, ни один из существовавших на тот момент времени языков программирования не соответствовал выдвинутым требованиям. В итоге, в 1977 году Министерство Обороны США выдвигает предложение создать новый язык. В отличие от «комитетных языков», таких как КОБОЛ, новый язык был предметом конкурсного пересмотра в широких индустриальных и академических кругах.

Из большого числа предложений было отобрано четыре, для последующего пересмотра и доработки. Позже, для дальнейшего уточнения, из них отобрали два, и в финале выбрали проект представленный компанией Cii-Honeywell Bull. Этому языку и было дано имя Ада, в честь Августы Ады Байрон, графини Лавлейс, дочери английского поэта лорда Байрона. Она была сотрудницей Чарльза Беббиджа, изобретателя аналитической машины, и написала для этой машины программу вычисления чисел Бернулли — Августа Ада по праву считается первым в мире программистом. Разработкой данного проекта руководил Jean Ichbiah.

В 1983 году язык становится стандартом ANSI/MIL-STD-1815A-1983, а затем и международным стандартом ISO 8652:1987. Язык описывается в справочном руководстве по языку (Language Reference Manual), часто называемом LRM. Ссылки на это справочное руководство часто встречаются в книгах, посвященных языку программирования Ада, а также во многих сообщениях об ошибках компилятора. Эта книга часто рекомендуется для прочтения. Хотя читать ее довольно сложно, она является исчерпывающим авторитетным источником в вопросах по языку программирования Ада (была сформирована специальная постоянная группа для выявления противоречий в языке).

Язык претерпел пересмотр при введении нового ISO стандарта в начале 1995 года (ISO/IEC 8652:1995). Этот стандарт исправляет многие упущения и недостатки оригинального языка, и дополняет его многими новыми полезными свойствами.

Создаем свой ЯЗЫК ПРОГРАММИРОВАНИЯ. Лексер, Парсер, Абстрактное синтаксическое дерево (AST)

Для предотвращения размножения множества различных версий языка Ада, в «Ada Joint Program Office» (AJPO) заняли довольно оригинальную позицию — они зарегистрировали имя «Ada» как торговую марку. Таким образом, вы не имеете права распространять компиляторы языка программирования Ада до тех пор, пока они не пройдут тестирование на совместимость. Позднее эти требования были ослаблены, и теперь защищенное название звучит как «Validated Ada».

Читайте также:
Текстовый редактор это программа для автоматического перевода с символьных языков в машинные коды

Результирующий сертификат ратификации (валидированности) ограничен по времени и имеет дату срока истечения. После истечения срока сертификации компилятор не может больше распространятся как ратифицированный, — «Validated Ada», — компилятор языка программирования Ада. Таким образом AJPO убежден в том, что все, в текуший момент распространяемые компиляторы, соответствуют требованиям текущего стандарта.

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

Цели разработки

    «Язык Ада был разработан учитывая три взаимно перекликающиеся концепции: надежность программирования и сопровождения, программирование как человеческая деятельность и эффективность»

    «Таким образом, читабельности программ придавалось большее значение, чем легкости их написания»

Источник: www.ada-ru.org

Хочу всё знать. Язык Ада

Язык Ада более-менее всегда был на слуху. На школьной скамье мы посмеивались над его названием, в университетской программе он сухо упоминался в качестве языка, разработанным по требованию Министерства Обороны США, но непосредственно до изучения синтаксиса или применения дошли лишь редкие программисты. Отсюда сложилось ошибочное мнение, что язык Ада функционирует лишь на прошловековом оборудовании, и потребность в нем пропадет вместе с естественной модернизацией.

И это очень далеко от правды.

Появление

В 70-х годах 20 века, в разгар холодной войны, Министерство Обороны США устроило международный конкурс, по результатам которого необходимо было выбрать язык программирования для использования в военных целях. Однако ни один из существующих языков не устроил членов комиссии, поэтому путём долгого выбора и нескольких доработок на свет появился язык Ада, названный так в честь Ады Лавлейс. Далее началась многолетняя волокита со стандартизацией, регистрация торговой марки, запреты на кастомные трансляторы и прочие действия, отбившие желание массовой аудитории работать с Ада.

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

Синтаксис

Изначально, Ада — модульный язык программирования со строгой типизацией, унаследовавший синтаксис от Паскаль и Алгол. Если вы учили первый в школе или институте, то глядя на «Hello, World!» должны испытать ностальгию:

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

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

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

Более поздние стандарты частично решали эти проблемы, но по понятным причинам, они не сделали из Ада второй Python.

Ада сегодня

Вопреки мнению широкой аудитории, язык Ада до сих пор активно используется, не только в США и не только в военной индустрии. Так, например, часть ПО самолёта-амфибии Бериев Бе-200 написана как раз на Ада. Поезда метрополитена без машиниста, которые курсируют во многих крупных городах (Париже, Лондоне, Нью-Йорке и др.), также используют оборудование с американским военным языком.

Читайте также:
Как удалить программу которая требует разрешения администратора

И да, конечно, среди «клиентов» была военная и гражданская авиация (в частности, Боинг-777), ракеты, шаттлы, спутники — в общем, практически весь перечень бесконечно дорогой американской продукции, предполагающей высшую степень безопасности.

Перспективы

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

Впрочем, почти 40 лет активного использования подтверждают, что пожалуй со своей главной задачей язык Ада справился — с его помощью всё ещё можно создавать надёжный код для систем с повышенными требованиями к безопасности. При этом, если вы посмотрите на современные тенденции, количество таких изделий неуклонно растёт: автомобили с автопилотом и гибридными двигателями, частные космические аппараты и малые летательные средства, скоростные поезда, а также огромное количество встраиваемых систем. Всё это потенциальное поле для деятельности языка Ада. Добавьте сюда тот факт, что стандарт был серьёзно переработан и модернизирован в 2012 году, инструменты для работы тоже выходят и обновляются.

Таким образом, язык Ада — это и фрагмент из не самого приятного прошлого, и один из инструментов для строительства яркого будущего. И он точно не собирается на пенсию.

Источник: gb.ru

10.7.2. Язык программирования ada

Первым полным языком программирования в реальном времени является ADA. В середине 1970-х годов Министерство обороны США для сокращения расходов на раз­работку и сопровождение своих систем управления реального времени приняло реше­ние ввести единый язык программирования в качестве альтернативы сотням использо­вавшихся тогда языков. В 1979 году министерство одобрило предложения, выдвинутые французской компанией Honeywell Bull. Язык назван в честь Августы Ады Байрон, гра­фини Лавлейс (Augusta Ada Byron, Countess of Lovelace, 1815-1852), которую можно считать первым программистом в истории — она писала программы для аналитической машины (механического компьютера, который никогда не был построен), спроектиро­ванной английским изобретателем Чарльзом Бэббиджем (Charles Babbage).

Язык ADA является полной средой разработки программ с текстовым редактором, отладочными средствами, системой управлениями библиотеками и т. д. Специфика­ции ADA закреплены американским стандартом ANSI/MIL-STD-1815A и включают I средства контроля соответствия этому стандарту. Не допускаются диалекты языка — I для сертификации компилятор должен правильно выполнить все эталонные тесты.

Структура языка ADA похожа на структуру языка Pascal, но его возможности значи­тельно шире, в особенности применительно к системам реального времени. Процессу в ADA соответствует задача, которая выполняет независимо от других задач на выделен­ном виртуальном процессоре, т. е. параллельно с другими задачами. Задачи могут быть связаны с отдельными прерываниями и исключениями и работать как их обработчики.

Новым понятием, введенным в ADA, является пакет — модуль со своими собственны­ми описаниями типов данных, переменных и подпрограмм, в котором явно указано, какие из программ и переменных доступны извне. Пакеты могут компилироваться отдельно с последующим объединением в один исполняемый модуль. Это средство поддерживает модульную разработку программ и создание прикладных библиотек. В начале 1990-х го­дов язык ADA был пополнен новыми функциями для объектно-ориентированного про­граммирования и программирования в реальном времени.

Читайте также:
Как вернуть подъемные по программе молодой специалист

Машинно-ориентированное программирование низкого уровня поддерживается ADA не достаточно эффективно — это следствие постулата, что все задачи можно решить средствами высокого уровня. Например, для операций ввода/вывода в ADA используются прикладные пакеты с заранее определенными функциями для управ­ления аппаратными интерфейсами и доступа к внешним данным.

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

10.7.3. Языки С и C++

Язык программирования С, несмотря на отсутствие в нем многих средств, кото­рые теоретики считают необходимыми для хорошего языка программирования, пользуется большим успехом начиная с 1980-х годов по настоящее время. Этот язык стал популярным для всех приложений, требующих высокой эффективности, в част­ности для программ реального времени. Для обычных микропроцессоров, использу­емых в системах управления, имеются С-компиляторы и системы разработки многих производителей. В промышленности существует явная тенденция к широкому при­менению языка С и операционной системы UNIX, которая сама написана на С, по­скольку приложения, написанные на С, машинно-независимы и требуют очень не­больших усилий для адаптации к работе в различной аппаратной среде.

Философией С является разбиение программ на функции. С — слаботипизиро-ванный язык и позволяет программисту делать почти все вплоть до манипуляции с регистрами и битами. Такая свобода делает язык небезопасным, поскольку компиля­тор не может проверить, являются ли подозрительные операции умышленными или нет.

Небольшое количество заранее определенных функций и типов данных делает программы легко переносимыми между разными системами. С поддерживает как хо­роший, структурированный, так и плохой стиль программирования, оставляя ответ­ственность за качество разработки на программисте. Стиль программирования при­обретает особое значения при сопровождении программ: плохо написанная и откомментированная программа на С — такая же загадка, как и ассемблерский код. Язык С регламентирован международным стандартом ISO 9899.

Язык С предпочтителен для написания программ с обращениями к функциям опе­рационной системы, так как он обладает отличной совместимостью между логикой оп­ределения переменных и синтаксисом обращения к системе. Поскольку наиболее рас­пространенные операционные системы в приложениях автоматического управления процессами основываются на UNIX, язык С является почти вынужденным выбором при разработке программ. Почти все примеры в современной технической литературе представлены на С, а для примеров в настоящей книге принят Pascal-подобный син­таксис, поскольку по сравнению с С его легче читать неспециалистам.

Язык C++ представляет собой значительно более мощный инструмент, чем С, на основе которого он создан. В C++ значительно улучшена абстракция данных с помо­щью понятия класса, похожего на абстрактный тип данных с четким разделением меж­ду данными и операциями. Классы C++ значительно легче использовать на практике, чем аналогичные понятия в других языках, поскольку C++ поддерживает объектно-ориентированное программирование и поэтапное уточнение типов данных.

Главным преимуществом языка C++ является его способность поддерживать раз­работку легко используемых библиотек программ. Программирование в реальном времени непосредственно в C++ не поддерживается, но может быть реализовано с помощью специально разработанных программных модулей и библиотек классов.

Источник: studfile.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru