Смекни!
smekni.com

Программирование и разработка приложений в Maple (стр. 132 из 135)

Наконец, вкратце упомянем еще одно средство OpenMaple, обеспечивающее доступ к библиотекам Maple из других Windows-приложений. Начиная с Maple 9, оно обеспечивает прямой доступ к Maple-библиотекам из внешних программ на основе механизма API (application programming interface). OpenMaple представляет собой набор функций, которые предоставляют откомпилированным программам доступ к программам и структурам данных Maple. В определенной мере это средство, обратное к вышеупомянутому механизму внешних вызовов (externalcalling), обеспечивающему доступ к внешним функциям и структурам данных в среде Visual Basic, Java, C, MATLAB и FORTRAN. Использование средств OpenMaple наиболее эффективно и естественно из С-среды, однако достаточно опытные программисты могут использовать данный механизм также из среды Java и Visual Basic.

Так, используя OpenMaple API in Maple 9.5, пользователь в режиме реального времени может вызывать Maple-программы изнутри программ, написанных на языках Java, C и Visual Basic. В данном случае OpenMaple представляет собой набор программ, написанных на языках Java, C и Visual Basic, и обеспечивающих программам, написанным на этих языках, доступ к Maple-программам как пакетным, так и пользовательским. С примерами такого рода можно ознакомиться в стандартных поставках пакета, начиная уже с релиза Maple 9.5. Из вышесказанного нетрудно усмотреть, почему данная тема не рассматривается нашей книгой. Это проблема, скорее, пользователя из иной программной среды, желающего использовать те или иные средства пакета Maple, например, средства для работы с графическими объектами либо для символьных вычислений. Таким образом, собственно для пользователя пакета Maple именно средства обеспечения внешних вызовов и маплетов представляются нам наиболее интересными и полезными.

Заключение

Настоящая книга вводит специалистов, ученых, преподавателей и студентов в различные аспекты программирования в среде известного математического пакета Maple релизов 6 – 11. В ряде источников Maple определяется как система компьютерной алгебры (CAS), использовался данный термин и нами. Однако мы остановились именно на термине «пакет» и вот почему. В нашем понимании программное средство, именуемое «пакетом», предоставляет собственную среду программирования, ориентированную, прежде всего, на наиболее эффективную реализацию в ней задач, относящихся к области приложений пакета. При этом, перед пакетом, как правило, не ставится цели универсализации в том смысле, чтобы программируемые в его среде средства были выполняемыми непосредственно в операционной среде ПК, например, на уровне {exe, com}файлов. А именно такой возможностью и не обладает Maple.

Книга является непосредственным продолжением наших предыдущих книг по проблематике пакета, изданных в России, Белоруссии, Эстонии, Литве и США. Основное наше внимание уделено основам и принципам программирования в среде Maple-языка пакета, позволяющим эффективно использовать нашу Библиотеку [41,103,109], прежде всего. Наряду с этим, книга может послужить неплохим введением в программную среду пакета Maple релизов 6 – 11. Здесь упомянут и релиз 11 пакета, появившийся на рынке в самом начале 2007. И это совсем не лишне, ибо программная среда пакета является его основой и наименее обновляемой компонентой, пролонгируясь от релиза к релизу.

Данное программное обеспечение, выполненное на инновативном уровне, организовано как пользовательская библиотека, логическое соединение которой с главной Mapleбиблиотекой позволяет использовать содержащиеся в ней средства на уровне стандартных средств пакета. Библиотека содержит хорошо-разработанное программное обеспечение (набор более 730 процедур и модулей), которое хорошо дополняет уже существующее программное обеспечение пакета с ориентацией на самый широкий круг пользователей, существенно увеличивая его применимость и эффективность. Опыт использования данной Библиотеки как отдельными пользователями, так и в ряде университетов и исследовательских институтов в России, Белоруссии, Латвии, Литве, Украине, Германии и т.д. подтвердил ее хорошие функциональные характеристики при решении разнообразных физико-математических задач. Во многих случаях представленные в ней дополнительные процедуры и модули иллюстрируют как полезные приемы программирования, так и элементы методологии и методов программирования в среде пакета.

Библиотека предназначена для Maple релизов 6-11, функционирующего на платформах типа Windows 95/98/98SE/ME/NT/XP/2000/2003, однако ASCII- файл с исходными текстами всех библиотечных средств, поставляемый с библиотекой, позволяет легко адаптировать ее к операционным платформам, отличным от Windows. При этом, наборы исходных текстов всех библиотечных средств и справочных страниц, составляющих ее справочную базу данных позволяют легко обновлять библиотеку или создавать на ее основе собственные библиотеки. Прилагаемые файлы ProcLib_6_7_8_9.mws и ProcLib_10.mws содержат Maple-документы, обеспечивающие автоматическую инсталляцию библиотеки в среде Maple релизов 6-10. Наконец, в поставляемый комплект Библиотеки входит набор ее стандартных вариантов для релизов 6-10, легко устанавливаемых на ПК простым копированием без традиционной инсталляции.

Средства, представленные в Библиотеке, расширяют диапазон и эффективность применения пакета на платформе Windows благодаря новациям в трех основных направлениях, а именно: (1) устранение ряда основных дефектов и недостатков, (2) расширение возможностей целого ряда стандартных средств, и (3) пополнение пакета новыми средствами, которые расширяют возможности его программной среды, включая средства, существенно повышающие уровень совместимости релизов 6 – 10. Основное внимание было уделено дополнительным средствам, созданным в процессе практического использования и апробации Maple релизов 4 – 10, которые по ряду характеристик существенно расширяют возможности пакета, делая работу с ним намного более легкой. Значительное внимание уделено средствам, обеспечивающим более высокий уровень совместимости пакета релизов 6 – 10. Опыт наш и наших коллег по использованию вышеупомянутого программного обеспечения для различных приложений и обучения подтвердил его достаточно высокие эксплуатационные характеристики.

Наконец, следует отметить, что ряд наших книг и статей на пакету, представляя средства, созданные нами, и содержа предложения по дальнейшему развитии Maple стимулировал развитие таких приложений как модули FileTools, LibraryTools, StringTools и ListTools. Все это позволяет надеяться, что представленная книга, а также другие цитируемые в ней материалы окажутся достаточно полезными для широкой аудитории пользователей пакета, как новичков, так и уже имеющих опыт работы с пакетом Maple.

И в заключение кратко о том, как создавалась Библиотека, упомянутая выше. Информация об этом позволит более адекватно оценить ее место в программной среде Maple и ее основные назначения для пользователей пакета различного уровня. Работая, в основе своей, в фундаментальных областях естествознания (математика, кибернетика, математическая биология и др.), мы, между тем, значительное внимание уделяли и такому прикладному направлению, как компьютерная техника с акцентом на ее программном обеспечении (операционные системы, языки программирования, математические и статистические пакеты, системы компьютерной алгебры, СУБД, САПРы и т.д.). Работа в данном направлении заключалась как в разработке программных средств различного назначения (как системных, так и прикладных), так и в проведении курсов лекций различного уровня, а также подготовке серий книг различной направленности, изданных в СССР, Эстонии, Литве, Белоруссии и США.

Как правило, работа с конкретным программным средством велась по пяти основным направлениям: (1) освоение на основе всесторонней апробации, (2) применение к решению различных задач и проектов математического, статистического и инженерно-физического характера, (3) чтение соответствующих курсов, (4) выработка рекомендаций по эффективному использованию средства, его особенностям и недостаткам, включая создание собственных средств, расширяющих, дополняющих и исправляющих стандартные средства, и (5) подготовка различного рода изданий (книги, статьи, сборники и др.) наряду с консультативной активностью. Естественно, подобная концепция предполагает весьма серьезную творческую активность в данной области, наиболее импонирующую нашей натуре и представлениям.

Именно данный подход к каждому ПС, с которыми мы имели дело, и позволил создать полезные средства в данном направлении. Так, в 1976 была создана операционная система MINIOS (оптимизированная версия OS IBM/360 для младших моделей ЕС ЭВМ), ПСОИ (параллельная система обработки информации для ЕС ЭВМ/IBM 360/370), СУБД MINOKA (оптимизированная версия db ms IMS) и др. Издав в 1991 г. книгу по MathCAD, первую в СССР вводящую отечественного читателя в область математических пакетов, затем были подготовлены книги по таким средствам как Reduce, Mathematica и Maple. Именно на последнем пакете наше внимание и задержалось на более длительное время. Обусловлено это было, прежде всего, тем, что именно данный пакет использовался нами и нашими коллегами из Литвы и Беларуси в ряде приложений математического и инженерно-физического характера.

Издание в 1996-1998 одних из первых в стране книг по пакетам Mathematica и Maple 5 породило немало писем в наш адрес с целым рядом очень интересных вопросов по этим

(конкурирующим между собой и во многом подобным) пакетам. На сегодня в общей сложности их более 1500. Основная масса носила и носит довольно тривиальный характер, однако немало встречается и вопросов, требующих достаточно серьезной проработки. Ни один из вопросов не остался без нашего внимания. Так вот, среди этой массы писем целый ряд содержал вопросы, решение которых и инициировало создание многих из представленных в [103] процедур. Наша особая благодарность авторам писем, чьи вопросы позволили оформить их в качестве отдельных задач, полезных как для практического применения, так и в учебных целях.