Оберон (язык программирования)
Когда говорят об Обероне, то может иметься в виду:
- язык программирования;
- операционная среда;
- семейство близкородственных языков/систем программирования.
Как язык программирования, Оберон является прямым наследником Паскаля и Модулы-2. Удивительно, но факт: он одновременно и проще, и намного мощнее, чем Паскаль и Модула.
- Проще — благодаря исключению ряда средств, полезность которых на практике оказалась маргинальной или сомнительной (например, перечислимые типы и типы-диапазоны; в случае Модулы это ещё и вложенные модули, а также отдельные модули-определения).
- Намного мощнее — благодаря введению механизма автоматического управления памятью, ради полноценной интеграции которого в язык пришлось исключить/модифицировать некоторые языковые средства (например, вместо вариантных записей теперь следует использовать типы-потомки, произведенные от одного предка).
В первоначальном Обероне (1988) есть основной механизм объектно-ориентированного программирования — механизм расширения типов (наследование и полиморфизм).
В Обероне-2 (Вирт, Мессенбек, 1992) добавлены «методы» — процедуры, связанные с типом. В типах-потомках методы типа-предка могут переопределяться (с сохранением сигнатуры).
В Компонентном Паскале (Oberon microsystems, 1999) введен ряд уточнений по сравнению с Обероном-2, важных для повышения надежности больших программных комплексов; в частности, теперь язык полностью поддерживает методологию компонентно-ориентированного программирования. Благодаря последнему обстоятельству, Компонентный Паскаль на данный момент является, по-видимому, наиболее совершенным вариантом «классических» Оберонов.
Есть и группа экспериментальных языков, близкородственных Оберону, но отклоняющихся дальше от линии Оберон/Оберон-2/Компонентный Паскаль. Это Active Oberon и Zonnon. Их развивают в группе сподвижника Никлауса Вирта по проектам Модула-2 и Оберон Юрга Гуткнехта.
Есть ещё Оберон-0, Оберон-X, Oberon.NET … и этот список не полон. Дело в том, что простота Оберона и наличие исходников оригинального Оберона позволяет легко адаптировать его для специальных классов задач. Но все эти Обероны очень близки между собой, поскольку и первоначальный Оберон очень прост.
Наиболее зрелыми, видимо, следует считать ETH Oberon, реализации которого имеются для многих платформ, и Компонентный Паскаль.
Есть несколько систем разработки программ для различных вариантов языка Оберон: ETH Oberon, доступная для многих вычислительных платформ; оптимизирующий компилятор XDS для Oberon-2; Блэкбокс (BlackBox Component Builder) для Компонентного Паскаля.
Программы, написанные на языке программирования Оберон требуют определенной поддержки во время выполнения (динамический загрузчик и централизованно выполняемый автоматический сбор мусора). Поэтому, вообще говоря, одного компилятора здесь недостаточно — нужна специальная операционная среда. На самом деле такой операционной среде не обязательно нужна отдельная операционная система: она сама по себе может представлять собой операционную систему. Таковы системы Native Oberon для первоначального Оберона и Bluebottle для Active Oberon. В качестве операционной среды может выступать, например, платформа .NET компании Майкрософт, в которой реализовано автоматическое управление памятью (сбор мусора). Под .NET работают Oberon.NET и Zonnon, но эти проекты ещё не достигли необходимой степени зрелости, чтобы рекомендовать их в качестве рабочих инструментов.
Существует аналог Оберона — Глагол, который, в отличие от Оберона, изначально ориентирован на русский язык и использует русскоязычные управляющие слова.
Ссылки
- Оберон (краткая справка)
- Российский образовательный проект, отданный языку Оберон
- Портал, посвящённый языку Оберон
- Первый (1998) сайт на русском языке по Оберону
- Компонентный Паскаль и среда BlackBox
- Глагол — русский Оберон
Используемые в разработке: ABAP/4 | Ада | Ассемблеры | Awk | BASIC | Си | КОБОЛ | C++ | C# | ColdFusion | D | Delphi | Forth | FoxPro | DataFlex | Фортран | Java | JavaScript | J++ | J# | Icon | Limbo | Лисп | Lua | Objective-C | Оберон | Oz | Паскаль | Perl | PHP | PL/I | Пролог | Руби | Python | Tcl | Smalltalk | SQL | Visual DataFlex | Visual Basic | VB.NET
|