Реферат: Ада Августа Байрон - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

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

Банк рефератов / Информатика, информационные технологии

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 52 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

35 РЕФЕРАТ Ада Августа Байрон Ада Августа Байро н Даже граждане бывшего СССР уже знают, что 10 декабря - День прав человека, учреждённый ООН в че сть принятия в 1948 году Всеобщей декларации прав человека (в советские вре мена само существование этой декларации замалчивалось ). Общеизвестно также, что с 1901 года именно 10 дека бря вручаются ежегодные Нобелевские премии в память об их учредителе Ал ьфреде Нобеле, умершем в этот день в 1896 году . Но есть и ещё одно, менее известное, определение для этой даты, им еющее, однако, самое прямое отношение к роду занятий многих наших читате лей, - 10 декабря названо Днём программ иста в честь родившейся также в этот день первой представительницы этой не слишком древней профессии Ады Августы Лавлейс, единственной дочери п рославленного английского поэта Джорджа Гордона Байрона и его супруги Аннабеллы Милбэнк . Даже граждане бывшего СССР уже знают, что 10 декабря - День прав человека, учреждённый ООН в честь принятия в 1948 го ду Всеобщей декларации прав человека (в советские времена само существо вание этой декларации замалчивалось ). Общеизвестно также, что с 1901 года именно 10 декабря вручаются ежег одные Нобелевские премии в память об их учредителе Альфреде Нобеле, умер шем в этот день в 1896 году . Порывшись в к алендарях, энциклопедиях, справочниках, а также попутешествовав по Инте рнету, можно обнаружить, что 10 декабря 1799 года Франция перешла на метрическ ую систему мер (в чём за ней до сих пор никак не могут последовать Соединён ные Штаты Америки ), в 1828 году был основа н Санкт-Петербургский технологический институт, что в этот день родилис ь русский поэт Николай Некрасов, американская поэтесса Эмили Диккинсон и украинская писательница Марко Вовчок, французские писатель Эжен Сю и к омпозитор Цезарь Франк, британский фельдмаршал Харолд Александер, полу чивший титул "Тунисский", и советский "государственный деятель" недоброй памяти Андрей Вышинский, лауреат Нобелевской премии по литературе швед ско-немецкая поэтесса Нелли Закс, клоун Карандаш, хоккейный тренер Анато лий Тарасов, дирижёр Юрий Темирканов, литературовед и философ Сергей Аве ринцев и многие другие . Но есть и ещё о дно, менее известное, определение для этой даты, имеющее, однако, самое пря мое отношение к роду занятий многих наших читателей, - 10 декабря названо Днём программиста в честь родившейся также в этот день первой представительницы этой не слишком древней проф ессии Ады Августы Лавлейс, единственной дочери прославленного английс кого поэта Джорджа Гордона Байрона и его супруги Аннабеллы Милбэнк . Ада Августа Байрон родилась 10 декабря 1815 года ; родители её расстались, когда девочке было два месяца, и больше своего отца она не видела . Байрон пос вятил дочери несколько трогательных строк в "Паломничестве Чайльд Гаро льда", но при этом в письме к своей кузине заранее беспокоился : "Надеюсь, что Бог наградит её чем угодно, но то лько не поэтическим даром ... " Ещё менее намерена была способствовать развитию у дочери лите ратурных наклонностей мать, которую в свете за увлечённость точными нау ками прозвали "принцессой параллелограммов" . Ада получила прекрасное образование, в том числе и в области мат ематики . К 1834 году относится её первое знакомство с выдающимся математиком и изобретателем Чарльзом Бэбиджем (1791-1871 ), создателем первой цифровой вычи слительной машины с программным управлением, названной им "аналитическ ой" . Машина Бэбиджа была задумана как чисто механическое устройство с возмо жным приводом от парового двигателя, но содержала ряд фундаментальных и дей, характерных для современных компьютеров . В ней предусматривалась работа с адресами и кодами команд, д анные вводились с помощью перфокарт . Основы программирования также были заложены Бэбиджем . Несмотря на почти сорокалетний труд свое го создателя, машина так и не была достроена, опережая не только потребно сти, но и технические возможности своего времени . Многие из идей Бэбиджа просто не могли быть реализованы на б азе механических устройств и оказались востребованы только спустя сто летие, с разработкой первых электронных вычислительных машин . Понятно, что современники относились к работ ам Бэбиджа как к, по крайней мере, экстравагантному чудачеству . Супруга известного английского математика того времени де Моргана, под руководством которого Ада Августа изучала м атематику, так описывала их первый визит к Бэбиджу : "Пока часть гостей в изумлении глядела на это удивительное устройство с таким чувством, с каким, говорят, дикари первый раз видят зер кальце или слышат выстрел из ружья, мисс Байрон, совсем ещё юная, смогла по нять работу машины и оценила большое достоинство изобретения" . Бэбидж нашёл в Аде не только благодарную слу шательницу, но и верного помощника . О н искренне привязался к девушке, бывшей почти ровесницей его рано умерше й дочери . В 1835 г . Ада Байрон вышла замуж за Уильяма, восемнадцатого лорда Кинга, с тавшего впоследствии первым графом Лавлейс . (В некоторых русских публикациях с титулом семейства Лавлейс с вязывается слово ловелас ; это ошибка : Ловелас - имя героя популярного в начале прошлого века романа Ричардсон а "Кларисса Гарло", ставшее нарицательным для обозначения волокиты, собл азнителя ). Муж не имел ничего против н аучных занятий супруги и даже поощрял её в них . Правда, высоко ценя её умственные способности, он сокрушалс я : "Каким отличным генералом ты могла бы стать ! " Появление детей на время от влекло Аду от занятий математикой, но в начале 1841 г . она пишет Бэбиджу : "Я надеюсь, что моя голова может оказатьс я полезной Вам в реализации Ваших целей и планов в течении ближайших трё х-четырёх, а может быть, и более лет" . По просьбе Бэбиджа, Ада занялась переводом очерка итальянского военног о инженера Луи Фредерико Менабреа (в будущем профессора механики Туринс кого университета, одного из лидеров борьбы за объединение Италии, с 1867 г . - её премьер-министра и министра иностранных дел ). Менабреа в 1840 г ., слушая в Турине лекции Бэбидж а, подробно записал их, и в своём очерке впервые дал полное описание анали тической машины Бэбиджа и его идей программирования вычислений . Он писал : "Сам процесс вычисления осуществляется с помощью алгебраическ их формул, записанных на перфорированных картах, аналогичных тем, что ис пользуются в ткацких станках Жаккара . Вся умственная работа сводится к написанию формул, пригодных д ля вычислений, производимых машиной, и неких простых указаний, в какой по следовательности эти вычисления должны производиться" . Леди Лавлейс не просто перевела очерк Менабреа, но и снабдила его обширн ыми комментариями, которые в сумме почти втрое превысили объём оригинал ьного текста . Все комментарии, их общ ая структура и содержание подробно обсуждались и согласовывались с Бэб иджем . Известный своей нетерпимость ю к чужому мнению, Бэбидж, тем не менее, был в восторге от оригинальных про работок своей ученицы : "Чем больше я ч итаю Ваши примечания, тем более поражаюсь Вашей интуиции ... Мне не хочется расставаться с Вашим п ревосходным философским рассмотрением моей аналитической машины ... " Книга Менабреа с комментариями, подписанными инициалами A . A . L . (Ada Augusta Lovelace ), вышла в свет в августе 1843 года . Отдавая должное обоим авторам, Бэбидж писал : "Совокупность этих работ (Менабреа и Лавлейс ) представляет для тех, кто способен следовать ходу их рассуждений, наглядную демонстрацию того, что практически любые операции математического анализа могут быть выполнены с помощью машин ы" . При этом Бэбидж так до конца и не пр имирился с концепцией Ады, которую впоследствии Тьюринг именовал шесты м постулатом противников идеи мыслящей машины : "Аналитическая машина не претендует на то, чтобы создавать ч то-то действительно новое . Машина мо жет выполнять лишь то, что мы умеем ей предписать" . В комментариях Лавлейс были приведены три первые в мире вычислительные программы, составленные ею для машины Бэббиджа . Самая простая из них и наиболее подробно описанная - программа решения системы двух линейных алг ебраических уравнений с двумя неизвестными . При разборе этой программы было впервые введено понятие рабоч их ячеек (рабочих переменных ) и испол ьзована идея последовательного изменения их содержания . От этой идеи остаётся один шаг до оператора п рисвоения - одной из основополагающи х операций всех языков программирования, включая машинные . Вторая программа была составлена для вычисл ения значений тригонометрической функции с многократным повторением з аданной последовательности вычислительных операций ; для этой процедуры Лавлейс ввела понятие цикла - одной из фундаментальных конструкций ст руктурного программирования . В трет ьей программе, предназначенной для вычисления чисел Бернулли, были уже и спользованы рекуррентные вложенные циклы . В своих комментариях Лавлейс высказала также великолепную дог адку о том, что вычислительные операции могут выполняться не только с чи слами, но и с другими объектами, без чего вычислительные машины так бы и ос тались всего лишь мощными быстродействующими калькуляторами . После завершения работы над переводом и комментариями Ада предложила Б эбиджу, что она будет консультировать лиц, заинтересованных в использов ании вычислительных машин, дабы Бэбидж не отвлекался от основной работы по доведению своей аналитической машины . Но время для вычислительных машин ещё не пришло, толпы пользова телей не спешили получить консультацию у леди Лавлейс, более того - в 1842 г . правительство Британии отказал о Бэбиджу в финансовой поддержке его разработок . Бэбидж был готов на всё, чтобы раздобыть необходимые деньги . В частности, вместе с супругами Лавл ейс он увлёкся идеей создания "подлинно научной, математической" системы ставок на бегах, которая давала бы верный выигрыш . Как и следовало ожидать, "система" не сработала и принесла н е только разочарование, но и большие финансовые потери . Самым стойким её приверженцем оказалась графиня Лавл ейс - она продолжала упорно играть, ча сто даже втайне от мужа и Бэбиджа, пытаясь усовершенствовать систему . На этом она потеряла почти все свои л ичные средства . К тому же, в начале 50-х г одов её здоровье неожиданно и резко ухудшилось, и в 1852 г . Ада Лавле йс скончалась в возрасте 37 лет, как и её отец, и была похоронена рядом с ним в фамильном склепе Байронов . Имя Ады Лавлейс воскресло из небытия в середине 1930-х годов в связи с работа ми английского математика Алана Тьюринга, введшего понятие логической алгоритмической структуры, получившей название машины Тьюринга, а такж е последующим созданием первых электронных вычислительных машин . К концу 1970-х годов исследования, проведенные в министерстве обороны США, в ыявили отсутствие языка программирования высокого уровня, который бы п оддерживал все основные этапы создания программного обеспечения . Применение же различных языков программ ирования в разных приложениях приводило к несовместимости разрабатыва емых программ, дублированию разработок и другим нежелательным явления м, включая рост стоимости программного обеспечения, многократно превыш ающей стоимость самой вычислительной техники . Выход из кризиса виделся в разработке единых языка програм мирования, среды его поддержки и методологии применения . Все три составляющие этого проекта разрабат ывались очень тщательно с привлечением наиболее квалифицированных спе циалистов разных стран . В мае 1979 г . победителем в конкурсе разработки языков был признан язык Ада, названный в честь Ады Августы Лавлейс, и предложенный группой под руково дством француза Жана Ишбиа . Прототип ом этого языка явился язык программирования, названный в честь Блеза Пас каля, который еще в возрасте девятнадцати лет, в 1624 г ., разработал проект " Паскалины" или, по-другому, "Паскалева колеса" - первой механической вычислительной машины . С появлением и широким распространением персональных компьютеров язык Ада во многом утратил свою значимость, однако до сих по р используется как язык высокого уровня для разработки программ, работа ющих в реальном масштабе времени . Любопытно, что в честь Ады Лавлейс названы в Америке также два небольших города - в штатах Алабама и Оклахома . В Оклахоме существует и колледж её и мени . Вроде бы - немного, но, вместе с тем, есть люди, искренне полагающие, что на сегодняшний день слава (или, по крайней мере, популярность ) Ады Лавлейс затмила славу её знаменитого отц а, и что её вклад в мировую цивилизацию, по крайней мере, соизмерим с вклад ом великого поэта . Ada - универсальный язык программирова ния, включающий в себя средства для создания параллельных программ . Официальный язык программирования мин истерства обороны США . Существует мн ожество компиляторов для самых разных платформ . Текущая версия : Ada-95 В деле разработки новых языков программирования много спор - ных моментов, примером которых может служит ь ADA - новейшее средство программирова ния, разработанное Министерств ом обороны США и отличающее ся ч резвычайно большими возможностями . Язык програм м ирования ADA, как известно, был разработан с целью замены устаревш их и все менее используемых языков, таких как COBOL и FORTRAN . Трудности заключаются в том, что цикл замены одного языка п рограммирования другим охватывает период времени от 20 до 30 лет и не начин ается до тех пор, пока мы не убедимся на деле, что ныне существующие языки больше не отвечают нашим требованиям . Мы можем ускорить этот процесс, начав немедленную замену устар евших языков языком ADA . При этом, когда мы придем к выводу, что ADA уже устарел, замена на него только только успеет з авершиться . У нового поколения разра ботчиков языков программирования появилась тенденция называть разраб отанные ими языки именами реальных людей, а не прибегать к обычным акрон имам . Так язык PASCAL получил наименовани е в честь первого создателя счетных машин, а язык ADA назван в честь первого программиста . ADA Язык ADA назван в честь Августы Ады Байрон (Augusta Ada Byron ), использовался практически исключительно Министерством обор оны и другими правительственными органами США . Эксперты относили ADA к посредственным языкам, поскольку он с ложен для изучения (правительство не всегда руководствовалось логикой ). Данный язык был принят стандартом в правительственных органах США и был утверждён Министерством обороны в 1979 году . Разновидности : Atree ADA, Janus ADA, Meridian ADA . В деле разработки новых языков программирования много спорных моментов , примером которых м ожет служить ADA - новейшее средство пр ограммирования, разработанное Мини стерством обороны США и отличающееся чрезвычайно большими возможно стями . Язык програм м ирования ADA , как изве стно , был разработан с целью замены устаревших и все менее используемы х языков, таких как COBOL и FORTRAN . Трудности заключаются в том , что цикл замены одного языка программирования другим охватывает период вр емени от 20 до 30 лет и не начинается до те х пор, пока мы не убедимся на деле, что ныне существующие языки больше не о твечают нашим требованиям . Мы можем ускорить этот процесс, начав немедленную замену устаревших языков яз ыком ADA . При этом , когда мы придем к выводу , что ADA уже устарел , замена н а него только успеет завершиться . У нового поколения разработчиков языков программирования появилась тенденция называть разработанные ими языки именами реальных людей , а не прибегать к обычным акронимам . Так язык PASCAL получил наименование в честь первого создателя счетных машин, а язык ADA назван в честь первого п рограммиста . Решив назвать свой новы й язык в честь какого-либо челове ка, мы выбрали Чарльза Баббиджа , который умер в бедности, пытаясь закончить создание первой ЭВМ . Новый язык , таким образом, назван в честь первого разработчика систем, и его разработка провод ится , подобно разработкам самого Баббиджа , без опреде-ленной финансов ой поддержки, что, естественно , несколько тормозит работу . Язык BABBAGE основан на элементах языков , которые были открыт ы после того , как было завершено создание языка ADA .К. А .Р. Хоор в своей лекции , за которую Ассоциация по вычислительной технике в 1980 году присудила ему премию Тьюринга, говорил о двух п утях разработк и программного обеспечен ия . Один путь заключается в том , чтоб ы сделать программу настолько простой , что становится полностью очевидно отсутствие каких - либо недостатков . А другой путь состоит в том, чтобы сделать программу настолько сложной , что это исклю чало бы всякую возможность каких-либо погрешностей . Разработчики языка 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 нуждается в предложениях специалистов по новым средствам для этого нового мощного языка программирования . Автор статьи, являясь од ним из сотрудников группы разработки , обращается ко всем , кто рабо тает в области обработки данных с по мощью ЭВМ, с просьбой оказать поддержку группе в разработке новог о языка программирования (будут приняты все предложения от всех лиц, желающих принять участие в работе г руппы ). Краткое введение в язык Ада . Возможно, у вас уже возник вопрос : "Зачем знать и использовать Аду ? " . В ответ на этот вопрос Я могу привести как минимум три хороших причины : 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 . Так же там существуют версии GNAT'a для WinNT, Win95, MacOS, и даже версия для DOS называемая "EZ2Load" . Учебник . Итак, Я думаю пора приступать к настоящему обучению . Конечно это не закончен н ый учебник, это просто краткое введение, которое покажет вам базовую структуру программы на языке Ада и даст вам нескольк о готовых к компиляции примеров . Сперва Я хочу чтобы читатель узнал что же такое Ада . Так же как и ее предшеств е нник Паскаль и ее кузен Си, Ада это структур н ый язык . Другими словами , программа на Аде это организованная последовательность различных сек ций, в то время как в неструктурных языках таких как Бейсик, вы можете писа ть что угодно и где угодно . Также, Аде присуща своя собственная терминология, и Я далее буду использ овать несколько таких слов, со значением которых вы возможно не знакомы : пакет (package ), файл ис х одного кода программы в котором хранится определенный набо р связанных по смыслу команд, которые делают например такие вещи как печ ать текста, математические вычисления, и т.д. Они в чем-то похожи на заголовки в языке Си, но не являются прямой аналогией : переменная (variable ), это именова н ная область памяти в которой может хранится неко торое значение, например число, символ, или слово . предложение или инструкция (statement ), кома нда для выполнения специфического действия . Все программы на Аде имеют следующую базовую структуру : with Имя_Пакета ; use Имя_Пакета ; procedure Имя_Процедуры Переменная : Некоторый_Тип_Значений ; begin end Имя_Процедуры ; Имя_Процедуры часто является и именем программы . (прим перев : В отличие от Паскале здесь нет выделенного блока begin - end, программой может счита е тся лю бая процедура библиотечного уровня ( т.е. не вложен н ая в другую процедуру / функцию ) без параметров ). Место где написано Переменная : Некот орый_Тип_Значений является объявлением переменной . Возможно вы спросите, а что значит "Некоторый_Тип_Значен ий" ? Это означает какого типа значени я могут хранится в переменной . Други ми словами, если вы хотите иметь переменную для целых чисел вам необходи мо написать Variable : Integer ;. Если вам нужны числа с пл авающей запятой, то Variable : Float ; и т.д. Точки с запятой используются для завершения объявления переменной или в более общем случае любого предложения программы, позволяя вам размест ить на одной строке более одного объявления переменной или предложения . (прим перев : в Паскале они разделяют предложения, в результате имеется н есколько исключений из правил ! А в ре зультате выбранного подхода в Аде их размещение производится на более и нтуитивном уровне ). Инструкция begin начинает последовательность настоящих команд программы . Предложение_1 ; и Предложение_1 ; на самом деле ни чего не значат в Аде ; в реальной программе на их месте будут на стоящие команды, которые и будут выполнять необходимые нам действия . Предло жение end Имя_Процедуры ; завершает последовательность команд прогр аммы . Теперь Я могу сказать вам, что эт а маленькая "демо" програм м ка была нужна, ч тобы просто показать вам структуру программы, но теперь мы можем посмотр еть и на настоящую рабочую программу . По традиции ей будет, можно сказать, классическая ; -) программа выводящая "Hello World", которая обычно и и спользуется при первом знакомстве с новым языком . with Ada . Text_IO ; use Ada . Text _ IO ; procedure Hello_World is - А переменные нам здесь не нужны :) begin Put ("Hello world ! " ); end Hello_World ; Пакет "Text_IO" содержит множество функций для операций ввод а / вывода ; он используется программами которым необходим вывод и получен ие текста . Так же Я должен заметить за чем нужно писать "Ada . " перед "Text_IO" . Поскольку Ада мож ет взаимоде й ствовать со множеством язык ов - например вы можете связать со своей пр ограммой процедуры на Си или Коболе - и мож ет случится так что у вас будет множество библиотек с сотнями пакетов, по этому необходимо указывать откуда их брать . (прим перев : в Аде можно организовать набор пакетов в определенную иерархическую структуру со взаимными свя зями между кодом в них . В данном случа ет Text_IO это дочерний пакет от пакета Ada ). Процедура (и программа в данном случае ) называется "Hello_World . " Предложени я "with" и "use" позволяют использовать команды из них в нашей программе . Если вы хотите запустить эту программу, вы мо жете сохранить ее под именем hello_world . ada . Замечание : если вы используете GNAT вы должны сохранить ее как hello_world . adb . Поскольку эта программа не делает ничего кроме печати нескольких слов н а экране, нам не потребовалось объявлять ни каких переменных, поэтому ме сто в котором это обычно делается осталось пустым . Обратите так же внимание на двойной прочерк (-- ) перед "А переменные нам здесь не нужны : )" . Эти проче рки говорят компилятору, что эта строка комментарий . Комментарий это строка текста программы которую компи лятор проигнорирует . Поэтому если вы хотите добавить строку "А переменные нам здесь не нужны : )" в программу и затем запустить е е, вы обязаны добавить перед ней двойной прочерк, иначе компилятор подум ает, что вы хотели использовать "А переменные нам здесь не нужны : )" как описание переменной, есте ственно ничего не поймет и выдаст вам сообщение об ошибке . Предложение Put ("Hello world ! " ); служит собственн о для печати текста на экране . Даже если вам кажется, что использование скобок усложняет дело, они все р авно нужны . Вы не можете просто взять и написать "Put "Hello world ! " ; " ! Так же замет ь те, что многи е имена начинаются с заглавных букв Notice also that many of the names begin with capi tal letters ("Text_IO" например ). Это-го не требуется делать в обязательном порядке, но все же желательно делать так для удобс тва чтения ваших исходников . Следующая программа несколько сложнее предыдущей . Она спрашивает у пользователя его / ее имя и затем печатает его на экране наряду с другим те кстом : with Ada . Text_IO ; use Ada . Text_IO ; procedure Get_Name is Name : String (1 . .8 0 ); Length : Integer ; B egin Put (" Введите ваше имя > " ); Get_Line (Name, Length ); New_Line ; Put (" Привет " ); Put (Name (1 . Length )); Put (", Я думаю вам понравиться изучать Аду ! " ); end Get_Name ; Как это все работает ? Мы уже знаем, что такое Text_IO, а предложение procedure Get_Name is говорит само за себя Переменная Name содержит имя введенное пользователем, а тип String (1 . .8 0 ) говорит компилятору о том, что Name это строковая переменная с длин ной до 80 символов . Вторая переменная , Length, это целое число используемое для хранения действительной длинны стр оки введенной пользователем . А теперь об остальном : когда програм ма выполняется, она печатает "Введите ваше имя> ", а затем ждет его ввода от п ользователя . после того как он введе т имя и нажмет Enter программа пропускает строку (New_Line ;) и печатает "Привет [ имя п ользователя ], Я думаю вам понравиться изу чать Аду ! " . Визуальное программирование на Аде ? Возможно у вас возник вопрос "А есть ли к Аде графическая среда разработк и программ (IDE ) ? " . Да, такие есть, одна из них, под названием ObjectAda, поставляется к омпанией Aonix, www . aonix . com (Прим . перев : Данный продукт построен в духе IDE от Microsoft для Visual С++ ) ObjectAda существует в двух вариантах как для MS Windows, так и для X-Windows (X-Windows это стандартна я оконная графическая система ОС Unix ) Однако учтите, что это коммерческий продукт, правда он доступен для своб одного скачивания в облегченном варианте и весит около 60~70Mb . Ada - это доведенный до логического заверше ния ( на данном этапе развития _науки_ п рограммирования ) Pascal . Ada - универсаль ный язык программирования и мощнейшее средство для software engineering . В равной степени пригодна для написания "зуб очисток" из 50 строк на один-два прогона и для огромных особо надежных сист ем реального времени . Жестко определ ена стандартом языка . В язык встроен ы средства параллельного программирования, поддержка разноязыковых мо дулей, обработка исключительный ситуаций . Разговоры о ее чрезмерной сложности - бред, вызванный тем, что она опередила свое время лет этак 6 . .1 0 . Мощный инструмент не может быть простым - "Дубли у нас простые" ( (с )" Понедельник ... ", Стругацкие ), но и сл ишком уж сложной я ее назвать не могу . Ada'е присущи строгость, логичность, ортогональность, симметричность . Она по-хорошему консервативна, несмотря н а то, что в нее были введены революционные концепции, не понятые и не приня тые серыми fortran-кодерами начала '80-ых годов, чем и объясняется ее сравнительн о малое распространение . Первый стан дарт вышел в '83, в '95 вышел второй стандарт, расширивший и симметризовавший язык . Для Ada'ы характерно очень жестко е следование стандарту, что делает программы на ней сравнительно легко п ереносимыми с платформы на платформу . !) Аналогии : Ada - это Парфенон среди языков программирования, она велич ественна, изящна, строга и прекрасна . Если считать, что Pascal это МиГ-21, то Modula-2 это ( ранние версии ) МиГ-29 и ( нынешнее состояние ) МиГ-33, а Ada'83 - Су-27, и Ada'95 - Су-37, и, продолжая аналогию, C - F-104, C++ - F-117 ( much noise about nothing | )). > Q 2 : А чем Ada95 отличается от Ada83 ? Насколько я понял, > Q 2 : в Ada95 есть ООП ? Вот еще отличия : - иерархические библиотеки (child units ); - пассивные мониторы наряду (protected records ) с активными (tasks ); - дополнительные средства управления паралеллизмом (асинхронн ая передача управления ); - стандартны е библиотеки для важнейших областей (системное программирование, систе мы реального времени, распределенные системы, информационные системы, ч исленные рассчеты ); - "мелочевка" типа ссылок на подпрограммы и возможность связывать сообщение с возбуждаем ым исключением ; > Q 3 : Насколько я понял, в Ada95 есть ООП ? А как оно > Q 3 : реализуется ? Подлинное там ООП (как на функционал ьных > Q 3 : языках ) или паскале-си подобное ? "Паскале-си-подобное", хотя по форме на первый взгляд сильно отли чается . Основной документ по Ada'е - "Language Reference Manual", обычно н азываемый просто "Стандарт" или "RM95" ( "RM 95", а то и просто "RM" ), некоторые по старинке говорят "LRM", но это - общепринятое сокращен ие для стандарта Ады-83 . Изложено, как и положено стандарту, суховато, но строго, с примерами и ссылками на смежны е вопросы . В отличие от пары-тройки др угих "стандартов", которые мне привелось посмотреть, это, действительно, С тандарт, а не рассуждения на тему об очередной версии компилятора и не уч ебник программирования на базе данного языка, но, между тем, он вполне при годен для чтения . Второй документ - "Ada 95 Rationale" ( обычно - "Rationale" ). Это изложение и _обоснование_ базовых _проектных__решени й_ языка (ответы на вопросы "а почему сделано именно так ? " ) и демонстрация эт их решений в деле . Соответственно, бо лее вольное, чем Стандарт, кое в чем менее полное, а кое в чем более ппростр анное . С развернутыми примерами, поя снениями, аналогиями и прочей весьма полезной "белетристикой" . Читается как хороший детектив . Литературные достоинства ( без тени иронии ) эт ого документа отмечены не только мной . Я бы настоятельно рекомедовал эту книгу в качестве именно _учеб ника_ для подготовленного и _мотивированного_ читателя ( такому читателю нет резона тратить время на т радиционные университетские учебники ), а RM использовать как справочник . Язык Ада - двадцать лет спустя Если спросить отечественного ИТ-специалиста : "Что такое Ада ? ", большинство лишь удивленно пожмет плечами, а кто-то даже скаже т, что это мертвый язык, когда-то придуманный Пентагоном, а ныне практичес ки не используемый . На самом же деле А да и сегодня - вполне благополучный и активно применяемый в различных областях язык программирования . Правда, большинство российских программ истов знают о нем мало . Наверное, каждый, кому приходилось пользоваться четырнадцатой линией п арижского метрополитена, удивлялся, впервые увидев поезд, в котором нет кабины машиниста . Движение поездов н а этой линии полностью управляется Ада-программой . Несмотря ни на что, в отдельных областях техники Россия все еще "впереди п ланеты всей" . И одна из них - конструирование и производство самолетов-а мфибий . Всемирно признанным лидером в этой области является ТАНТК им . Г.М. Бериева . Не давно это предприятие приобрело средства разработки бортового програм много обеспечения на базе языка Ада для использования при модернизации своей последней модели Бе-200 . Между тем, большинство отечественных ИТ-специалистов в лучшем случае ни чего не знают о языке Ада, в худшем же - имеют совершенно неверное представление об Аде как о языке-монстре, неко гда придуманном Пентагоном для разработки военных систем, а ныне оконча тельно забытом . Немного истории Официальным днем рождения языка программирования Ад а можно считать 17 февраля 1983 года - дату утверждения стандарта ANSI / MIL-STD-1815-A - 1983 . Технические и административные меры, предпринятые Минобороны как част ь проекта по созданию и внедрению Ады, полностью предотвратили появлени е и распространение диалектов языка . С 1983 года и по настоящее время все индустриальные реализации под держивают действующий стандарт Ады . Когда же речь заходит о подмножествах Ады, то эти подмножества определяю тся не реализацией, а стандартами разработки конкретного класса систем . В 1987 году стандарт ANSI без единого изменения был утвержден в качестве станд арта ISO (ISO / IEC 8652 ), а когда в начале 90-х годов назрела необходимость пересмотра стандарта, работа по пересмотру также была проведена под управлением и н а средства Министерства обороны США . Стартовал новый международный проект, который завершился утве рждением в конце 1994-го и публикацией в начале 1995 года новой версии стандарт а ISO / IEC 8652 . Именно этот документ и служит сегодня определением языка прог раммирования Ада . В СССР в начале 80-х годов была образована Рабочая группа по языку программ ирования Ада при Государственном комитете по науке и технике . Тщательно собиралась и анализировалась вся открытая информация о проекте, а усилиями специальных служб добывалась и закрытая информация . Были организо ваны проекты по реализации Ады для практически всех использовавшихся т огда архитектур ЭВМ, и некоторые из них оказались весьма успешными . Распад СССР положил конец этой деятельно сти . Сегодня Ада используется в Росс ии и СНГ отдельными энтузиастами . Что такое Ада . Все современные индустриальные языки предоставляют по сути один и тот же базовый набор возможностей, различаясь не тем, что он и позволяют делать, а тем, как именно они позволяют это делать . Однако Ада, по крайней мере, в двух аспектах ра сширяет стандартный для современных языков набор возможностей . Во-первых, Ада предоставляет высокоуровн евые средства программирования асинхронных процессов . Во-вторых, является единственным языком, кот орый без всяких оговорок можно назвать модульным . Пример такой просто необходим для того, чтобы опровергнуть достаточно р аспространенный миф о том, что Ада - бо льшой, сложный и "тяжелый" язык, пригодный лишь для написания сверхбольши х и сверхсложных систем . На самом же д еле, Ада может применяться для разработки небольших и средних программ с тем же успехом, как и современные клоны Си, Паскаля, Бейсика и Java . Так, классический пример программы "Hello, World ! " выглядит на Аде следующим образом : Легко видеть, что код на Аде похож на код на Паскале, который был выбран в к ачестве его прототипа . Первая строка описывает связь данного компилируемого модуля с другими модулями - указывается, что подпрограмма Hello_World должна компилироваться совместно с модулем Ada . Text_IO, который является компонентом предопределенной библиотеки . Следующая программа определяет два асинхронных процесса [ 1 ] В разделе локальных объявлений процедуры Tasking_Example описыв ается задача Outputter (строка 6, строки с 8 по 17 содержат тело этой задачи ). Когда управление в процессе, соответствующе м процедуре Tasking_Example, доходит до строки 20, перед тем, как выполнить этот первый оператор, запускается процесс, соответствующий задаче Outputter, после чего дв а этих процесса живут и асинхронно выполняются независимо друг от друга . Выполнение оператора задержки (стро ки 14 и 20 ) состоит в приостановке соотве тствующего процесса на указанное количество секунд . Таким образом, процесс Tasking_Example приостанавливается на 20 сек унд, а в это время процесс Outputter начинает печатать значения увеличивающего ся на единицу счетчика, приостанавливаясь на одну секунду после вывода к аждого значения . По истечении 20 секун д процесс Tasking_Example устанавливает флаг Finished в положение "истина", в результате за вершается цикл в процессе Outputter . Специф икация переменной Finished как атомарного объекта данных (строка 4 ) делает невозможным одновременное чтение и и зменение значения этой переменной . Далее представлен шаблон функции, позволяющей покомпонентно складыват ь два одномерных массива . Этот шабло н может быть настроен на произвольный тип, являющийся одномерным массив ом, для компонентов которого определены операции присваивания и сложен ия ("сложение" не обязано быть арифметическим сложением ). Строки 1-6 содержат объявление настраиваемой функции, а строки 8-20 - ее тело . С одержательно, параметром настройки является произвольный одномерный р егулярный тип с не уточненным индексным диапазоном (строка 4 ), про которого изв естно только, что тип компонента у него произвольный, однако для компоне нтов определена операция присваивания (строка 2 ), тип индекса - произвольн ый дискретный (строка 4 ). Поскольку нам предстоит покомпонентно складывать два массива, надо знать, что такое о перация сложения для типа компонентов . Так как это произвольный тип, мы вынуждены передавать сложение для типа компонента как формальный параметр настройки (строка 5 ). В теле функции мы первым делом проверяем, совпадают ли длины операндов (с трока 12 ), иначе покомпонентное сложен ие не имеет смысла . Совпадение длин о перандов не гарантирует совпадение индексных диапазонов, поэтому в цик ле по индексному диапазону первого аргумента (строка 15 ) нам необходимо каждый раз вычислять индекс соответст вующего компонента второго аргумента . Мы лишены возможности сделать это для типа Index, так как знаем про н его только, что он дискретен, поэтому переходим от значения дискретного типа к его порядковому номеру (атрибут ‘ Pos ), вычисляем необходимый сдвиг для порядкового номера и возвращ аемся к соответствующему значению типа Index (атрибут ‘ Val ). Заметим, что параметры (настраиваемой ) функции "+" Left и Right объявлены как имеющие тип Arr, индексный диапазон к оторого не уточнен . Однако Left и Right - это формальные параметры, на место котор ых при вызове (результата конкретизации ) функции "+" будут подставлены конкретные массивы с известными ин дексными диапазонами . Мы же в теле фу нкции "+" пользуемся атрибутами массивов (‘ Range, ‘ First, ‘ Length ), чтобы из объекта получить информацию о его индексном д иапазоне . Почему Ада ? Выбор языка для программного проекта ранее был чисто т ехническим вопросом . Сегодня это ста ло вопросом стратегической важности, имеющим далеко идущие последстви я для успеха проекта . Перечислим нек оторые причины, благодаря которым язык Ада был выбран для реализации про граммных проектов различными компаниями, либо сделан обязательным для использования в рамках тендеров . Желание повысить надежность разрабатываемой системы, так как программ ные дефекты могут иметь серьезные последствия для здоровья людей, эконо мики, экологии и т.п. (Ада обладает встроенными средствами обеспечения надежности ). Желание снизить стоимость разработки и сопровождения системы . Наличие международных стандартов и наличие компиляторов языка практич ески для любой платформы . Преимущества дисциплинированного подхода к разработке программного о беспечения, которые становятся особенно существенными по мере увеличе ния объема и сложности программного обеспечения . Ада и Си При проведении сравнит ельных анализов популярных языков переломано столько копий, что сегодн я эту тему часто относят к разряду "религиозных войн" . Поэтому ограничимся лишь ссылкой на известную статью [ 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, направляющейся в данный момент к Марсу , автоматизир ованная станция документальной связи Министерства обороны РФ . Единственным недостатком публичных версий является то, что разработчик не предоставляет для них технической подде ржки . Заключение Подводя итог, можно сказать, что язык Ада предоставляе т разработчикам идеальное сочетание цельности, последовательности, на дежности и эффективности . Язык подде рживает созидательное творчество и новаторство, обеспечивая в то же вре мя дисциплину и индустриальный уровень разработки программного обеспе чения, необходимые для реализации программных систем большой важности .
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
По статистике на каждые 100 полицейских приходится 1 продажный и 99 лежачих.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по информатике и информационным технологиям "Ада Августа Байрон", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru