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

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

Файл №1012867 С.Бобровский, О Фортране и других языках программирования (С.Бобровский, О Фортране и других языках программирования) 10 страницаС.Бобровский, О Фортране и других языках программирования (1012867) страница 102017-06-17СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Программа на Прологе постепенно стала приближаться к обычным про­цедурным (последовательным) языкам. Немалую роль в этом сыграло и искусственно введенное понятие отсечения, своего рода аналог столь нелюбимого Дейкстрой оператора goto. Теперь программист мог по сво­ему усмотрению динамически отсекать бесплодные, по его мнению, ветви деревьев перебора, что привело к многократному (в сотни раз) повышению скорости работы программ, но при этом нарушило ясность их структуры и вызвало множество проблем, связанных с отладкой.

В целях получения высокоэффективных исполняемых модулей были предприняты попытки написания компиляторов, транслирующих текст Пролог-программ в код на языке С. Однако, в отличие от проце­дурных языков сверхвысокого уровня, для Пролога хорошего резуль­тата добиться не удалось. Структура декларативной «программы» с большим количеством базовых фактов приводила к появлению крайне неуклюжих конструкций. Например, появлялись операторы switch языка С с более чем 15000 (!) условиями выбора case. Такие синтаксически корректные выражения многие компиляторы считали ошибкой или выдавали неэффективный код.

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

Имеются бесплатные версии Пролога для реализаций на параллельных компьютерах, но они либо усечены до возможности исполнения не более чем на двух процессорах, либо неэффективны. Да и коммерческих парал­лельных версий не так много. Это, например, Paralogic и Densitron CS Prolog для транспьютеров. Информации по этим версиям очень мало. Впрочем, неплохие общедоступные альтернативы параллельному Про­логу предлагаются японцами в рамках проекта вычислительных сис­тем пятого поколения (см. далее).

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

