Активный Оберон

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Активный Оберон
OberonLogo.png
Класс языка:

императивный, структурный, модульный, объектно-ориентированный, многопоточный

Тип исполнения:

компилируемый

Появился в:

2000

Автор(ы):

Patrik Reali, B. Meyer, Brinch Hansen, Pieter Muller, Jurg Gutknecht (Юрг Гуткнехт)

Расширение файлов:

Mod

Система типов:

статическая, сильная

Основные реализации:

ETHZ

Диалекты:

Zonnon

Испытал влияние:

Паскаль, Модула-2, Оберон, Object Oberon

Повлиял на:

Active C#[1], Go, Zonnon

Сайт:

ocp.inf.ethz.ch/wiki/Documentation/Language

Платформа:

ARM, Cell, x86, x86-64, .NET

ОС:

A2

Активный Оберон (англ. Active Oberon) — язык программирования высокого уровня, на операционной системе A2, написанной на этом же языке. Его цель — введение в язык Оберон свойств для выражения параллелизма посредством активных объектов или автономных программных агентов. Это исследовательский проект, выполняемый группой проф. Гуткнехта[de] (ETH, Цюрих). В настоящее время одним из самых активных разработчиков системы является Феликс Фридрих[en].[2]

Концепции языка[править | править вики-текст]

В нём существенно расширен синтаксис, введены конструкции для описания классических «свойств» (property) с контролем чтения/записи, числовых типов с задаваемым размером в битах. Введена поддержка «активных объектов» (active object), обменивающихся сообщениями в формате, определяемом РБНФ-описанием, обработка исключений. Добавлены объектно-ориентированные расширения: указатель на безымянные типы записей, объектные типы, связанные с типом процедуры, инициализаторы, self, делегаты, «описания» (definition). Приняты конструкторы «статических модулей» (static module).

Совместимость[править | править вики-текст]

Активный Оберон обратно совместим с языком Oberon.

Особенности[править | править вики-текст]

  • Защита от одновременного доступа при помощи модификатора EXLUSIVE более удобочитаема, если методы принадлежат одной области видимости.
  • Важное отличие продиктовано решением позволить компилятору обрабатывать опережающие ссылки (forward reference).
  • Используется оператор AWAIT, концептуально простотой и элегантный.
  • Ключевое слово SELF может быть использовано в любом методе или в любой локальной процедуре метода объекта.
  • Делегаты подобны процедурным типам; они совместимы как с процедурами так и с методами, в то время как процедурные типы совместимы только с процедурами. Делегаты процедурных типов помечаются модификатором DELEGATE.
  • Описание (DEFINITION) — это синтаксический контракт, определяющий набор сигнатур методов.
  • Ключевое слово IMPLEMENTS используется для указания описаний, реализованных объектным типом. Объектный тип может реализовать несколько описаний.
  • Связи IMPORTS и REFINES используются для описания зависимостей статических модулей.
  • Тело активного объекта помечается модификатором ACTIVE. Во время размещения объекта так же размещается новый поток выполнения, который исполняет тело параллельно.
  • В язык был добавлен 64 битный знаковый целый тип HUGEINT, платформозависимые типы ADDRESS и SIZE.
  • Нетрассируемые указатели — это указатели, которые не отслеживаются сборщиком мусора.
  • Некоторые расширения из Oberon-2 были адаптированы для Active Oberon:
    • ASSERT
    • FOR
    • экспорт только для чтения
    • динамические массивы
    • Переменные указатели автоматически инициализируются значением NIL.

Влияние Active Oberon на другие языки[править | править вики-текст]

Язык Zonnon является форком языка Active Oberon.

Ссылки[править | править вики-текст]


См. также[править | править вики-текст]

Примечания[править | править вики-текст]