Ада Августа Байрон

Биография Ады Августы Байрон. Перевод очерка итальянского военного инженера Луи Менабреа. Составление трех первых в мире вычислительных программ. Ada - универсальный язык программирования, включающий в себя средства для создания параллельных программ.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 04.05.2009
Размер файла 43,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Преимущества дисциплинированного подхода к разработке программного обеспечения, которые становятся особенно существенными по мере увеличения объема и сложности программного обеспечения.

Ада и Си

При проведении сравнительных анализов популярных языков переломано столько копий, что сегодня эту тему часто относят к разряду "религиозных войн". Поэтому ограничимся лишь ссылкой на известную статью [2], в которой делается ряд красноречивых выводов.

Разработка программ на языке Ада обходится на 60% дешевле аналогичных программных проектов, реализуемых на Си.

Программа на языке Ада имеет в 9 раз меньше дефектов, чем программа на Си; программа на Си++ имеет еще более низкие, чем программа Си, характеристики.

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

Трудоемкость изучения языка Ада не выше трудоемкости изучения Си.

Программы на Аде более надежны, чем программы на Си.

В качестве иллюстрации этих выводов, приведем пример разработки бортового программного обеспечения самолета C-130J в соответствии с требованиями Уровня А стандарта DO-178B [3]. При этом констатировалось качество кода, в 10 раз превышающее среднее для программного обеспечения Уровня А. Производительность труда выросла вчетверо относительно сопоставимых программных проектов.

Ада и Java

В Microsoft были вынуждены включить в лицензионные соглашения для своих операционных систем следующий пункт "Замечание относительно поддержки языка Java... Технология Java не является устойчивой к сбоям и не предназначена... для использования в рамках управляющих систем реального времени..., в которых сбой языка Java может повлечь за собой смерть, увечье, или тяжелый урон инфраструктуре или окружающей среде. Компания Sun Microsystems, Inc. обязала компанию Microsoft разместить данное предупреждение".

Укажем также на статьи [4] и [5], демонстрирующие преимущества языка Ада над Java.

"Адские" мифы.

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

Ада - мертвый язык, на нем сейчас никто не программирует. В действительности, Ада уверенно занимает нишу больших встроенных систем с повышенными требованиями к надежности. По сравнению с "коробочными" продуктами для Windows, такие системы не так заметны, поскольку либо существуют в одном экземпляре (какой смысл тиражировать программу, управляющую движением поездов метро), или распространяются как часть системы, в которую они встроены (бортовое программное обеспечение).

Ада - язык, предназначенный исключительно для военных применений. Ада действительно была разработана при участии Министерства обороны США, однако отсутствуют какие-либо технические, административные или иные причины, препятствующие использованию Ады для разработки гражданских систем. Количество "гражданских" проектов, основанных на этом языке, сегодня сопоставимо с количеством "военных" проектов.

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

Программистов, знающих Аду, мало, изучение языка с нуля требует чрезмерных усилий и времени. На самом же деле, настоящую трудность представляет отыскание специалистов, понимающих специфику встроенных систем и способных создавать качественные программы для них. Так, например, компания BAE, один из активных пользователей языка Ада, не требует от кандидатов знания этого языка; вместо этого ищутся люди, знакомые со встроенными системами и процессами создания программного обеспечения индустриального качества. После найма таких людей требуется всего две недели для обучения их языку Ада.

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

Существующие Ада-технологии неэффективны; и трансляторы, и порождаемый ими код, отличаются низкой производительностью. Этот миф также восходит к первой половине 80-х годов, когда появились первые реализации Ады, фактически всего лишь доказывавшие "теорему существования Ада-транслятора, соответствующего стандарту". Достаточно провести ряд несложных экспериментов, запрограммировав некоторую модельную задачку на Аде, Паскале и Си / Си++, и сравнив (при сопоставимых параметрах компиляторов) затем скорость компиляции, объем порождаемого кода и скорость его выполнения, чтобы убедиться, что какой-либо специфической неэффективности, свойственной Аде, просто не существует. Можно также отметить, что система программирования GNAT при объеме исходных текстов более 40 Мбайт, на 90% реализована на Аде, и построение ее из исходных текстов (в его ходе она трижды сама себя компилирует) на современном ПК занимает не более получаса.

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

Бесплатный сыр и как избежать мышеловки.

