скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Язык АДА

либо  недостатков.  А  другой путь состоит в том, чтобы сделать

программу  настолько  сложной,  что  это  исключало  бы  всякую

возможность каких-либо погрешностей. Разработчики языка BABBAGE

выбрали третий путь, т.е. создать язык, который содержит только

явные недостатки. Программы на BABBAGE отличаются  такой низкой

надежностью,  что  процедуры  профилактического  контроля можно

начинать  до того, как интеграция всей системы будет завершена.

Это  служит  гарантией  постоянного  роста  спроса на продукцию

разработчиков на рынке сбыта в области обработки данных.

   Как  и  в  языке  PASCAL  в  языке ADA  используется принцип

"строгой печати"  с целью  избежать  появления  ошибок, которые

могут   быть   результатом  смешения  различных  типов  данных.

Разработчики  языка  BABBAGE   выступили   в   защиту  принципа

"надежной печати"  с тем, чтобы избежать ошибок, появляющихся в

результате  неправильного  написания слов в программе пользова-

теля.  В  последующих  версиях  языка BABBAGE  станет возможным

применение  "печати по слепому методу", что позволит удовлетво-

рить давно назревшие требования пользователей.

   Спорным вопросом,  правильность решения которого обсуждается

многими разработчиками языков программирования,  является метод

передачи   параметров   в  подфункции.  Некоторые  разработчики

выступают  в  защиту  "вызова  по имени",  другие  предпочитают

"вызов по значению". В языке BABBAGE используется новый метод -

"вызов по телефону".  Этот метод  оказался особенно эффективным

при  передачи  параметров  в  процессе  дистанционной обработки

данных.

   В  основу  языка ADA положена идея портативности. В процессе

разработки  языка  BABBAGE  разработчиками  учитывается  прежде

всего портативность аппаратуры. В конце концов, какая польза от

ЭВМ,  если  заказчик  не может постоянно иметь машину под рукой

или прграммное обеспечение оказывается непереносимым.

   Известно,  что  разработка  языка  программирования проходит

успешно,  если  она  находит  финансовую  поддержку  со стороны

правительства. Разработка  языка COBOL,  например, финансирова-

лась правительством, а языка ADA - Министерством обороны. После

долгих  переговоров  Министерство  Здравоохранения  согласилась

оказать финансовую поддержку разработчикам языка BABBAGE.

   В  языке ADA  долго не допускалось использования подъязыков.

В основу языка BABBAGE,  для  увеличения  его гибкости положена

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

должен  сам  определить  размер  своей  версии языка программы.

Спорный  вопрос  о  размере  BABBAGE  отпадает,  так как каждый

пользователь  сам  определяет размер языка в соответствии с его

требованиями. BABBAGE, таким образом, является идеальным языком

для  генерации  версии  компилятора  в каждом отдельном случае.

Ниже   приведены   примеры,   которые   могут   дать  некоторое

представление о языке BABBAGE.

   В  структурных  языках  программирования  запрещалась замена

операторов  передачи  управления  GOTO  и многоходовых условных

переходов  более  простой  структурой  IF-THEN-ELSE.   В  языке

BABBAGE  имеется несколько новых операторов условного перехода,

которые выполняют  роль  конечных  термов в структуре программы

пользователя:

WHAT IF (что если)

      используется  в языках программирования; переход выполня-

      ется перед проверкой контролируемого условия;

OR ELSE (иначе)

      наличие варианта,  как,  например, в фразе "Прибавить эти

      два числа, OR ELSE (или иначе)";

WHY NOT? (почему нет?)

      выполняет код который следует в безразлично каком порядке;

WHO ELSE? (кто еще?)

      используется для опроса во время операций ввода/вывода;

ELSEWHERE (где-то в другом месте)

      используется  для  того,  чтобы  указать,  что  программа

      пользователя находится где-то в другом месте,  тогда  как

      он полагает, что она здесь;

GOING GOING GONE (иду иду ушел)

      используется для записи неструктурных программ; выполняет

      произвольный переход к другой части программы пользовате-

      ля; выполняет работу 10-ти операторов GOTO.

   В  течении  многих лет в языках использовались операторы FOR

(в течении),  DO UNTIL  (выполнять до тех пор, пока),  DO WHILE

(выполнять в то время, как) и др. для обозначения цикла (LOOP).

Исследуя это направление, разработчики языка BABBAGE предлогают

нижеуказанные операторы, обозначающие цикл программы:

DON'N DO WHILE NOT (не выполнять несмотря на)

      этот цикл не выполняется,  если контролируемое условие не

      является ложным (или если это полдень в Пятницу);

DIDN'T DO (не выполнялось)

      цикл   выполняется   один  раз  и  прекращает  дальнейшее

      выполнение каких-либо циклов;

CAN'T DO (невозможно делать)

      выполнение цикла не может продолжаться;

