FAQ

Вопросы и замечания по статьям раздела обсуждаются в одноимённых ветках форума.

FIXME Раздел находится в стадии формирования. Вы можете помочь, предложив на форуме темы и вопросы.

Дополнительно можно поглядеть:

Ниже — очень старый (и недоработанный) вариант FAQ.

BlackBox Component Builder

Общие вопросы

Что такое BlackBox?

Среда BlackBox — весьма удачный и наиболее популярный вариант Оберона, реализующий язык программирования Компонентный Паскаль. Её полное название — BlackBox Component Builder.

Авторы BlackBox — небольшая группа учеников Никлауса Вирта, объединившаяся в компанию Oberon microsystems Inc. (Цюрих, Швейцария). Один из них — Клеменс Шиперский (Clemens Szyperski) — является ведущим авторитетом актуальной методологии компонентно-ориентированного программирования (книга «Component Software. Beyond Object-Oriented Programming»), в настоящее время — сотрудник стратегического исследовательского подразделения Microsoft.

BlackBox представляет собой полноценную операционную среду, «погруженную» в другие операционные системы и допускающую взаимодействие с ними. В настоящее время полная версия BlackBox работает под Windows.

Благодаря сочетанию эффективности, автоматического управления памятью и легкости создания специальной интерактивной графики, BlackBox оказался весьма привлекательным для сложных научных расчетов синтетического характера («умные» численные алгоритмы, символическая алгебра большого объема, системы обработки данных и моделирования). Например, на BlackBox создано ПО для расчета бортовых фазированных решеток истребителя Eurofighter (полный объем ПО — около миллиона строк). На BlackBox сделана система управления крупнейшего каскада ГЭС на Амазонке (корпорация Alstom Power), а также целый ряд других приложений, в т.ч. для экспериментальной и теоретической ядерной физики. По заказу корпорации Borland компания Oberon Microsystems выполнила разработку JIT-компилятора для Borland JBuilder.

В 1998 г. BlackBox был удостоен премии журнала «BYTE» за высокое качество технических решений («Technical Excellence Award»).

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

Среда позиционируется в России в качестве единой платформы для базового преподавания программирования в старших классах школ и на младших курсах ВУЗов, успешно используется в ряде учебных заведений России и СНГ. Формированию единой системы обучения программированию с использованием Оберон-систем посвящен Международный научно-образовательный проект Информатика-21.

Почему нет пошагового отладчика?

Почему нет подсветки синтаксиса?

Синтаксис большинства языков Oberon-семейства (как и языка Модула-2) требует написания ключевых слов заглавными буквами. Это избавляет от необходимости применять специальную подсветку синтаксиса, повышает лёгкость восприятия исходных текстов даже при просмотре из обычного текстового редактора (хотя сначала может показаться непривычным и неудобным).

Многие Оберон-среды (такие, как BlackBox) используют для хранения исходных текстов составные документы и позволяют использовать произвольное шрифтовое, цветовое или стилевое оформление для произвольных фрагментов исходного текста — на усмотрение программиста. Это позволяет целенаправленно использовать эти средства для смыслового выделения нужных мест (например, изменившихся фрагментов, требующих тестирования, несущих особую смысловую нагрузку и т.п.)

http://forum.oberoncore.ru/viewtopic.php?f=1&t=1189
http://www.astrobe.com/forum/viewtopic.php?f=4&t=41

Зачем нужна сборка мусора?

Сборка мусора (автоматическое управление памятью) является обязательным для языков компонентного программирования. Компонентная система состоит из многих модулей, разработанных в разное время различными поставщиками. Эти модули работают в общем пространстве памяти и свободно обмениваются сложными динамическими структурами объектов. В таких программных системах ни один из компонентов не может знать, когда динамический объект можно удалить. Это может определить только диспетчер памяти, выяснив, что на объект больше не осталось указателей нигде в системе.

Подробный формальный анализ проблемы управления памятью можно найти в статье энциклопедии Безопасное управление памятью.

BlackBox или Free Pascal?

Есть ли версия под Linux?

