 |
БИБЛИОТЕКИ ДЛЯ БЕЙСИКА
Бейсик "взрослеет". Язык, который всегда входил в число наи-
более широко используемых языков программирования, становится те-
перь настоящей средой для разработки программного обеспечения.
Причинами перехода от любительского уровня к профессиональному яв-
ляются многочисленные расширения классической версии языка: воз-
можность отключения нумерации строк, многостроковые структуриро-
ванные программные конструкции, структуры типа "запись", поимено-
ванные подпрограммы с параметрами и локальные переменные.
Более того, с появлением транслятора QuickBasic фирмы
Microsoft разработчики получили возможность строить на Бейсике при-
ложения из раздельно откомпилированных модулей, некоторые из кото-
рых могут быть написаны на других языках (см. "BASIC Face-off",
Justin J.Crom, PC Tech Journal, September 1987,p.136). Теперь, как
и в случае других ведущих языков программирования, разработчик име-
ет выбор из нескольких промышленных библиотек подпрограмм, которые
содержат готовые решения для распространенных задач программирова-
ния.
В число основных доступных сегодня библиотек Бейсика входят:
QuickPak Professional 1.23 и QBase 2.23 фирмы Crescent Software,
ToolKit 4.0 фирмы Exim Services Inc., ProBas 2.0 фирмы Hammerly
Computer Services, Finally! Subroutine Library и Finally! Modules
фирмы Komputerwerk Inc., а также Screen Generator фирмы The West
Chester Group. Все эти программные продукты поставляются в виде
библиотек объектных модулей, редактируемых с прикладными программа-
ми; они рассчитаны на трансляторы Бейсика, поддерживающие раздельно
компилируемые модули (QuickBasic версии 4.0 и выше и BASCOM 6.0).
Некоторые совместимы с более ранними версиями QuickBasic; The
Screen Generator может использоваться с TurboBasic фирмы Borland,
Interpreted Basic фирмы IBM и некоторыми другими трансляторами.
Разработчики могут распространять прикладные программы, созданные с
помощью этих средств, без ссылки на авторов.
При сравнительной оценке этого инструментария возникает клас-
сическая дилемма "сделать самому/купить готовое". У разработчика,
занявшегося продажей собственных программных продуктов, может ока-
заться больше времени, чем денег для вложений. С другой стороны, в
интегрированной среде стоимость библиотеки может оказаться несу-
щественной в сравнении с требованиями по времени программирования.
Кроме того, все не сводится только к экономическому критерию. Не-
которые разработчики строят свои программы полностью сами с целью
получить контроль над всеми тонкостями их работы. Они воспользуют-
ся библиотекой только в том случае, если она содержит исходные
тексты всех подпрограмм.
Библиотеки Бейсика включают в себя средства от самых незначи-
тельных до грандиозных - от подпрограмм перевода температур из
шкалы Фаренгейта в шкалу Цельсия или преобразования результатов
угловых измерений из градусов в радианы (которые просто длиннее,
чем вызов и редактирование внешних процедур преобразования) до под-
программ ввода данных, сортировки, работы с файлами и обработки за-
писей, которые позволяют строить довольно сложные базы данных. В
тех случаях, когда для предметной области требуется скорее специа-
лизированная база данных, чем промышленно эксплуатируемая стандарт-
ная система управления данными, библиотека таких программ может
дать разработчику существенный выигрыш по сравнению с самостоятель-
ным программированием всех этих средств.
Наиболее полезны библиотеки подпрограмм, автоматизирующих
часто встречающиеся задачи. Фактически всякая программа требует от
пользователя, к примеру, ввод данных, и затем выводит результаты
обработки; поэтому многие библиотеки предлагают генераторы отче-
тов, которые предназначены для создания и отображения выходных
форм и облегчения ввода и редактирования данных. Процедуры контро-
ля и структурирования вводимых данных, встроенные в подпрограммы,
защищают прикладную программу от "творчества" конечных пользовате-
лей при вводе данных. Процедуры контроля данных при вводе в диало-
говом режиме обычно достаточно сложны, и самостоятельная их разра-
ботка занимает много времени и чревата ошибками.
Далее, специализированные подпрограммы могут улучшить прик-
ладную программу в части внешнего оформления. Управляемые меню
программные конструкции ушли в прошлое; сейчас используется много-
оконный интерфейс и листаемые меню с подсвечиваемой строкой-курсо-
ром. Располагая несколькими перечисленными выше библиотеками,
включить такие возможности не составляет труда.
Еще одной областью применения библиотечных подпрограмм явля-
ется обработка ошибок. Многие встроенные операции Бейсика требуют
использования конструкции ON ERROR для обработки ошибок и защиты
программ от аварийного завершения; но использование ON ERROR и вы-
зываемое им ветвление увеличивают объем программы, замедляют ее
выполнение и запутывают алгоритм.
В некоторых библиотеках вместо стандартных функций Бейсика
используются подпрограммы, которые возвращают числовой код ошибки,
упрощающий ее обработку. И, наконец, в библиотеки входят расширен-
ные средства работы с массивами, обработки строк и математические
подпрограммы. В табл._1 приводится сравнительная оценка функций,
входящих в каждую из семи рассматриваемых здесь библиотек.
Таблица 1
Сравнение библиотек по составу функций
-------------------------------------------------------------------
Продукт (см.примечание) 1 2 3 4 5 6 7
-------------------------------------------------------------------
ВЕРСИЯ 1.23 2.23 4.0 2.0 4.0 4.0 4.7
ЦЕНА, долл. 149 149 99.95 135 99 99 79
ЯЗЫК ПРОГРАММИРОВАНИЯ:
---------------------
Бейсик + + - + + - -
Ассемблер # # - - + - -
ФУНКЦИИ:
--------
Обработка массивов + * - * + - -
Управление данными - + + - - - -
Ввод данных в поле + + + + + - -
Ввод данных в форму - + + - - + +
Функции даты/времени + * + + + - -
Функции ДОС + + + + + + -
Динамические массивы строк + + - + - - -
Поддержка средств расшире-
ния памяти (EMS) - - - + - - -
Файловые функции + * + + - + -
Бухгалтерские функции + - - - - - -
Графические средства + + * + + - -
Управление клавиатурой + - - * + - -
Математические функции + - - - + - -
Меню + + + - - + -
Поддержка "мыши" + - - + - - -
Числовые преобразования + - + + + - -
Меню с наложением + - + - - - -
Сортировка + * + * + - -
Статистические функции + - * - - - -
Обработка строк + * + + + - -
Управление окнами * - + + - * -
-------------------------------------------------------------------
Примечания к таблице
Продукт Изготовитель
------------------------------------------------
1. QuickPak Professional Crescent Software
2. QBase - " -
3. ToolKit Exim
4. ProBas Hammerly
5. Finally! Subroutines Komputerwerk
6. Finally! Modules - " -
7. The Screen Generator West Chester
+ - реализовано
* - реализовано частично или с ограничениями
- - не реализовано
# - поставляется по требованию без дополнительной оплаты
Пакет программ, предназначенный для продажи, не говоря уже об
огромных, экономящих время инструментариях, должен быть простым в
обращении. Опытный программист скорее напишет программу сам, чем
станет пользоваться громоздким и запутанным покупным модулем. Кро-
ме того, включение в модуль большого числа универсальных процедур
делает его слишком большим для конкретного приложения.
Для пакета, включающего несколько сотен подпрограмм, докумен-
тация особенно важна. Разработчик не должен просматривать руковод-
ство для того, чтобы по разбросанным и туманным ключам выяснить
синтаксис вызова подпрограммы. Наличие руководства с краткими при-
мерами, демонстрирующими использование подпрограмм, значительно
увеличивает вероятность того, что разработчик станет ими пользо-
ваться. Примеры программ на дискете, демонстрирующие все случаи
использования программы, также являются ценными, не только с точки
зрения обучения, но и потому, что исходный текст может быть непос-
редственно включен в разрабатываемую программу.
Для того, чтобы польза от этих программных продуктов была
максимальной, требуется некоторое знакомство с редактором связей и
программой-библиотекарем. Особенно это касается случаев сочетания
подпрограмм из разных библиотек с целью создания специализирован-
ных библиотек для использования в среде QuickBASIC или на отдель-
ном этапе редактирования связей. Некоторые из рассматриваемых
здесь инструментариев содержат подробное описание функций редакти-
рования связей и ведения библиотек, но в других предполагается,
что пользователь знаком с этими функциями.
Сотрудники нашего журнала оттранслировали и выполнили примеры
программ, поставляемых с каждым из пакетов. Некоторые подпрограммы
были проверены в среде специально разработанных для этого программ.
Целью была проверка не только выполнения подпрограммой ее функции,
но и последовательности вызова подпрограммы, описанной в докумен-
тации. Библиотеки тестировались в среде QuickBASIC 4.0 на компью-
терах Compaq Portable III и 386 Portable. Оба компьютера были заг-
ружены операционной системой Compaq DOS 3.31.
Все без исключения подпрограммы работали должным образом, но
некоторые последовательности вызова были приведены в документации
с ошибками. В завершение оценивалась служба сопровождения фир-
мы-продавца библиотеки на основе по крайней мере одного обращения
за помощью. Если не находилось реальных вопросов, то для измерения
качества ответа задавались разумные гипотетические вопросы.
Crescent Software. Пакеты QuickPak Professional и QBase явля-
-----------------
ются высококачественными программными продуктами, которые предназ-
начены для решения широкого спектра задач и могут оказаться полез-
ными как для инженеров и служб сопровождения, так и для профессио-
нальных разработчиков. QuickPak Professional - это набор подпрог-
рамм общего назначения, полезный при разработке любой прикладной
программы, в то время как QBase представляет собой более специали-
зированную библиотеку подпрограмм ведения баз данных и организации
ввода информации с экрана. Начинающие программисты могут полу-
чить большую пользу от документации и примеров программ, при сос-
тавлении которых большое внимание было уделено обучению.
QuickPak Professional включает в себя 237 подпрограмм на ас-
семблере и 84 подпрограммы и функции на Бейсике. Библиотека пос-
тавляется на трех дискетах объемом 360 Кбайт. Фирма Crescent при-
|