Главная » Все файлы » Просмотр файлов из архивов » Документы » С.Бобровский, О Фортране и других языках программирования

С.Бобровский, О Фортране и других языках программирования, страница 3

2017-06-17СтудИзба

Описание файла

Документ из архива "С.Бобровский, О Фортране и других языках программирования", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "информатика" в общих файлах.

Онлайн просмотр документа "С.Бобровский, О Фортране и других языках программирования"

Текст 3 страницы из документа "С.Бобровский, О Фортране и других языках программирования"

Вернемся к разработке языка Ада. Через пять лет после начала проекта сотни экспертов отобрали из 17 вариантов единственный удовлетворя­ющий требованиям язык, разработанный небольшой группой, которой руководил талантливый ученый Жан Ишбиа. Конечная версия меж­дународного стандарта ISO 8652:1987 была опубликована в 1987 году. По официальным сообщениям, в создании и доработке этого языка уча­ствовали все лучшие специалисты мира в области программирования, что, впрочем, вызывает сомнение. Например, в первоначальном вари­анте Ады отсутствовало понятие объекта, да и советские программисты в этом проекте не участвовали, хотя и по очевидным причинам.

В развитие инфраструктуры Ады во всем мире были вложены десятки миллиардов долларов. Это привело к появлению амбициозных заявле­ний типа: «XX век пройдет под знаком Ады». Однако, как обычно, жизнь все расставила по своим местам.

К сожалению, для Министерства обороны США, активные работы по разработке четкого стандарта на этот язык и созданию эффективных компиляторов были завершены как раз в то время (начало 80-х), когда только-только стал вырисовываться на горизонте программной инду­стрии новый язык C++ с объектной идеологией. Теперь трудно сказать, что испытывал комитет разработчиков Ады, видя, как растет попу­лярность C++ и старой, хорошо забытой объектной парадигмы мыш­ления. Но выделенные средства уже были потрачены, стандарт создан — обратной дороги не было.

Структура самого языка очень похожа на Паскаль, а еще точнее, на Модулу. Синтаксис большинства операторов и описаний практически идентичен синтаксису Модулы, хотя она появилась практически в одно время с Адой, и трудно сказать, кто на кого оказал влияние и оказал ли влияние вообще. В Аду, в частности, было добавлено довольно много различных расширений, так что компактным, по сравнению с тем же Паскалем, этот язык назвать никак нельзя. По количеству своих воз­можностей Ада скорее напоминает PL/I. Но так как основной упор со­здатели Ады делали на модульность и соответствие пожеланиям аме­риканских «первых отделов», то средства закрытости (видимости) данных и возможность разработки отдельных блоков с использовани­ем только спецификаций (интерфейсных описаний модулей) других разработчиков были для того времени самыми совершенными. Напри­мер, программист, реально писавший код для вычисления траектории полета крылатой ракеты, даже не представлял себе, где и для каких целей его модуль будет использоваться, хотя имел доступ к требуемым спецификациям других сотрудников и мог без проблем отлаживать свой участок кода. Из-за строгого разграничения доступа к различным уровням спецификаций подчас оказывалось невозможно определить, для чего и какими средствами должна вызываться данная процедура. Стремление к независимой разработке программ привело к весьма слож­ной системе взаимосвязей между спецификациями модулей и появле­нию «дыр», способных вызвать побочные эффекты, наличие которых, впрочем, Министерство обороны США сочло даже полезным.

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

Фирма Borland вскоре выпустила свой Turbo Pascal, в который было встроено понятие модуля, и приблизило по возможностям свою вер­сию Паскаля к Аде. Однако в дальнейшем попыток создания необъект­ных языков программирования третьего поколения, предназначенных для разработки сверхбольших проектов, к счастью, не предпринима­лось. Поэтому Ада поставила жирную точку в длинной веренице про­стых процедурных языков, начиная с Фортрана и Алгола. Фактически все, что только можно было придумать в рамках идеологии структур­ного программирования, было воплощено в Аде. Затем стремительно расцвело объектное программирование, и Ада отошла на второй план.

Однако этот язык по-прежнему занимает особую нишу, в которой рав­ных ему пока нет. Помимо раздельной компиляции модулей и обеспе­чения иерархической секретности спецификаций, в нем была реали­зована такая черта, как поддержка параллельного программирования. Предпринятое на более-менее высоком уровне в Алголе-68, затем раз­витое в Модуле-2, оно воплотилось в очень мощных средствах Ады — так называемых задачах, способных выполняться независимо друг от друга, на параллельных компьютерах. Это привело к рождению целой идеологии программирования, базирующейся на задачах, которые могли выполняться «псевдопараллельно» на компьютере с одним процессором. При этом решаемая задача разбивалась на набор одновре­менно работающих процедур, независимо взаимодействующих друг с другом. Это немного напоминало способ решения задачи на Прологе: описывается некий виртуальный мир, а затем он как бы «запускает­ся» на функционирование, и решение находится само собой.

