Главная страница проекта ИНФОРМАТИКА-21

Наука Школе

Что такое Компонентный Паскаль

Язык программирования Компонентный Паскаль (Component Pascal) воплощает передовые достижения технологий программирования и продолжает великолепную традицию дизайна языков программирования Никлауса Вирта. Предшественники Компонентного Паскаля — Алгол-60, Паскаль, Модула-2, Оберон и Оберон-2. Компонентный Паскаль является прямым наследником легендарного Паскаля (в отличие от множества «бастардов»). Полное описание здесь. Об истории подробнее написано здесь. Компонентный Паскаль создан в компании Oberon microsystems. Основные уточнения Компонентного Паскаля по сравнению с Обероном-2 касаются следующего:

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

2. Модернизирована несколько устаревшая система основных типов Оберона (впрочем, этот недостаток устранен в новейшей версии языка Oberon-07): теперь набор основных типов Компонентного Паскаля является надмножеством для основных типов языка Java.
Основные "рабочие" типы INTEGER, REAL и CHAR соответствуют 32-, 64- (т.наз. двойная точность) и 16-(Unicode) -битовым переменным, что позволяет уменьшить разнообразие основных типов, реально используемых в большинстве случаев; использование других типов (LONGINT, SHORTREAL, SHORTCHAR и т.д.) ограничивается специальными приложениями.

3. Добавлены базовые средства для работы с цепочками литер (неявный тип String), что вместе со стандартным модулем Strings в библиотеке Блэкбокса делает Компонентный Паскаль удобным для тех приложений, где обычно используются скриптовые (сценарные) языки. Цепочки литер представляются массивами литер (ARRAY OF CHAR или ARRAY OF SHORTCHAR), причем значением считается последовательность литер до первого вхождения специальной литеры-ограничителя 0X. Цепочки литер можно сравнивать (подразумевается лексикографическое сравнение) и складывать (конкатенация). Конструкция a := b$ позволяет скопировать в массив литер a цепочку, хранящуюся в массиве литер b (включая литеру-ограничитель 0X), даже если присваивание a := b запрещено (скажем, из-за разной длины массивов a и b).

Имеются две реализации Компонентного Паскаля:

1) Система программирования Блэкбокс (BlackBox Component Builder; производитель Oberon microsystems), работающая под ОС MS Windows (в настоящее время ведется работа по переносу под ОС Linux; на данный момент вся не-графическая основа безупречно работает, проблемы состыковки с графическими библиотеками ОС Linux в процессе решения).
Блэкбокс
представляет собой полноценный профессиональный инструмент (имеет профилировщик, возможность создавать автономные exe и dll файлы, обращаться к интерфейсам ОС, а также MS Office, базовые средства работы с базами данных, поддержку коммуникационных протоколов TCP/IP и т.д.).
Наиболее впечатляющий аспект Блэкбокса — наличие мощного компонетного каркаса (component framework = библиотека типов и методов) для создания диалоговых систем, интерактивной графики, а также составных документов.
Версия под MS Windows безупречно и прозрачно поддерживает механизм OLE.
Блэкбокс чрезвычайно надежен и удобен в работе (компилятор и каркас шлифуются с 1993 г., при этом развитие идет, в основном, через добавление новых компонент — в соответствием с принципами Оберона и КОП).
Слабой чертой является отсутствие достаточно подробного "щадящего" описания каркаса, хотя в дистрибуции имеется довольно богатый набор нетривиальных примеров программ (см. также ресурсы http://www.zinnamturm.eu и http://oberoncore.ru).
Блэкбокс доступен бесплатно с открытыми исходниками в соответствии с одной из стандартных лицензий open source.

2) Gardens Point Component Pascal: реализация компилятора Компонентного Паскаля для среды .NET, выполненная в австралийском Queens University (место работы со-основателя Oberon microsystems Клеменса Шиперского до его перехода в Microsoft Research).
На данный момент не вполне ясно, насколько полно реализован язык в этом компиляторе (первые версии имели некоторые ограничения), а также достиг ли он степени надежности, необходимой для практического применения.

На Компонентном Паскале (в системе Блэкбокс) реализован ряд крупных проектов.

Главная страница проекта ИНФОРМАТИКА-21

Наука Школе