Для примера приведем систему SWI-Prolog (ftp://swi.psy.uva.nl), содержа­щую быстрый компилятор, профилировщик, набор библиотек и удоб­ный интерфейс для подключения модулей на языке С. Она реализо­вана для ряда С/шя-платформ, таких как HP и Linux, а также для Windows, NeXT, OS/2, Sun и SPARC.

Несколько лет назад в Пролог было введено понятие объекта. Появился ряд объектных диалектов, таких как freeware-версия OL(P) Objec: Layer for Prolog. Это простой компилятор объектного кода в обычный Пролог, поддерживающий все принципы объектно-ориентированного программирования, вплоть до множественного наследования. Не обо­шлось, конечно, и без коммерческих объектных версий, не получив­ших, впрочем, большого успеха из-за появления нового полудеклара­тивного языка с мощными средствами объектно-ориентированног программирования — Smalltalk.

Из коммерческих реализаций Пролога надо упомянуть бывшую одно время весьма популярной систему Arity Prolog 6.1. Вариант Delphin: Prolog, работающий на ряде Unix-платформ, включает в себя высокс производительные компилятор и интерпретатор, интерфейсные библи I теки и поддерживает эдинбургский стандарт. Для системы Windoi имеется прекрасная 32-разрядная версия LPA-Prolog как со «стандарт­ным», так и с расширенным объектным синтаксисом, с набором бис лиотек для работы с оконным интерфейсом, с поддержкой DDE и пр токола ODBC и с возможностью создания библиотек DLL.

Знакомый многим отечественным программистам Turbo Prolog, рабатывавшийся ранее фирмой Borland, теперь выступает под мар PDC Prolog и реализован для операционных систем MS-DOS, Wind( OS/2 и Unix/Linux. Правда, сохранились как достоинства, так и н статки первоначального варианта. Имеется удобная среда разработ*; и быстрый компилятор, но наблюдается несовместимость с подав! щим большинством других диалектов этого языка. Существует cm альная версия для визуальной разработки VisualProlog.

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

Однако нельзя сказать, что Пролог свою «лебединую песню» про Как наиболее известный и наиболее простой в освоении из всех де ративных языков, он остается и сегодня прекрасным средством быстрого создания экспертных систем и интеллектуальных баз зна требующих сложной структуры запроса. Хорошая реализация Пр га — это, по сути, CASE-система, только простая в изучении и гиб! использовании, что косвенно подтверждается ценами на разли* версии этого языка.

Русский Пролог

В Старом свете родились практически все наиболее красивые я; программирования. Заложенные в них оригинальные идеи основывались на фундаментальных математических теориях. Разрабатывались такие языки и в СССР, продолжают они разрабатываться и в России (например, язык Dynamo фирмы «Параграф» для описания трехмерных виртуальных миров). Наиболее почтенный по возрасту, но с годами только становящийся мощнее — это язык РЕФАЛ (РЕкурсивных Функций АЛгоритмический язык).

О судьбе этого языка я узнал из первых рук — от Владимира Хорошевского, профессора, члена-корреспондента РАЕН, руководителя ceктора экспертных систем отдела проблем искусственного интеллекта РАН.

Первую версию РЕФАЛа разработал В.Ф. Турчин еще в 1964 году, Этот язык, реализовавший концепцию сопоставления с образцом, родился раньше Пролога и СНОБОЛа, которых часто считают родоначальниками этого направления. В основе РЕФАЛа лежит теория нормальных алгоритмов Маркова (реализованная во внутренней машине вывода), которая потенциально мощнее теории исчисления Хорновых дизъюн­ктов, воплощенной в Прологе. Благодаря этому язык, созданный в СССР, позволяет решать некоторые задачи значительно эффективнее, чем его зарубежные собратья. Немаловажно, что РЕФАЛ превосходит известные языки сопоставления с образцом по своей выразительной мощности и легкости понимания текста программ.

Первоначально так называемый базисный РЕФАЛ позиционировался как язык для преобразования произвольных языковых конструкций, своего рода метаалгоритмический язык.

Первый интерпретатор РЕФАЛа на БЭСМ-6 написали С. Флоренцев и С. Романенко. Он выполнял до 300 конкретизации (сопоставлений с образцом и преобразований образца к требуемому результату) в секунду, что даже по нынешним временам довольно высокий результат. В основе интерпретатора лежала абстрактная РЕФАЛ-машина, работающая с бесконечным полем памяти. Модель данных поддерживала двунаправленные списки, а в РЕФАЛ-2 добавилось понятие закольцованных ссылок, в результате чего появи­лась возможность работать не только с древовидными структурами, но и с графами и сетями. Естественно уложился в эту концепцию процесс отождествления «слева направо» и «справа налево», что сделало РЕФАЛ симметричным языком.

Язык РЕФАЛ-2 появился в 70-е годы. Были написаны компиляторы практически для всех платформ (М220, БЭСМ, СМ, ЕС ЭВМ). Для записи исходных текстов программ разработчики создали метакод-Б, позво­ливший описывать структуру решаемой задачи намного нагляднее, чем в ранних вариантах представления программ. Скорость работы тоже впечатляла: на IBM PC XT программа выполнялась со скоростью 1500 кон­кретизации в секунду! Семантика РЕФАЛа как декларативного языка позволила также получить очень хорошие тестовые результаты при реализации на параллельных компьютерах.

Однако по ряду причин судьба этого языка сложилась несчастливо. В. Турчин уехал из России, и на некоторое время РЕФАЛ был предан забвению. Однако энтузиасты компьютерного дела продолжали совер­шенствовать язык, и на сегодняшний день имеются две версии: РЕФАЛ-5 и РЕФАЛ+. Синтаксис языка сблизился с C++ и поддерживает объект­ную идеологию. Объектно-ориентированное программирование выра­жено в представлении функций языка как объектов, которые можно использовать в качестве образцов наравне со стандартными объектами C++, что превращает РЕФАЛ в очень мощную открытую систему про­граммирования. Сегодня последние версии языка реализованы на самых разли платформах. В Институте прикладной математики (ИПМ) РАН i ботан транслятор с РЕФАЛа для .R/SC-архитектур. При реализации ряда алгоритмов он позволяет получать выигрыш примерно в 5 ] сравнению с результатами известных западных фирм, использу) другие языки. При реализации РЕФАЛа на спецпроцессоре выи еще больше.

