OberonCore
 

BlackBox Component Builder

Интегрированная среда разработки и выполнения модулей, написанных на языке Компонентный паскаль. С 2005 г. распространяется в открытых исходных текстах по модифицированной лицензии SleepyCat.

  • Разработчик: швейцарская компания Oberon Microsystems AG.
  • Сайт разработчика: http://oberon.ch/
  • Центр компетенции в России и странах бывшего СССР: http://oberoncore.ru/

Общая информация

Что такое BlackBox

Общую информация о среде, её истории, применениях и особенностях можно найти в следующих статьях:

Версии BlackBox

Версии от производителя

Основной рабочей версией среды является версия 1.5, выпущенная в декабре 2006 г. Версия 1.6 существует в варианте Release Candidate 5.

Скачать официальные версии BlackBox можно на сайте производителя, или на сайте OberonCore.ru.

Русскоязычные версии

Для корректной работы с русским языком версия 1.5 требует установки пакета поддержки, разработанного русскоязычным сообществом - Дельта. Дельта обеспечивает корректное отображение русских символов во всех стандартных компонентах, также добавляя к компилятору Компонентного паскаля поддержку русскоязычных идентификаторов.

Также российским сообществом выполнен перевод документации среды на русский язык.

На сайте OberonCore.ru можно скачать как отдельный архив с пакетом Дельта, так и собранный дистрибутив BlackBox с полной русификацией.

BlackBox 1.6 Community Edition

Данная версия BlackBox Component Builder разрабатывалась российским сообществом параллельно с основной версией 1.6 от Oberon Microsystems. Работа велась в направлении корректного перехода среды на полную поддержку стандарта Unicode. После выхода официальной версии (1.6 RC 5), было проведено тщательное согласование для полной взаимной совместимости разработок.

Active BlackBox

Active BlackBox (разработка ООО "Метасистемы") является экспериментальной подсистемой времени выполнения для BlackBox, поддерживающей средства параллельного программирования (активные процедуры и активные объекты). Active BlackBox существует в версии Beta. Окончательная поддержка параллельного программирования будет введена в иной форме в виде спец. версии среды.

Установка среды

BlackBox может распространяться как в виде инсталлятора, так и в виде обычного архива любого формата. В распакованном виде среда может занимать, в зависимости от комплектации, от 12 до 30 Мб дискового пространства.

Среда может быть установлена простым копированием в любой каталог жёсткого диска (или в несколько каталогов, например, в разных конфигурациях). При желании вручную может быть произведена ассоциация файлов с BlackBox (как делает инсталлятор).

Системные требования

BlackBox 1.5: CPU – от Intel-486 и выше; OS – от Windows 95/NT4.0 и выше.

BlackBox 1.6: CPU – от Intel-486 и выше; OS – от Windows NT 4.0 и выше.

Технологические вопросы

Основные компоненты