WON'T DO (отказ выполнять)

      центральный  процессор  приостанавливает  выполнение про-

      граммы,  так как обнаруживает погрешности в коде выполня-

      емого  цикла  программы;  выполнение программы может быть

      возобновлено,  если  на  пульте  будет  набрано  "May I?"

      ("Можно мне?");

WIGHT DO (можно не выполнять)

      зависит  от того  какое решение будет принято центральным

      процессором;  выполнение,  если  CPU  находится в рабочем

      состоянии; прекращение выполнения,  если  CPU в состоянии

      останова, или если CPU в состоянии останова по ошибке;

DO ONTO OTHERS (во всем,  как хотите,  чтобы  поступали с вами,

      так поступайте и вы с другими)

      используется  при  записи основного цикла систем, работа-

      ющих в режиме разделения времени,  с целью  использования

      в этих  системах единого способа реализации взаимоотноше-

      ний между отдельными пользователями;

DO BACH (изобразить Баха)

      используется  для  записи  временных  циклов  для музыки,

      генерируемой с помощью ЭВМ (определение нужного ритма).

   В  каждом  структурном  языке,  отвечающем  самым  последним

требованиям, имеется оператор CASE для реализации многоходового

ветвления. Так в языке ALGOL имеется опретор CASE с индексацией,

а в языке PASCAL оператор с идентификацией.  Т.е. в этих языках

выбор не очень велик.  В языке BABBAGE, напротив, имеется целый

ряд операторов этого класса:

JUST IN CASE (на всякмй случай)

      предназначен  для обработки запасных пояснений и вводимых

      в  последнюю   минуту  сведений;  разрешает  пользователю

      выполнять  умножение  на  ноль  с целью исправления, если

      случайно  выпонено  деление  на  ноль;  разрешается также

      выполнение   обратного  (восстанавливающего)  действия  и

      после случайного выполненитя умножения;

BRIFF CASE (случай краткой записи)

      предназначен для обеспечения краткости программы;

OPEN AND SHUT CASE (случай "открыть и закрыть")

      при использовании этого оператора никакого доказательства

      правильности не требуется;

IN ANY CASE (в любом случае)

      этот оператор всегда означает рабочее состояние;

HOPELESS CASE (безнадежный случай)

      этот оператор всегда означает нерабочее состояние;

BASKET CASE (безвыходное состояние)

      оператор действительно означает безвыходное состояние.

   Сотрудники,  входящие  в  группу  разработки  языка BABBAGE,

постоянно  работают  над новыми  особенностями языка, что будет

способствовать беспрерывному росту уровня эффективности данного

языка при его использования заказчиками. Например, разработчики

языка BABBAGE  в настоящее время  заняты работой над оператором

ALMOST EQUAL SIGN  ("почти с одинаковым знаком"),  используемым

для сравнения двух чисел с плавающей запятой. В работе над этим

новым нюансом уже удалось преодолеть значительные трудности.

   Ни  один  язык,  неважно  каким  он  является, не может быть

использован  сам  по  себе.  И  для  языка  BABBAGE  совершенно

необходима детально разхработанная операционная система.  После

нескольких попыток использовать существующие системы сотрудники

группы решили написать собственную  "виртуальную"  операционную

систему.   Любому  известна  операционная  системя  виртуальной

памяти.  Но  сотрудники  группы  по  разработке  языка  BABBAGE

сделали попытку  найти несколько иное решение,  зайдя подальше.

Новая операционная система носит название операционной  системы

виртуального времени (VTOS). В то время как системы виртуальной

памяти  обеспечивают  виртуальные  свойства  памяти  ЭВМ,  VTOS

выполняет ту же функцию по отношению ко времени процессора.

   В результате  ЭВМ может одновременно работать с неограничен-

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

которая  физическм  хранит  часть  данных  в ЗУ на дисках, VTOS

должна также применять некоторые ухищрения для достижения своей

цели. Хотя пользователь уверен, что все его задания выполняются

в  текущий момент времени, некоторые из этих заданий в действи-

тельности будут выполняться на следующей неделе.

   Как  можно видеть,  язык BABBAGE  все еще находится в стадии

разработки.  Группа  сотрудников  по  разработке  языка BABBAGE

нуждается  в  предложениях  специалистов по новым средствам для

этого  нового  мощного  языка  программирования.  Автор статьи,

являясь  одним из сотрудников группы разработки,  обращается ко

всем,  кто  работает  в области обработки данных с помощью ЭВМ,

с  просьбой  оказать поддержку группе в разработке нового языка

программирования  (будут  приняты  все предложения от всех лиц,

желающих принять участие в работе группы).

Краткое введение в язык Ада

Eric DeArment, Team Ada
ejd@efn.org

Возможно, у вас уже возник вопрос: "Зачем знать и использовать Аду?". В ответ на этот вопрос Я могу привести как минимум три хороших причины:

1.   Это просто! Я запомнил программу типа "Hello World" за несколько минут.

