Интернет магазин китайских планшетных компьютеров



Компьютеры - Оберон (язык программирования) - Влияние Оберона на другие языки

30 марта 2011


Оглавление:
1. Оберон (язык программирования)
2. История языка
3. Концепции программирования
4. Влияние Оберона на другие языки
5. Языки семейства Oberon
6. Интересные факты



По утверждению Вирта, разработчики языка Java за несколько лет до её создания «изучили исходные коды Оберона и, в частности, исходные коды обероновских сборщиков мусора. Потом они испортили Оберон синтаксисом Си и назвали получившееся словом Java». Хотя от устного выступления нельзя требовать абсолютной точности формулировок, но во всяком случае несомненное сходство идеологий Оберона и Java говорит о том, что здесь имеет место определённый консенсус относительно того, какие средства должны составлять ядро современного языка программирования общего назначения. Очевидно и то, что из двух языков Оберон спроектирован гораздо тщательнее.

В само семейство языков Оберон входят также Оберон-07, Оберон-2, Component Pascal, Active Oberon, OberonScript и др.

Версии языка

Исходная версия Oberon — наиболее краткая, с наименьшим количеством ключевых слов и синтаксических конструкций. Она была использована в качестве базы для создания семейства языков, каждый из которых расширяет классический в каком-либо направлении либо отличается от него некоторыми деталями.

Oberon-2

В 1992 году Никлаус Вирт и его ученик Ханспетер Мёссенбёк — ныне профессор Университета им. Иоганна Кеплера в Линце — опубликовали описание дополненного варианта Оберона, получившего название Оберон-2. Он представляет собой уточнённую версию классического Оберона. Дополнения, внесённые в Оберон-2 и оформленные очень экономно, заключаются в следующем:

  • добавлены процедуры, связанные с типом, допускающие переопределение для порождённых типов;
  • в язык возвращён оператор цикла с шагом FOR;
  • добавлена возможность экспорта описаний в режиме «только для чтения».

Любопытно, что несмотря на расширение языка, объём формального описания синтаксиса Оберона-2 меньше, чем у классического Оберона. Это произошло в результате оптимизации описания синтаксиса. Существует оптимизирующий компилятор XDS для Oberon-2;

Есть также компилятор языка Оберон-2 в байт-код виртуальной машины Java. Разработанный С.Свердловым в 1998 году компилятор работает в Windows 95/NT. Генерирует файлы классов, которые могут загружаться и исполняться виртуальной машиной языка Java. Позволяет создавать приложения и аплеты. Содержит стандартные для Оберона, так называемые Дубовые требования библиотеки а также интерфейсы для Java API.

ETH Oberon

ETH Oberon, реализации которого имеются для многих вычислительных платформ.

Oberon SA и Oberon-07

Oberon SA — это версия языка Oberon, разработанная Н.Виртом для процессора Strong-ARM, используемого в беспилотном вертолете.

На основе опыта разработки Oberon SA Н.Вирт в 2007 году подготовил изменения и дополнения к классическому Оберону для более строгой поддержки структурного программирования, чем, например, в Oberon-2 или Компонентном Паскале. Новая версия языка получила название Oberon-07. Имеется перевод "The Programming Language Oberon, Revision 1.11.2008" на русский язык . Но в отношении поддержки объектно-ориентированного программирования язык Oberon-07 не следует за Обероном-2, а продолжает минималистичную линию классического Оберона, включая отсутствие поддержки процедур, привязанных к типам записей.

Oberon-07 имеет следующие основные отличия от классического Оберона:

  • в цикле WHILE разрешены несколько охраняемых ветвей. Тем самым обеспечена полная явная поддержка цикла Дейкстры. Ранее цикл Дейкстры моделировался при помощи цикла LOOP;
  • соответственно, исключен неструктурированный цикл LOOP вместе с оператором EXIT;
  • в процедуре теперь может быть только одна точка выхода, фиксированная в конце тела процедуры: RETURN, в сущности, перестал быть оператором, превратившись в такую же синтаксическую часть описания процедуры, как ключевое слово PROCEDURE и т.д.;
  • добавлен оператор цикла FOR;
  • исключено неявное приведение типа INTEGER к REAL и типов с различной разрядностью друг к другу;
  • разрешены ссылки только на записи;
  • уточнено правило импорта/экспорта: экспорт переменных разрешён только для чтения, спецификатор экспорта один — «*»;
  • уточнены типы данных — CHAR поддерживает множество Latin-1, INTEGER — −2^31 — +2^31-1, REAL и LONGREAL — IEEE Standard, 32 и 64 бита соответственно, SET — множество целых между 0 и 31.

Австралийская компания CFB Software при Университете штата Квинсленд разработала IDE Astrobe для языка Oberon-07 для микроконтроллеров ARM7 компании NXP и синтаксические диаграммы языка Oberon-07, а также рекомендации по стилю программ на Oberon-07 .

Глагол

В России был разработан язык Глагол, структурно очень близкий к Оберону-2. Главное его отличие состоит в использовании русских служебных слов. Помимо этого, язык имеет ещё ряд отличий от Оберона-2:

  • удалены методы;
  • не используются псевдонимы в объявлениях импорта модулей;
  • добавлена условная компиляция исходных текстов;
  • добавлена возможность непосредственно указывать путь к используемым модулям;
  • добавлена специальная пометка для главного модуля программы;
  • добавлен встроенный тип-итератор для ускорения последовательного доступа к массиву.
  • изменены метки экспорта для переменных, констант и процедур, а также способ указания параметров-переменных;
  • изменён синтаксис оператора WITH;
  • запрещена передача через параметры процедур массивов и записей;
  • изменены размеры некоторых типов данных;
  • изменён набор встроенных процедур и состав системных модулей;

Язык поддерживает юникод. Реализован компилятор для платформ Windows и PocketPC, а также среда разработки.



Просмотров: 5535


<<< Миранда (язык программирования)
Оккам (язык программирования) >>>