Главная » Просмотр файлов » Языки программирования. Прошлое и будущее. С.Бобровский

Языки программирования. Прошлое и будущее. С.Бобровский (1012869), страница 2

Файл №1012869 Языки программирования. Прошлое и будущее. С.Бобровский (Языки программирования. Прошлое и будущее. С.Бобровский) 2 страницаЯзыки программирования. Прошлое и будущее. С.Бобровский (1012869) страница 22017-06-17СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Языки 5GL, ориентированные на конкретные области применения, могут уже в ближайшее время завоевать самую широкую популяр­ность. Наиболее перспективны продукты, позволяющие создавать при­ложения для работы с базами данных. Базы данных — это область информатики, наиболее успешно поддающаяся формализации. Нагляд­ное подтверждение этому — тенденции развития практически всех известных СУБД корпоративного уровня. Вслед за встроенными язы­ками СУБД появляются и другие проблемные языки программирова­ния.

Кроме того, универсальные языки логического программирования наподобие Пролога, основанные на мощных математических аппара­тах, совсем не канули в Лету, как может иногда показаться читателю российской компьютерной прессы, где мелькают сплошные «Си» и «Явы». Языки логического программирования продолжают более чем успешно развиваться; другое дело, что для их грамотного применения требуется высокая культура программирования (и проектирования) по сравнению с тем же C++. Они нужны для несколько иных задач, чем создание коробочных бухгалтерий (хотя для этих целей они также под­ходят значительно лучше С или Паскаля). Неудивительно, что в на­шей стране мощными зарубежными средствами разработки, реализу­ющими алгоритмы искусственного интеллекта или имеющими в своей основе уникальные математические теории, нередко наиболее актив­но интересуется ФАПСИ. Это явствует хотя бы из открытых семина­ров ведущих российских фирм-дистрибьюторов соответствующих продуктов. Хочется надеяться, что рано или поздно и коммерческие фирмы поймут выгоду использования хоть и дорогих, но очень мощных по своим возможностям систем для создания приложений сверхвысокого уровня.

Так что смерть языкам программирования (и профессии программиста вместе с ними) в ближайшие лет пятьдесят не грозит. А дальше будет видно.

Третье поколение

Фортран: программисты свой выбор сделали — еще 40 лет назад

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

Язык программирования FORTRAN (FORmula TRANslation) был самым первым языком высокого уровня, получившим широкое распростра­нение. Он возник в конце 50-х годов, когда шли горячие дискуссии о самой необходимости создания подобных языков. Программисты, раз­рабатывавшие программы исключительно на ассемблере, выражали сильное сомнение в возможности появления высокопроизводительно­го языка высокого уровня.

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

Так как Фортран был первым языком высокого уровня, отвечающим нуждам большинства пользователей компьютеров того времени, да еще и простым в изучении, распространение его произошло очень быстро. Программисты сразу сделали правильный выбор. В то время компью­теры использовались практически только для научных расчетов, и необ­ходимости в разработке больших проектов комплексной автоматиза­ции (в сегодняшнем понимании) тогда еще не возникало. Конечно, многие задачи, например, расчеты военного назначения, связанные с баллистикой или ядерной физикой, требовали довольно хитрого коди­рования, но умельцы, воспитанные на ассемблере, без проблем справ­лялись с подобными трудностями.

Из-за широкого распространения языка и появления множества про­грамм на Фортране (преимущественно вычислительного характера) насущным стал вопрос его стандартизации. Сначала это был стандарт

Fortran IF 1964 года, затем, по мере появления новых языков с новыми идеями, в 19 78 году был принят новый стандарт Fort ra n 77(/77)с большим числом синтаксических расширений, носящих более современ­ный и более гибкий характер. Сегодня наиболее распространенным является стандарт Fortran 90 (f90) и его очередной пересмотренный вариант Fortran 95.

Огромное количество библиотек для Фортрана, начиная от статисти­ческих комплексов и кончая пакетами управления спутниками NASA COSMIC, потребовало строгой совместимости новых стандартов языка с предыдущими версиями для обеспечения корректной трансляции старых текстов программ новыми компиляторами. Поэтому тщатель­ной проработке стандарта именно в отношении Фортрана всегда уде­лялось особое внимание.

В новые версии языка вносились и ненужные дополнения, которые выглядят как следование моде и желание сохранить популярность Фор­трана (это, например, расширения, связанные с динамическим выделе­нием памяти), и полезные вещи (модульная организация программы, работа с частями массивов и другие). Все же сегодня этот язык нельзя назвать перспективным для изучения, так как его синтаксис сильно устарел. Однако разработчикам крупных систем, которым часто прихо­дится решать вычислительные задачи, совсем не обязательно каждый раз брать в руки учебник по математике и «начинать творить» с нуля. В 90% подобных случаев то, что вы ищете, уже давным-давно было реа­лизовано и отлажено на Фортране.

Я сам был свидетелем разработки двух схожих между собой наукоем­ких проектов. Вычислительные алгоритмы, написанные с десяток лет назад для машин типа VAX с диалоговым вводом данных в текстовом режиме, переписывались с помощью Microsoft Fortran (операторы вво­да/вывода заменялись на обращения к внешним функциям). Из этих модулей формировались библиотеки DLL, а сама графическая оболочка разрабатывалась на C++. И все прекрасно работало. Причем в первом подобном проекте я участвовал в 1993 году, а во втором — ровно через десять лет (правда, в последнем случае вместо Microsoft Fortran исполь­зовался Intel Fortran). Популярность Фортрана за это время в научном мире ничуть не понизилась.

Поэтому «безбедная жизнь» Фортрану обеспечена надолго. Есть и еще одна ниша — параллельные вычисления, где строгая семантика языка позволяет получать высокопроизводительные программы. Обычно исполь­зуется стандарт f90, немного расширенный набором операторов для указания пригодных к распараллеливанию частей программы. Парал­лельный Фортран имеет свой стандарт HPF (High Performance Fortran).

Ярые поклонники Фортрана, девизом которых стала легендарная фраза: «Зачем мне изучать другие языки, когда я могу все написать на Форт­ране?» — тем не менее, ощущали его очевидную непригодность для крупномасштабных проектов, связанную с привязанностью к синтак­сису 50-х годов. Они попытались ввести в него модные идеи объектно-ориентированного программирования. К счастью, объектный Фортран в качестве стандарта так и не появился, иначе он представлял бы собой что-то типа Мерседеса с движком от Запорожца.

Среди бесплатно распространяемых версий Фортрана наиболее извес­тен f2c, реализованный для всех Unix/Linux-систем и преобразующий текст Фортран-программы в Си-код (ftp://netlib.att.com). Для MS-DOS имеется версия bcf77, распространяемая бесплатно для студентов (ftp.uni-stuttgart.de). Отметим Watcom Fortran (www.watcom.org), генериру­ющий высокоэффективный код, а также прекрасную серию Intel-ком-пиляторов. А вообще различные по качеству компиляторы Фортрана имеются на абсолютно всех компьютерных платформах.

Программисты часто спрашивают: «А чем этот Фортран лучше, напри­мер, Си?» Конечно, у каждого языка есть свои плюсы, и у Фортрана это, в первую очередь, фактическое отсутствие машинно-ориентиро­ванных конструкций и определенные гарантии в отношении правиль­ности исполнения вычислительных операций. Например, если при использовании Си-компилятора для 16-разрядных платформ целочис­ленное сложение 32000+1000 может дать отрицательное число, то в Фор­тране такие «проколы» отсутствуют, причем тщательно отслеживается накопление погрешности при вычислениях с большим числом знаков после запятой. Кроме того, программ, реализующих самые разные мате­матические алгоритмы, на Фортране написано столько, что переписы­вать их на другие языки просто глупо. А вообще на подобные «наезды» — «Си лучше!» — в конференции Интернета comp.lang.fortran обычно отве­чают: «А чего ты тогда сюда пишешь?»

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

Так что про Фортран забывать никак нельзя. Использовать его в каче-1стве инструментария в задачах системной интеграции, наверное, не имеет смысла, но то, что было наработано лучшими программистами за 20-30 лет, вполне может ускорить процесс разработки программ. По крайней мере, программных «кирпичиков» для Фортрана суще­ствует несравненно больше, чем для других языков программирования.

Язык Ада

Среди языков программирования Ада без сомнения занимает особое место. Ада сыграла в истории программирования важнейшую роль - с помощью данного инструмента стало возможным в разумные сроки реализовывать очень масштабные (по меркам 60-70-х годов прошлого века) проекты. Опыт подобных проектов в свою очередь оказал стимулирующее воздействие на исследования в области программной инженерии, которые определили направления развития информационной индустрии на пару десятков лет вперед.

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

История этого языка начинается отнюдь не с 1975 года, когда Министерство обороны США приняло решение о начале разработки единого языка программирования для американских вооруженных сил, а в дальнейшем и для всего НАТО. История его начинается с названия, ибо Ада — имя Августы Ады Лавлейс, которую считают первой про­граммисткой. Она была дочерью английского поэта Байрона и его отда­ленной родственницы Анабеллы Милбэнк, с которой супруг расстался навсегда через месяц после рождения дочери, появившейся на свет 10 декабря 1815 года.

После того как Чарльз Бэббидж сконструировал свою механическую вычислительную машину, Ада написала для нее первую программу для вычисления коэффициентов Бернулли. В дальнейшем она разработала настоящую теорию программирования, ввела понятие цикла и еще нескольких ключевых терминов, которые почти дословно изучают сегодня студенты кибернетических факультетов! Сегодня Ада извест­на всем только как первая программистка, однако почему же у молодой девушки проявились такие уникальные способности? На этот вопрос откровенно ответила она сама: «Клянусь Дьяволом, что не пройдет и 10 лет, как я высосу некоторое количество жизненной крови из загадок вселенной, причем так, как этого не смогли бы сделать обычные смертные умы и губы. Никто не знает, какие ужасающие энергия и сила лежат еще неиспользованными в моем маленьком гибком суще­стве...» Однако спонсоров на проект вычислительной машины не на­шлось — ядерных ракет тогда еще не было, и Ада, проиграв на скачках все свое состояние и попав в грязную историю, скончалась в возрасте 37 лет, как и ее знаменитый отец. Стоило ли американцам так превоз­носить Аду, вопрос весьма спорный.

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

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

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

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

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

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

Характеристики

Тип файла
Документ
Размер
487,5 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

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