2.   Это мощно! Ада была разработана таким способом, чтобы обеспечить все запросы программиста и пригодна для решения практически любых задач.

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

Предыстория Ады

В далеком 1957, ученый Джон Бэкас (John Backus) работавший в то время в IBM разработал новый язык программирования, с целью облегчить решение математических и научных проблем для инженеров, ученых и математиков. Этот язык называный FORTRAN, что является сокращением слов FORmula TRANslation (трансляция формул), имел и имеет огромный успех; даже в настоящее время, спустя cорок лет, он все так же активно используется в разработке программ и продолжает развиватся.

По другую же сторону Атлантики, в Европе, несколько ученых, которые знали о существовании Фортрана сформировали комитет для создания собственного языка способного заменить его. Спустя всего лишь месяц, в 1958 году, была завершена разработка нового языка программирования известного теперь под именем ALGOL, что является сокращением от слов ALGOrithmic Language (язык алгоритмов). Вслед за этим он был очень быстро стандартизован.

Так как существует традиция называть стандарт языка по году в который он был создан, то и создатели Алгола решили от нее не отходить назвав его Алгол 58. Впоследствии люди со всей Европы продолжили работу над Алголом, и спустя два года появился новый улучшенный вариант — Алгол 60.

Алгол 60 съиграл очень важную роль в истории нескольких языков используемых в настоящее время, в число которых входит Ада. Из Алгола 60 впоследствии вышли три семейства языков:

1.   SIMULA, созданный учеными из университета города Осло в Норвегии.

2.   CPL, созданного Кеном Томпсоном (Ken Thompson) из AT&T Bell Laboratories как инструмента для написания ОС MULTICS, которая стала предшественницей Unix. CPL также является непосредственным предком С.

3.   Последним, что вовсе не значит худшим, был Паскаль, написаный Никлаусом Виртом (Niklaus Wirth) из Швейцарского Федерального Института Технологий в Цюрихе с целью обучения студентов в колледже. Из которого в последствии мы и получили Аду.

Итак, теперь мы знаем достаточно о предшественниках Ады, потому приступим к непосредственной истории создания этого прекрасного языка.

Конкурс

В 60е-70е годы Министерство Обороны США (the United States Department of Defense) использовало для своих нужд более чем 2000 различных языков программирования (в основном для систем повышенной надежности). По большей части это были языки разработаные для выполнения какого-то конкретного задания. В результате Министерством Обороны была сформирована Рабочая Группа по Языкам Высокого Уровня (High-Order Language Working Group (HOLWG)), целью которой было найти решение создавшемуся в то время, так назваемому, "кризису программного обеспечения"

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

Вместо того чтобы создавать новый язык самим, было решено провести конкурс. Было образовано несколько команд, каждой из них был присвоен свой цвет. По случайному стечению обстоятельств все команды создали свои язык использовав Паскаль в качестве основы. В результате победила зеленая команда -- фирма Ханейвелл-Балл (Honeywell-Bull) из Франции. Познее, язык был назван "Ада" в честь леди Ады Августы Лавлейс (Lady Ada Augusta Lovelace), дочери известного поэта Байрона и ассистентки математика Чарльза Байбиджа (Charles Babbage), который изобрел Аналитическую Машину. Леди Аду принято считать первым программистом.

В 1979, МО США создало первый черновой вариант документации по Аде, затем язык был стандартизован в 1983 году. Сейчас этот стандарт принято называть "Ада83", первоначально он находился под полным контролем со стороны МО США, и ни кто не мог создать компилятор с языка без авторизации оного со стороны Министерства Обороны.

Однако все изменилось в 1987 году, когда МО США предоставило Аду в публичное распоряжение, и на язык был создан стандарт Международного Института по Стандартизации (International Standards Organization (ISO)). К 1990 году появилось более 200 проверенных на соответсвие стандарту компиляторов с этого языка, еще познее в 1995 году появился новый стандарт назваемый Ада95. Ада в редакции 95го года стала полностью объектно-ориетированым языком, а также оснащена очень удобными средствами взаимодействия с кодом написаным на Си, Фортране, Коболе и прочих языках.

Где взять Аду?

Скорее всего вы думаете, что компилятор для такого мощного как Ада языка стоит очень и очень дорого, однако вы заблуждаетесь, вы наверное удивитесь, но один из наиболее мощных и популярных компиляторов с Ады95, GNAT (Gnu/New york University Ada Translator) не будет стоить вам ни копейки (за исключением технической поддержки, но только в том случае если вы захотите ее иметь).

GNAT можно скачать с FTP-сервера Нью-Йоркского Университета ftp://cs.nyu.edu из каталога /pub/gnat. В нем содержатся различные версии GNAT'а для различных ОС например Unix, включая SunOS/Solaris, Linux, NetBSD, SGI IRIX, IBM's AIX, DEC's Digital Unix.

Страницы: 1, 2, 3


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.