Основообразующие части среды – это:

  • Инструменты разработчика
    • Компилятор, поддерживающий раздельную компиляцию модулей языка Компонентный паскаль и дающий на выходе двочиные модули, содержащие непосредственно машинный код (файлы с расширением .OCF), которые затем могут загружаться динамически (подобно динамическим библиотекам DLL) или компоноваться статически. Кроме машинного кода модули содержат полную метаинформацию о типах данных и сигнатурах процедур, а также символьную информацию о глобальных и локальных переменных, необходимую для отображения на этапе выполнения отладочного дампа.
    • Статический компоновщик; упаковщик. Компоновщик (модуль DevLinker) позволяет собрать из модулей OCF обычный монолитный исполняемый файл. Кроме того, компоновщик используется для сборки из нескольких модулей ядра среды стартового исполняемого файла BlackBox.exe. Упаковщик (модуль DevPacker) позволяет создать в конце исполняемого файла «виртуальную файловую систему» поместив туда ресурсные файлы, документацию, обычные OCF-модули (которые будут в таком режиме грузиться динамически, но находится внутри единого EXE-файла), любые другие файлы. Работа с упакованными файлами из приложения ведётся абсолютно прозрачно.
    • Дамп-отладчик. Дамп-отладчик представляет собой удобный визуальный инструмент для интерактивного просмотра и анализа состояния модулей среды и стеков активаций процедур. Окно структурного дампа позволяет просмотреть стек активаций процедур с локальными переменными и их значениями, глобальные переменные модулей, поля объектов. Структурный дамп является интерактивным - содержит гиперссылки, позволяющие перемещаться по указателем и прослеживать любые связи. Окно дампа открывается в случае исключения при выполнении какой-либо из команд в приложении (выход за границы массива, деление на нуль, обращение по нулевому указателю, нарушение утверждения ASSERT и т.д.), также может быть открыто для просмотра состояния конкретного модуля. Пошаговый отладчик в BlackBox не включен, как не включен и в ряд других Оберон-систем. Это сделано намеренно, для поощрения грамотного, доказательного программирования (см. FAQ) . Кроме того, ряд качеств языка Component Pascal (строгая типизация, Безопасное управление памятью) и используемых приёмов разработки (защитное программирование) делают пошаговый отладчик практически ненужным.
    • Статистический профилировщик (модуль DevProfiler) - позволяет выполнять анализ распределения затрат машинного времени между отдельными модулями и функциями приложения, для выявления и устранения «узких мест» в производительности.
    • Компилятор Direct-To-COM - инструментарий для разработки на BlackBox COM-серверов и COM-клиентов. Скрывает ряд низкоуровневых особенностей COM, подобно тому, как это делают среды Borland Delphi и Visual Basic. Уникальным качеством является поддержка сборки мусора и интерактивного дампа для COM-объектов. В качестве среды разработки для COM среда завоевала на CeBiT-99 медаль в номинации «За технологическое совершенство». Также имеются средства автоматической генерации модулей-оболочек к интерфейсам COM-автоматизации.
    • BlackBox Component Framework - компонентный каркас, предназначенный для разработки динамически расширяемых графических приложений и компонент. Наиболее эффективен для задач содержательной графики (например, научных или бизнес-приложений).
    • Модель составных документов - основной концепцией графической системы BlackBox Framework являются составные документы. В составном документе может располагаться произвольное содержание - графические объекты, вложенные документы, активные компоненты в произвольном сочетании. Составные документы BlackBox во многом подобны концепциям OLE/ActiveX или JavaBeans, однако обеспечивают гораздо более гладкую интеграцию компонент, чем первые, (в частности, из-за единого языка Component Pascal), и большую свободу взаимодействия, нежели второе. Основные абстракции: отображения (модуль Views) - любые графические объекты, контейнеры (модуль Containers) - разновидность отображений, поддерживающая внедрение других произвольных отображений (может образовываться иерархия отображений произвольной вложенности). Контейнерами, в частности, являются тексты и формы. BlackBox имеет специальный формат файлов для составных документов - .ODC («Oberon DoCument»). В этом же формате хранятся исходные тексты модулей (это позволяет применять в них произвольное оформление и произвольные активные вложения).
    • Поддержка свойств (модуль Properties) - единый механизм для управления состояниями графических объектов. Свойства обеспечивают связь от внутреннего состояния объектов к пользователю (например, диалоговым окнам свойств) и обратную связь, передающую все необходимые изменения.
    • Поддержка undo-redo - специальный механизм обеспечивает поддержку стека undo-redo для составных документов и полную интеграцию с этим стеком всех вложенных графических объектов.
    • Поддержка итераторов по содержимому - особый паттерн проектирования Carrier-Rider-Mapper (носитель-курьер-проектор) применяется для организации доступа к содержимому контейнеров.
    • Текстовые контейнеры - одной из разновидностей контейнеров являются текстовые отображения (подсистема Text). BlackBox поддерживает полноценные форматированные тексты, в которые могут внедряться любые другие отображения. Текстовая подсистема используется как на этапе разработки, так и в конечных приложениях. Интерактивный текст является важнейшей составляющей графических интерфейсов, создаваемых в BlackBox - и для ряда задач (например, научных или бизнес-приложений) является наиболее адекватной формой работы с информацией.
    • Контейнеры-формы - вторая основная разновидность контейнеров (подсистема Forms), предназначенная для создания диалоговых окон. Диалоговые окна могут содержать как элементы управления, так и любые другие отображения (например, тексты).
    • Элементы управления - базовый тип для создания элементов управления и набор стандартных элементов управления (модуль Controls). Особенным качеством элементов управления в BlackBox является их прозрачная привязка к переменным программных модулей. Такие переменные называют интеракторами. Использование интеракторов: во-первых, ускоряет процесс разработки приложений; во-вторых, позволяет полностью отделить графический интерфейс от логики приложения. Программные модули ничего не знают о тех формах и элементах управления, которые с ними связаны. Связывание элементов управления с интеракторами в модулях происходит динамически (с использованием механизма метапрограммирования, при открытии составного документа (формы, и не только - можно внедрять элементы управления в текст, в соответствии с принципом BlackBox «внедряй что угодно во что угодно»). Второй особенностью элементов управления является декларативный механизм управления их состоянием (disabled, checked и т.п.), при котором для каждого элемента описывается единственная процедура «охраны» (guard procedure), однозначно задающая состояние элемента в зависимости от состояния программы. Периодический опрос и обновление показа элемента среда осуществляет автоматически.
  • Интерфейсы внешнего взаимодействия
    • Подсистема Sql - представляет собой интерфейс для доступа к реляционным базам данных. Может использовать модули-драйвера для конкретных СУБД. В поставку уже входит драйвер для работы через ODBC-интерфейс. Мощной возможностью подсистемы является: а) прямая подстановка значений переменных программы в строку запроса (подобно интерпретатору PHP); б) автоматическое отображение полей таблиц в поля записей Component Pascal - и наоборот. Эти возможности реализованы на основе механизма метапрограммирования.
    • Подсистема Ctl - включает набор интерфейсов OLE-автоматизации к различным приложениям, в частности - к Microsoft Office.
    • Подсистема Comm - включает абстракции для работы с каналами связи, как надёжными (например, TCP), так и ненадёжными (например, V.24).
    • Подсистема Win - включает в себя заголовочные файлы к основным библиотекам ОС Windows, в том числе - к библиотекам OpenGL.

