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

Наука Школе

Что такое Оберон (Oberon)

Когда говорят об Обероне, то может иметься в виду:

  1. язык программирования;
  2. операционная среда;
  3. семейство близкородственных языков/систем программирования.

Как язык программирования, Оберон является прямым наследником Паскаля и Модулы-2 (об истории Оберона см. здесь). Удивительно, но факт: он одновременно и проще, и намного мощнее, чем Паскаль и Модула.

В первоначальном ("классическом") Обероне (Н.Вирт, 1988) есть основной механизм объектно-ориентированного программирования механизм расширения типов (наследование и полиморфизм).
В экспериментальном Обероне-2 (Вирт, Мессенбек, 1992) добавлены "методы" — процедуры, связанные с типом. В типах-потомках методы типа-предка могут переопределяться (с сохранением сигнатуры).
В Компонентном Паскале (Oberon microsystems, 1999) введен ряд уточнений по сравнению с Обероном-2, важных для повышения надежности больших программных комплексов; в частности, теперь язык полностью поддерживает методологию компонентно-ориентированного программирования. Благодаря последнему обстоятельству, Компонентный Паскаль на данный момент является, по-видимому, наиболее совершенным вариантом Оберонов.

В Oberon-07 Н.Вирт уточнил «классический» Оберон, модернизировав систему базовых типов, включив цикл Дейкстры и т.п.

Есть и группа экспериментальных языков, близкородственных Оберону, но отклоняющихся дальше от линии Оберон/Оберон-2/Компонентный Паскаль. Это Active Oberon и Zonnon. Их развивают в группе сподвижника Н.Вирта по проектам Модула-2 и Оберон Юрга Гуткнехта. Основное направление исследований здесь — механизмы параллельного выполнения программ (concurrency), значение которых возрастает в связи с нарастающей популярностью компьютерных кластеров и многоядерных процессоров.

Есть еще Оберон-0, Оберон-X, Oberon.NET ... и этот список не полон. Дело в том, что простота Оберона и наличие исходников оригинального Оберона позволяет легко адаптировать его для специальных классов задач. Но все эти Обероны очень близки между собой, поскольку и первоначальный Оберон очень прост.

Наиболее зрелыми, видимо, следует считать "классический Оберон" — ETH Oberon, реализации которого имеются для многих платформ, и Компонентный Паскаль, собравший достаточно серьезное международное сообщество пользователей (см. http://www.zinnamturm.eu).

Есть несколько систем разработки программ для различных вариантов языка Оберон: ETH Oberon, доступная для многих вычислительных платформ; оптимизирующий компилятор XDS для Oberon-2; Блэкбокс (BlackBox Component Builder) для Компонентного Паскаля.

Программы, написанные на языке программирования Оберон требуют определенной поддержки во время выполнения (динамический загрузчик для индивидуальной загрузки модулей во время выполнения программы и централизованно выполняемый автоматический сбор мусора). Поэтому, вообще говоря, одного компилятора здесь недостаточно — нужна специальная операционная среда. На самом деле такой операционной среде не обязательно нужна отдельная операционная система: она сама по себе может представлять собой операционную систему. Таковы системы Native Oberon для первоначального Оберона и Bluebottle для Active Oberon. В качестве операционной среды может выступать, например, платформа .NET компании Microsoft, в которой реализовано автоматическое управление памятью (сбор мусора). Под .NET работают Oberon.NET и Zonnon, но эти проекты еще не достигли необходимой степени зрелости, чтобы рекомендовать их в качестве рабочих инструментов.


Простота Оберонов проявляется в следующих характеристиках:
   (1) в малом объеме описаний этих языков, обычно в районе 20 стр.;
   (2) в быстроте и компактности компилятора (компилятор первоначального Оберона имел размер около 40К; вообще компиляторы Оберонов более чем на порядок превосходят по быстродействию компиляторы С++).

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

Именно благодаря этому Обероны нашли первые промышленные применения при создании встроенных управляющих систем, где ресурсы жестко ограничены (например, полетным весом беспилотного летательного аппарата), а требования на надежность очень высоки (стоимость необнаруженного до полетных испытаний программного дефекта даже в малом беспилотнике — несколько тысяч у.е., поскольку такой дефект как правило означает потерю аппарата; максимальная известная стоимость одной программной ошибки — полмиллиарда у.е., это стоимость потерпевшей катастрофу на взлете европейской космической ракеты Ариан-5 в 1996 г.).

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

Наука Школе