Тем более удивительно, что Министерство Обороны США по тем или иным причинам отказалось от объектной идеологии, прекрасно вопло­щенной еще в 60-е годы в Симуле-67, и наверняка не раз пожалело об этом. Правда, в язык Ада была введена довольно жалкая замена ряда возможностей, предоставляемых объектно-ориентированным програм­мированием, — так называемые шаблоны, то есть процедуры с пара­метрами неопределенных типов. Но все-таки главным преимуществом Ады, которое позволяет ей и сегодня выдерживать натиск более разви­тых языков, явилась, помимо мощного финансирования, встроенная поддержка параллельного выполнения задач и мощные средства коор­динации их взаимодействия. Здесь необходимо отметить, что основная ориентация Ады — это отнюдь не системы автоматизации бухгалте­рии в Министерстве обороны США, а чисто боевые задачи, например, управление в реальном времени самонаводящейся ракетой, где микро­процессору требуется одновременно обрабатывать информацию, непре­рывно поступающую от множества самых разнообразных датчиков. Ранее такие задачи писались на ассемблере, что приводило к множе­ству ошибок и трудностям сопровождения. Для подобных задач Ада, конечно, подходит как нельзя лучше.

Но язык Ада продолжают позиционировать и как хорошее средство для разработки больших программных комплексов. Правда, теперь голоса в поддержку этого языка звучат уже тише, примерно так: «Ада, по крайней мере, не хуже Си». С учетом главного промаха, отсутствия объектов, и современных требований к технологии разработки про­грамм был разработан новый стандарт языка ISO/IEC 8652:1985(Е). Он описывает версию языка Ada95 (njmAda9X). Самое интересное, что эта версия является первой в мире объектно-ориентированной системой программирования, на которую имеется международный стандарт, введенный, по-видимому, в приказном порядке (с C++ так пока не полу­чается). Кроме того, в языке была улучшена система согласования ви­димости данных в спецификациях модулей, и добавлены средства по­вышения эффективности функционирования параллельных задач.

Министерство обороны США довольно ревниво относится к своему дорогому детищу, и даже зарегистрировало слово «Ada» как свою тор­говую марку. Правда, впоследствии вместо торговой марки Министер­ство обороны решило использовать «Ada» как свой внутренний сертифицированный знак. Без особой радости Министерство обороны США относится и к появлению коммерческих версий этого языка. Конечно, никто не вправе запретить вам написать компилятор, но чтобы он полу­чил коммерческое признание, необходимо его соответствие военному стандарту, а тестирование осуществляется только комитетом AJPO при Министерстве обороны США, который очень строго проверяет соответ­ствие компилятора множеству требований, в том числе, по-видимому, и чисто политических.

Тем не менее, различные версии Ады можно получить, как это обычно бывает с языками программирования, на халяву, то бишь даром (не пиратским способом, а fгееwaге-версии), а также, конечно, за деньги.