См. сборки

Как это работает

Как, разве BlackBox — не интерпретатор?

На чём написан BlackBox?

Среда BlackBox написана целиком на языке Компонентный паскаль, начиная с самого низкого уровня (ядро, подсистема времени выполнения, компилятор). Для компиляции и сборки BlackBox-а используется сам BlackBox (см. в среде документацию модуля DevLinker, Как создать программу *.exe).

Такой способ создания инструментария называется методом раскрутки и является традиционным для языков Паскаль- и Оберон-семейства. Метод раскрутки демонстрирует самодостаточность и эффективность этих языков для задач системного программирования, кроме того, даёт важное преимущество — когда компилятор и среда разработки пишутся на самом целевом языке, с самого начала становятся видны его слабые места, которые могут быть тут же скорректированы.

Почему исходники хранятся в бинарном формате?

Работа с BlackBox

Log и StdLog

Несколько раз возникал вопрос, какой модуль нужно использовать для вывода сообщений - Log или StdLog. Вопрос связан с тем, что в самом BlackBox используется StdLog, а участники форума зачастую пользуют Log. Это связано с тем, что модуль Log появился только в версии 1.4 среды, и переделать все модули под его использование не успели. К тому же для функционирования среды большой разницы нет.

Теоретически правильнее использовать Log, потому как это интерфейсный модуль, а StdLog является для него модулем реализации. На практике же есть несколько нюансов. Во-первых, в модуле Log отсутсвует процедура для вывода чисел типа LONGINT. Во-вторых, StdLog предоставляет доступ к своему внутреннему буферу, что позволяет повысить скорость работы при большом количестве выводимых даннных. С другой стороны, StdLog требует подсистемы Text и графической части каркаса. Поэтому, если разрабатываемый модуль может использоваться и в консольном или сетевом варианте, предпочтительно использовать Log.

Какие команды запускает коммандер?

Чтобы коммандер запустил команду, необходимо, чтобы та соответствовала нотации. Нотацию и разрешённые списки параметров можно найти в документации к модулю StdInterpreter. От версии к версии эти списки могут меняться.

В случае, когда коммандер обнаруживает ошибку в оформлении команды, выдаётся сообщение «incompatible parameter list».

Как создать программу *.exe?

Метапрограммирование

Как работать с базами данных

Oberon и Component Pascal

Что такое Oberon?

См. Оберон

Что такое Component Pascal?

Почему убрали типы перечисления и интервала

Почему нет обработки исключений

Почему нет побитовых операций

См. Wirth N. SET: A neglected data type, and its compilation for the ARM / Вирт Н. SET: Недооцениваемый тип данных и его компиляция для ARM

Побитовые операции над целыми числами недопустимы с точки зрения концепции этих чисел. Но целое можно с помощью предопределённой процедуры BITS(x) преобразовать к типу SET. Операции над множествами:

Операция Описание
-(унарный) дополнение
+ объединение
- разность
* пересечение
/ симметриеская разность
= равенство
# неравенство

Предопределённая процедура ORD(x) преобразует значение типа SET в INTEGER.

Операции BITS и ORD выполняютя на этапе компиляции, и во время работы программы ресурсов не потребляют.

http://forum.oberoncore.ru/viewtopic.php?f=29&t=1355

Особенность цикла FOR

Сравнение с другими языками

FAQ на Информатике-21

См. http://www.inr.ac.ru/~info21/qna.htm

  • В Оксфорде первым языком программирования берут функциональный язык Haskell, а Оберон ставят лишь вторым. Почему?
  • Можно ли из Блэкбокса обращаться к средствам операционной системы?
  • Можно ли считать Оберон лучшим и единственным преемником Pascal в сфере образования?
  • Кто использует Обероны в преподавании?
  • Можно ли вызывать из Блэкбокса программы из других языков?

Авторы*: Рюмшин Б.В., PGR, Ермаков. И.Е., Ильин А.С., Горячев И.Н., Губанов С.Ю.

© 2005-2016 OberonCore и коллектив авторов.