Система CLIPPER
Система Clipper представляет собой, по существу, СУБД компилирующего типа с автонотным (self-contained) языком, в значительной мере совместимую по входному языку программирования и организации базы данных с СУБД dBaseIII PLUS. Основная цель разработки этого програмного продукта - достижение более высокой производительности прикладных систем по сравнению с созданными с помощью средств dBaseIII PLUS. Эта задачп решается благодаря использованию на стадии исполнения заранее скомпилированного кода вместо интерпретации исходных программ, а также за счет более эффективных механизмов индексирования файлов БД.
Clipper работает в среде операционной системы MS DOS
версии 2.0 и выше. В результате компиляции текстов программ на исходном языке он порождает загрузочные программные модули, не требующие каких-либо системных срдств на стадии исполнения.
Тем самым разработанная п/п полностью "отчуждается" от инструментальных средств его разработки, может распространяться независимо от них, и пользователь такой п/п избавляестя от необходимости изучать этот инструментарий.
Допускается декомпозиция программных модулей на составные части, из которых на стадии редактирования можно сформировать модули оверлейной структуры. Разработка крупных приложений значительно облегчается благодаря технологии сепаратной компиляции их компонентов.
Clipper обеспечивает высокую скорость не только при исполнении программ, но и на стадии их компиляции. Система польностью совместима с системой dBaseIII PLUS по организации файлов БД. Однако индексные файлы в системе Clipper имеют иную более эффективную организацию, что наряду с компиляцией способствует существенному повышению производительности программ на стадии исполнения. Индексные файлы dBaseIII PLUS подменяются файлами системы Clipper аналогичного назначения автоматически на стадии исполнения либо заблаговременно с помощью специальной утилиты.
В языке программирования системы Clipper отсутствуют такие полноэкранные команды языка dBase, как ASSIST, BROWSE, EDIT, имеются ограничения на использование функции макроподстановки (&). Значением сторковой переменной, к которой применяется эта функция, не может быть, в частности, полная команда или фраза команды с ключевым словом, а также список имен полей записи файла БД или других объектов языка с разделителями-запятыми. Вместе с тем в язык введены многие расширения. К их числу (в летней версии 1987 г.) относятся возможности работы с массивами переменных, которые могут объявляться при необходитости глобальными величинами, спецификации эункций, определяемых пользователем, возможности обращения к функциям на языках Си и ассемблере с передачей им параметров, средства программирования пользовательских интерфейсов, построенных в стиле меню, сохранения и восстановления изображений, показанных на экране, большое количество новых функций различного назначения, в частности, для операцийнад строками.
В языке Clipper предусматриваются средства блокирования файлов и записей файлов БД, необходимые для использования программ на этом языке в мультипользовательской среде сетевых систем БД. Введены новые синтаксические конструкщии, например циклы FOR...NEXT, новая фраза VALID для верификации данных,
вводимых с помощью команды GET, и ряд других.
К пользовательской программе можно легко подключить процедуру HELP, обеспечивающую глобальную и контекстно-зависимую помощь. Эта процедура вызывается на стадии исполнения традиционным нажатием функциональной клавиши F1. При этом ей автоматически передаются необходимые параметры.
Clipper включает, как уже указывалось, весьма богатые системные библиотеки функций различного характера, существенно обогащающих язык, позволяющих значительно сокращать затраты времени на прикладное программирование и уменьшать объем исходного кода. В летней версии 1987 г. предусмотрено около ста различных функций для анализа состояния системы, операций с массивами, для вычисления элементарных математических функций, операций над строками, редактирования данных, для создания файлов DOS и выполнения операций над ними, работы со значениями полей типа Memo в записях фаийлов БД и для других целей.
Кроме того, пользователь имеет возможность создавать и использовать собственные библиотеки функций.
Что касается системных библиотек, то Nantucket Corp. постоянно расширяет их состав. В 1988 г. был дополнительно включен ряд новых функций, кроме того, фирма начала поставлять пакет Clipper предназначенного для использования совместно с системой Clipper. Пакет содержит большую новую структуризованную библиотеку функций и расширенный драйвер экранов и клавиатуры, призванный заменить имеющийся в системе Clipper драйвер. Эти функции и драйвер могут вкючалься в приложение на стадии редактирования.
Все функции библиотеки обладают высокой производительностью и предъявляют минимальные требования к оперативной памяти. Они реализованиы на языке ассемблера и оптимизированы. Библиотека пакета включает ряд функций для конструирования многооконных пользовательских интерфейсов, для непосредственной работы с оборудованием, подлюченным к последовательному интерфейсу ПЭВМ, минуя BIOS и обращиния к DOS.
Предусмотрена большая группа строковых функций, функций для преобразования числовых значений и битовых операций, операций над датами и временем, установки системных переключателей и получения информации об их состоянии, а также о характеристиках и состиянии операционной обстановки, видеофункций, функций для работы с дисками, файлами БД и принтером. Всего библиотека пакета включает более 270 различных функций.
Важным достоинством системы Clipper является возможность использования дополнительной (свыше 640 Кбайт) памяти персонального компьютера при исполнении разработанных его средствами п/п.
Вместе с тем система Clipper обладает и существенным недостатком - порождаемые ею загрузочные модули довольно велики по объему. Один из способов преодоления этого изъяна - придоставляемые пакетом возможности конструирования программных модулей с оверлейной структурой. Однако как "цельнотянутый" загрузочный модуль, так и корневой сегмент модуля с оверлейной структурой не могут быть размером менее 110Кбайт, поскольку в них включаются все необходимые элементы системной среды и функции стадии исполнения.
К числу недостатков этого продукта следует, вероятно, отнести также отсутствие комфортной среды для эффективной разработки и отладки Clipper-программ. Имеется в виду среда подобная той, которой обладают, например, Турбосистемы программирования фирмы Borland Int. Входящий в состав системы Clipper симвалический отладчик является лишь одной из составных частей такой среды.
Проблему сокращения объема требуемой оперативной памяти и уменьшения размеров загрузочных модулей фирма Nantucket Corp. решила в новой версии системы - Clipper 5.0. Для этой цели в состав нового программного продукта включается динамический редактор связей - загрузчик, основанный на механизмах
виртуальной памяти и тем самым вообще исключающий необходитость использвания оверлейной структуры при создании больших программных модулей.
Версия Clipper 5.0 обладает и другими важными достоинствами. Пользователь (программист-разработчик прикладных
систем) может расширять язык новыми командами и благодаря этому формировать множества команд, удобные для программирования специфических классов задач. Предусматриваются новые типы переменных, а также многомерные массивы. Разработана машино-ориентированная документация, к которой возможен доступ в режиме on-line с помощью Guide to Clipper или Norton Guide.