Система CLIPPER. 
 
CLIPPER - это созданная фирмой Nantucket Corp. система программирования приложений в среде БД, включающая в себя быстрый компилятор программ, написанных на языке, близком к языку СУБД dBaseIII PLUS, редактор связей, развитый интерактивный символический отладчик, обладающий пользовательским интерфейсом в стиле меню, который можно связать с разрабатываемой программой для облегчения ее отладки, большую библиотеку объектных модулей системных функций, а также ряд служебных программ (утилит) . 
Система 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.