Переносимость

BlackBox спроектирован как платформа разработки-выполнения, не зависящая от конкретной операционной системы. Являясь наследником операционных систем семейства Oberon (в частности, Oberon V4), среда остаётся во многих отношениях «микро-ОС». Отчуждаемые приложения могут нести с собой эту микро-ОС (в том числе компилятор) и реконфигурироваться на этапе использования (т.е. стирается граница между этапом разработки и этапом эксплуатации систем). BlackBox предоставляет унифицированную инфраструктуру для ввода-вывода, работы с СУБД и организации графического пользовательского интерфейса. Эта инфраструктура полностью нивелирует особенности нижележащей операционной системы. При этом в случае необходимости приложение может работать с ОС напрямую, как и в любой компилирующей среде разработки.

Изначально BlackBox мог выполняться на двух ОС - Windows и классической MacOS. В настоящий момент актуальным является Windows-вариант, ведётся разработка Linux-версии. Windows-версия BlackBox практически полностью совместима с эмулятором Wine начиная с версии Wine 0.9.16 (например, среду можно использовать в ASP Linux 11.2). Подробности по этому режиму использования см. в обсуждении на форуме.

Модули BlackBox имеют собственный формат (OCF), не зависящий от операционной системы. Модули содержат машинный код, поэтому привязаны к аппаратной платформе. В рамках одной аппаратной платформы те модули, которые используют только стандартную инфраструктуру BlackBox, являются переносимыми без перекомпиляции. Архитектура среды допускает расширение загрузчиками дополнительных форматов (например, из промежуточного представления).

Архитектура

FIXME

Автор*: Ермаков. И.Е. Правки: Рюмшин Б.В., Темиргалеев Е.Э.

 
Программирование
Главная
Оберон и оберон-технологии
Общие статьи
Библиотека
BlackBox
Среда
Документация
Компоненты
Статьи
Полигон
Образование
Статьи
Учебные материалы
Сообщество
Информатика-21
ООО «Метасистемы»
Европейский центр программирования
Oberon Community Platform
Королевство Делфи
© 2007, 2008, 2009 Проект "OberonCore".