Сегодня РЕФАЛ прочно занимает свою нишу, не опасаясь никаки: курентов. Например, он успешно используется физиками Обн] при реализации аналитических преобразований, а также мне математическими центрами России. Одно из основных приме! РЕФАЛа — разработка трансляторов с языков программиров; когда сам РЕФАЛ используется как метаязык. В ИПМ на нем был быстро написан высокоэффективный транслятор CERN Fortran.

Благодаря тому что РЕФАЛ был разработан в нашей стране, не об его вниманием и военные. Для современной боевой техники не] требуется быстро модифицировать средства разработки, делая и: кватными растущим возможностям электроники. РЕФАЛ подде вает создание быстро совершенствующихся узкоспециализирова языков программирования.

Наконец, еще одна интересная область, где используется РЕФА это искусственный интеллект. Здесь РЕФАЛ применяется и как к ное средство разработчика, и как инструмент для создания яз представления знаний, ориентированных на конкретные области менения в искусственном интеллекте. Одним из фундаментал направлений, позволяющих эффективно использовать мощь РЕФ является анализ естественных языков. С помощью РЕФАЛа соз лингвистические процессоры, экспертные системы и многое друго одном из проектов оптимизации исходных текстов программ на РЕ<5 в качестве языка, осуществляющего необходимые преобразование стов, был взят сам РЕФАЛ.

В 80-е годы американцы были серьезно озабочены японским прое компьютеров пятого поколения, опасаясь появления конкуре] сфере компьютерных технологий. Однако язык Пролог, выбранЕ качестве базового для машины вывода систем пятого поколени оправдал ожиданий, возможно потому, что его система логичес вывода обладает рядом ограничений. А РЕФАЛ, имеющий в своей 0( мощную математическую модель, существенно превосходящую лог, вполне мог удовлетворить требованиям японской системы. Поз можно надеяться, что если мы доживем до реализации подобного екта компьютеров нового поколения в России, то в качестве базе языка будет выбран именно РЕФАЛ.

Пишется на чем угодно — разрабатывается только в Visual Studio

Существует еще как минимум с десяток не менее популярных языков программирования, по различным причинам не упомянутых в данной книге, хотя вполне этого заслуживающих. Так, одним из сценарных языков, завоевавших большую популярность в России, безусловно является РНР. Буквально за считанные годы набрал известность раз­работанный в Microsoft язык С#, напоминающий Java. Распростра­ненная Интернет-технология Flash также содержит встроенный режим программирования. Кроме того, в немалом количестве отечественных систем автоматизации имеются собственные внутренние сценарные языки. Например, должность «программист 1C» уже стала фактиче­ским стандартом.

Интересную возможность объединения множества языков программи­рования в одной оболочке предложила корпорация Microsoft. Посмот­рим, какие новые языки она предлагает разработчикам.

Несколько лет назад корпорациямicrosoft выпустила бета-версию среды разработки Visual Studio.NET, в которой реализована идея общего язы­кового окружения (Common Language Runtime, CLR). Коммерческая версия должна появиться в 2003 году. Тексты программ на различных языках программирования должны транслироваться не в команды про­цессора, а в промежуточный байт-код на языке MSIL (просматривается четкая аналогия с технологией Java, основным конкурентом системы Windows). Это дает разработчикам ряд несомненных удобств, например доступ к общей библиотеке стандартных классов. На уровне CLR реали­зованы поддержка объектной технологии, сборка мусора, проверка безопасности, многопотоковость, вызов удаленных процедур и другие функции.

Одно из важнейших достоинств идеи CLR — возможность создания про­грамм, написанных на разных языках программирования, а также раз­работки и отладки приложений в единой оболочке Visual Studio.NET. В стандартный комплект поставки Microsoft войдут, по всей види­мости, языки С#, C++ и Visual Basic.NET. Кроме того, корпорация Microsoft предложила ряду компаний реализовать их собственные рас­ширения Visual Studio.NET для других языков программирования. Это такие достаточно известные языки, как Smalltalk, Component Pascal, Oberon, Perl, Fujitsu COBOL (его рекомендовал к переносу на .NET сам Билл Гейтс), а также целый ряд менее известных, но во многих случаях гораздо более полезных языков. Хочется надеяться, что выпуск их ../У-ЕТ-версий принесет им заслуженную популярность.

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

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

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

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