Введение

Язык программирования четвертого поколения (4GL) – программный продукт FOCUS – это язык программирования четвертого поколения (4GL) и среда разработки, предназначенная для создания запросов к базам данных. Разработанный компанией Information Builders Inc., он изначально создавался для обработки и анализа данных на мейнфреймах IBM. Впоследствии были выпущены версии для миникомпьютеров, таких как VAX, и других платформ. Позже FOCUS был адаптирован для персональных компьютеров и (в 1997 году) для Всемирной паутины – продукт WebFOCUS.

Описание

Хотя FOCUS напоминает другие инструменты доступа к данным и анализа, такие как SQL и SAS, он также включает функции отображения и представления отчетов и диаграмм. Он автоматизирует процесс идентификации файлов операционной системой, открытия входного файла, чтения следующей записи, открытия выходного файла, записи следующей записи и закрытия файлов. Эта базовая операция позволяет пользователю/программисту сосредоточиться на деталях работы с данными внутри каждой записи, по сути работая почти полностью в неявном цикле программы, который выполняется для каждой записи, подобно RPG (генератору программ отчетов). Другие процедуры оперируют с набором данных в целом, например, печать или статистический анализ, и требуют от пользователя/программиста лишь указать этот набор данных. По сравнению с языками программирования общего назначения, такая структура позволяет пользователю/программисту меньше разбираться в технических деталях данных и способах их хранения, и больше – в содержащейся в них информации. Это размывает грань между пользователем и программистом, привлекая специалистов, чья деятельность связана с бизнесом или исследованиями, а не с информационными технологиями. В свою очередь, это имеет двойственный эффект: позволяет быстро получать ответы на бизнес- или исследовательские вопросы, даже те, которые требуют нескольких итераций для получения окончательного результата; но также может приводить к созданию большого объема плохо написанного и/или сложного в поддержке исходного кода.

Описание основного файла (MFD)

Уникальной особенностью FOCUS в то время было то, что он предоставлял пользователю возможность создавать файл описания данных (называемый "описанием главного файла"), ссылающийся на фактический файл данных или даже несколько различных файлов описания данных, обращающихся к одному и тому же файлу данных разными способами, в отличие от обычной практики жесткого кодирования структуры файла в программу. Таким образом, файлы любой структуры из любого источника можно было получать или создавать множеством различных способов, что позволяло избежать значительной части манипуляций с данными (например, конкатенации или разбора), которые часто требовались при использовании других, более ранних языков программирования. Например, к одному и тому же фактическому файлу данных можно было получить доступ (для чтения или записи) как к последовательности текстовых строк длиной 80 байт, или как к 40 двузначным числовым полям, или как к 10 восьмибайтовым числам с плавающей точкой и т.д., просто переписав соответствующее описание главного файла по мере необходимости.

WebFOCUS (англ.) (недоступная ссылка)

В 1997 году была представлена веб-версия FOCUS под названием "WebFOCUS", которая основывалась на возможностях доступа к данным и формирования отчетов FOCUS, расширяя их до визуально ориентированной клиентской архитектуры с тонким клиентом, доступной из любого веб-браузера. Язык WebFOCUS имеет как "процедурную", так и "непроцедурную" командную структуру. Первая предназначена для немедленного выполнения, а вторая помещается в стек памяти для последующего выполнения.