GNAT (GNu Ada Translator) - многоплатформная реализация языка Ада, существующая практически на всех современных индустриальных платформах и поддерживающая генерацию кода для популярных встроенных архитектур. GNAT полностью реализует стандарт Ады, включая те библиотеки, которые стандартом классифицируются как необязательные. Помимо собственно Ада-транслятора, GNAT включает инструментарий, в котором следует отметить развитую интегрированную среду разработчика и многоязыковый графический отладчик, позволяющий, в том числе, исследовать поведение программ с асинхронными процессами. Транслятор и сопутствующие инструменты можно использовать как по отдельности, вызывая их из командной строки, так и в рамках интегрированной графической среды разработки Ада-программ. Все компоненты GNAT, включая среду разработки, имеют один и тот же интерфейс на всех платформах. Помимо полной реализации описываемых стандартом средств GNAT предлагает богатый набор допускаемых стандартом расширений. GNAT - реализация Ады в многоязыковой системе программирования gcc, состоящей из набора компиляторов переднего плана для различных входных языков при общем генераторе кода, что существенно упрощает разработку программ, содержащих компоненты, реализованные на различных языках программирования.

GNAT с самого начала разрабатывался и распространялся под лицензией GPL. Увы, с GPL также связана масса мифов. Так, многие считают, что программы под GPL разрабатываются неорганизованными группами энтузиастов, распространяются абсолютно бесплатно; в результате и надежность, и функциональность таких программ оставляют желать лучшего, не позволяют использовать их в сколько-нибудь серьезных проектах. В случае с GNAT это далеко не так. Для того чтобы убедиться в этом, достаточно просмотреть список компаний, заключивших с его разработчиками контракты на техническую поддержку: Boeing, British Aerospace, Lockheed, Ericsson, SAAB, Avionics и др.

Свободное предоставление демонстрационных версий - обычная практика многих разработчиков программного обеспечения. GNAT отличается тем, что находящаяся в свободном доступе публичная версия является абсолютно полной версией технологии, без каких-либо юридических или технических ограничений на ее использование. Ряд серьезных проектов был успешно реализован именно на базе публичных версий GNAT. Программное обеспечение спускаемого аппарата Beagle 2 европейской автоматической станции Mars Express, направляющейся в данный момент к Марсу, автоматизированная станция документальной связи Министерства обороны РФ. Единственным недостатком публичных версий является то, что разработчик не предоставляет для них технической поддержки.

Заключение

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


Подобные документы

  • Краткие сведения о жизненном пути и деятельности Байрон Ады Августы - англичанки-математика и первой программистки. Создание описания вычислительной машины, проект которой был разработан Чарльзом Бэббиджем. Введение терминов "цикл" и "рабочая ячейка".

    презентация [75,8 K], добавлен 24.08.2013

  • Предмет исследования – современные методы разработки программ таких, как объектно-ориентированное программирование и визуальное проектирование, а также структурное и модульное программирование. C++ - универсальный язык программирования. Ключевые понятия.

    курсовая работа [1,1 M], добавлен 10.01.2009

  • Чарльз Бэббидж - британский математик, философ, разработавший базовую концепцию вычислительной машины. Августа Ада Кинг (урождённая Байрон), графиня Лавлейс – английский математик. Работа над описанием вычислительной машины, появление первых программ.

    презентация [1,4 M], добавлен 07.05.2014

  • Особенности разработки программ для ЭВМ. Этапы планирования программы. Понятие и особенности алгоритмов. Средства, используемые для создания программ. Виды и классификация языков программирования. Структурное и объектно-ориентированное программирование.

    реферат [59,7 K], добавлен 19.08.2010

  • Степень переносимости исходного кода между различными платформами. Первый язык программирования высокого уровня, имеющий транслятор. Программа Fortran, ее версии, отличия от других программ. Составление программ на языке программирования Fortran.

    курсовая работа [45,5 K], добавлен 04.06.2014

  • Характеристика предприятия ТОО "Com Sales Group". Составление программ на языке программирования. Составление алгоритмов, разработка численных методов решения задач. Методы откладки программ. Анализ технологии машинной обработки экономической информации.

    отчет по практике [1,3 M], добавлен 19.04.2016

  • Модели параллельного программирования; отладка параллельных программ. Реализация экспериментальной версии системы сравнительной отладки Fortran-OpenMP программ: получение, сбор и запись трассы, инструментарий программ, используемый формат файлов трассы.

    дипломная работа [92,8 K], добавлен 17.10.2013

  • Средства интегрированной среды Microsoft Visual Studio, предоставляемые программисту для реализации программ на языке С++. Особенности стиля написания программ. Типовые приемы и методы создания и отладки программ. Листинги программ и их тестирование.

    лабораторная работа [814,3 K], добавлен 26.05.2013

  • Язык программирования как формальная знаковая система, предназначенная для записи программ, его отличие от естественных языков. Прописные и строчные буквы латинского алфавита. Ключевые слова языка программирования. Классическая схема создания программы.

    презентация [1,2 M], добавлен 19.02.2014

  • Изучение методов создания диалоговой оболочки отладчика MPI-программ, который войдет в состав системы автоматизации разработки параллельных программ (DVM-системы). Основные подходы к параллельному программированию и созданию пользовательского интерфейса.

    курсовая работа [1,5 M], добавлен 14.10.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.