Из свободно распространяемых версий в первую очередь необходимо выделить GNAT: компилятор GNUAda95 (ftp://cs.nyu.edu/pub/gnat). В рам­ках проекта GNU (свободно распространяемого программного обеспе­чения) его можно получить в исходных текстах. Работать он может и на компьютере с одним процессором, только надо, чтобы операцион­ная система поддерживала многозадачность. Это может быть, напри­мер, какая-нибудь версия Unix/Linux, или Windows NT/2000/ХР. Что касается MS-DOS — догадайтесь сами. Но если очень хочется запус­тить сотню-другую параллельных процессов на вашей персоналке под MS-DOS 6.x, то вполне можно попробовать Ada/Ed (ftp://cs.nyu.edu/pub/ adaed). Это компилятор и интерпретатор версии языка 1987 года, кото­рый, впрочем, совершенно несовместим со стандартом и не имеет ряда существенных элементов.

Если есть деньги, то ситуация, конечно, облегчается. В пределах месяч­ной зарплаты среднего российского программиста можно приобрести, например, FirstAda за полтысячи долларов, и написать систему управ­ления холодильником. Более дорогие системы для Windows или Unix/ Linux, сертифицированные Министерством обороны США, вы можете попытаться приобрести непосредственно у фирм-разработчиков, коих насчитывается около десятка.

Интересно, что стандартизации подвергся не только сам язык, что позво­лило создавать легко переносимые программы, но и набор вспомога­тельных средств разработчика. К ним относятся различные библиотеки ввода/вывода и организации графического интерфейса, препроцессоры, верификаторы, генераторы кода, анализаторы логической структуры программы, программы для тестирования компиляторов и многое дру­гое. Конечно, имеются крупные пакеты, включающие в себя все стан­дартизированные средства разработки, но они стоят достаточно дорого, как и полагается солидному и мощному языку программирования.

Jovial: веселый язык программирования

Ада, несмотря на все усилия ее создателей, обладала достаточно вну­шительным списком недостатков. Кроме того, в силу исторических причин, характерных для всех стран, развивавших собственную ком­пьютерную промышленность, число языков программирования, ис­пользуемых в государственных структурах, нередко достигало десятка. Вместе с Адой применялись PL/I, FORTRAN, Кобол, а также ассемб­лер. Подобная бессистемность приводила к возникновению множества плохо или совсем не совместимых друг с другом приложений и к слож­ностям в их развитии и поддержке. Рассматриваемый здесь язык Jovial представляет собой типичный образчик подобного не самого хорошего и не самого плохого языка, стечением обстоятельств ставшего одним из военных стандартов.

Современная армия немыслима без использования электронных тех­нологий. Бортовые микропроцессорные системы, устанавливаемые на военной технике (самолетах, танках, стационарных и мобильных ракет­ных установках и т. п.), применяются для решения самых разных бое­вых задач. Эти системы используются для автоматического контроля, управления, анализа состояния и степени поражения боевой техники; они позволяют повысить точность стрельбы и организовать эффектив­ное управление системами ведения огня. Устанавливаемые на ракетах электронные бортовые комплексы обеспечивают непрерывное слеже­ние за целью и нахождение оптимальной траектории атаки. Все эти возможности обеспечиваются программистами, разрабатывающими прикладные программы для подобных систем.

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

Первыми инициаторами практического внедрения бортовых систем и создания для них средств разработки программного обеспечения были ВВС США. Это связано с тем, что в авиации используется наиболее дорогостоящая и сложная в управлении техника. 26 октября 1983 года американская военная директива за номером 9070 констатировала насущную необходимость создания универсального средства разработки программ для бортовых авиационных систем. В качестве основных требований к нему в первую очередь выдвигались высокая надежность получаемого кода, эффективность работы программ при жестких огра­ничениях на объемы памяти и возможность быстрой и дешевой реали­зации проектов. Лучшие военные специалисты США были брошены на поиски подходящего средства разработки программного обеспече­ния, которое планировалось быстро адаптировать к внутренним нуж­дам Министерства обороны. Такое средство было найдено довольно быстро. Им оказался старый язык программирования Jovial (в перево­де — веселый). В его основе лежал язык IAL (International Algorithmic Language), один из первых диалектов Алгола, в дальнейшем усовер­шенствованный и получивший название OVIAL (Own Version of the IAL). Американский программист Джулиус Шварц (Jules Schwartz) дополнил OVIAL рядом полезных усовершенствований и прибавил к аббревиатуре первую букву своего имени — так в январе 1959 г. на свет появился Jovial. Одной из главных целей создания языка Jovial Шварц объявил создание кросс-платформных программ, способных работать в режиме реального времени. Во внутреннюю структуру Jovial-ма-шины были заложены гибкие возможности оптимизации кода, не зависящие от платформы, и быстрый перенос программ при модифи­кации архитектуры целевого компьютера. Жесткая структура органи­зации файлов с исходными текстами, не допускающая машинно-зави­симых синтаксических конструкций, позволяла легко переносить программы на различные платформы. Именно эти возможности и ока­зались ключевыми при выборе этого языка ВВС США.

Сегодня язык программирования Jovial, несмотря на свое «веселое» название, применяется отнюдь не для создания развлекательных про­грамм. Хорошо продуманная кросс-платформная идеология и успешная практика применения позволили ему завоевать признание практиче­ски во всех военных областях. Сорок подрядчиков Пентагона написали с его помощью программы, исполняемые на бортовых процессорах мно­гих американских военных самолетов (бомбардировщики В-2, F-117, транспортные самолеты С-17, истребители F-15, F-16, F-18, F-22), верто­летов огневой поддержки, ракет тактического и стратегического назна­чения, крейсеров, космических спутников и других систем. Этот язык используется для создания программного обеспечения, управляющего мобильными и стационарными ракетными установками на поле боя и в радарных системах слежения. Применяют его в некоторых видах бо­евой техники и американские силы специального назначения.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее