Смекни!
smekni.com

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

Наконец, немало процедур было инициировано проведением целого ряда курсов по пакету Maple различного уровня, проведенных в 2001 – 2006 для преподавателей и докторантов ряда университетов, а также научных сотрудников академических институтов СНГ, Прибалтики и др. Таким образом, наша активность по использованию пакета, работа с письмами читателей наших книг и проведение серии курсов – вот три основных источника, стимулировавших появление Библиотеки, прилагаемой к настоящей книге.

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

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

Наконец, работая с Библиотекой, слушатель не только имеет прекрасную возможность освоить многие из ее средств для своей текущей и последующей работы с пакетом, но и проникается концепцией эффективной организации своих собственных Maple-библиотек, включающих средства, обеспечивающие его профессиональные интересы. Представленная в [100] Библиотека содержит далеко не все разработанные нами средства, ориентированные на работу в среде Maple. В нее вошли лишь средства, ориентированные на достаточно широкое использование при программировании в среде пакета и базирующиеся исключительно на основных стандартных средствах. Значительная же часть наших разработок выполнена в виде отдельных пакетных модулей, ориентированных на специальные приложения в естественных науках и поставляемых на коммерческой основе. Естественно, данные модули достаточно существенно используют и средства упомянутой здесь Библиотеки. Есть надежда, что и читатель найдет среди средств нашей Библиотеки полезные для своего творчества.

В настоящей книге, невзирая на ее характер, представлен ряд полезных приемов и рекомендаций по программированию в Maple, намного больше такого типа информации можно найти в наших книгах [41-43,103] и в прилагаемых к ним архивах, содержащих исходные тексты большого количества процедур. Однако, немало различного рода нюансов работы в среде Maple осталось и вне нашего поля зрения, следовательно для вполне приличного освоения (mastering) требуется достаточно серьезная творческая наработка с пакетом и не на уровне высоко интеллектуального калькулятора, а вполне реальное программирование приложений в его среде, обеспечивающее вас как расширенной средой программирования, так и стимулирующее более активно знакомиться с ее как возможностями, так и недостатками.

По нашей Библиотеке и содержащимся в ней средствам уместно сделать несколько замечаний общего характера. Наша Библиотека является наглядной иллюстрацией следующего, с позволения сказать, технологического процесса использования Maple. В процессе применения пакета для решения различных прикладных задач, проведения различных курсов по пакету и т.д. постепенно нарабатывался определенный набор законченных процедур, реализующих часто используемые алгоритмы. Впоследствии из данного набора выбирались наиболее интересные как с точки зрения приложений, так и с точки зрения обеспечения учебного процесса примерами, содержащими полезные приемы программирования в среде пакета. Для удобства данный набор был оформлен в виде библиотеки, аналогичной главной Maple-библиотеке, с простыми способами логической связи ее с главной библиотекой, позволяя использовать ее средства на логическом уровне, аналогично стандартным средствам пакета.

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

В книгах [41,103] и настоящей представлены средства вышеупомянутой Библиотеки, которые как расширяют, так и улучшают стандартные средства пакета релизов 6 – 10. Эти средства достаточно широко используются и при работе с пакетом в интерактивном режиме, и при программировании в его среде различных задач. Они представляют несомненный интерес при программировании различных задач в среде Maple, как упрощая сам процесс программирование, так и делая его более прозрачным. В целом же ряде случаев предложенные выше средства упрощают работу с пакетом после различных аварийных завершений.

Библиотека UserLib прилагается к нашим книгам [41,103], ее демо-версию можно бесплатно загрузить с одного из следующих вебсайтов: http://aladjev-maple.narod.ru/DemoLib.zip http://writers.fultus.com/aladjev/book01.html

Тогда как архив с Библиотекой и сопутствующими ей материалами можно загружить с одного из следующих вебсайтов: http://www.aladjev.newmail.ru/DownLoad/UserLib6789.zip

http://writers.fultus.com/aladjev/source/UserLib6789.zip

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

Поэтому, при обнаружении подобных ситуаций убедительно просим в любой из наших адресов выслать четкое описание ситуации (желательно с примерами в виде mws-файлов; в Subject-строке следует указать “Problems with Maple”). Это позволит нам не только оказать посильную вам помощь в устранении возникшей ситуации, но и в случае необходимости разработать средства, обеспечивающие устранение недоработок и ошибок Maple, обнаруженных при выполнении нашей Библиотеки в среде Maple 10–11 на Windows-платформе. К сожалению, данная непростая ситуация является проблемой не нашей Библиотеки, а вопросов обеспечения устойчивого и качественного программирования в среде пакета Maple в целом. При этом, следует сделать одно весьма существенное замечание. В настоящее время мы активно не занимаемся Maple-тематикой, поэтому в наш адрес не рекомендуется отсылать сообщения следующих двух типов:

(1) по частным ошибкам (например, некорректное вычисление конкретного интеграла и др.), коими пакет изобилует и количество которых с появлением новых релизов по меньшей мере не уменьшается. В противном случае, только этим нам и пришлось бы заниматься. Бесполезной же констатацией ошибок и несуразиц Maple мы не считаем нужным заниматься. Такого типа вопросы адресуются в MapleSoft, хотя это и не очень продуктивно.

(2) по вопросам применения Maple для решения конкретных задач (тематика просто может выходить за рамки наших интересов и компетентности). Подобные вопросы можно обсуждать на соответствующих форумах или в группах в Internet.

Нами будут гарантированно рассматриваться лишь вопросы, непосредственно относящиеся к функционированию в том или ином релизе пакета Maple нашей Библиотеки, а также вопросы, носящие общий и концептуальный характер по программной среде пакета и его организации. Именно на такие вопросы следует ожидать нашей реакции в той или иной форме.