Университет | ETH | Н.Вирт | Oberon Home Page | Oberon Reference Site | Juice | JOB | Аплеты
Язык программирования Оберон
Никлаус ВиртЯзык Оберон создан в 1987 году Никлаусом Виртом, профессором Института компьютерных систем Федерального технического университета (ETH, Цюрих, Швейцария), автором языков Паскаль и Модула-2.
Язык носит имя спутника планеты Уран. Фотографии и сведения о спутнике Оберон можно найти здесь, здесь и здесь.Оберон отличается от Модулы-2 отсутствием многих необязательных конструкций; добавлены же в язык средства объектно-ориентированного программирования -- расширяемые записи. Оберон -- это самый простой универсальный язык. При этом, продолжая традицию Паскаля и Модулы-2, он обеспечивает строгий контроль на этапе трансляции, способствуя созданию надежных программ.
Основные черты Оберона
- Простой и ясный синтаксис, похожий на синтаксис Паскаля (не путать с Турбо Паскалем) и Модулы-2.
- Набор структурных управляющих конструкций (IF-ELSIF-...-ELSE-END, CASE, WHILE, REPEAT, LOOP)
- Удобный и простой набор базовых типов (символы и строки, короткие и длинные целые и вещественные, логический тип, множества, процедурный тип)
- Простые и удобные правила совместимости числовых типов (SHORTINT<=INTEGER<=LONGINT<=REAL<=LONGREAL)
- Массивы (в том числе открытые и динамические), записи (расширяемые) и указатели на массивы и записи
- Полный (но не избыточный) набор средств поддержки наследования и полиморфизма: проверка и охрана (динамического) типа, региональная охрана типа
- Встроенный сборщик мусора
- Простое модульное строение со строгим (в том числе межмодульным) контролем и динамической загрузкой модулей
- Простой и строгий экспорт и импорт
- Автоматическое формирование модулей определений (интерфейсов модулей)
Ханспетер МёссенбёкОберон-2
В 1992 году были приняты расширения языка Оберон, предложенные Ханспетером Мёссенбёком. Расширенный язык получил название Оберон-2. Основное нововведение -- связанные с типами процедуры (в Object Pascal это виртуальные методы, в Си++ и Яве - методы экземпляра). Сейчас Оберон-2 является фактическим стандартом языка. Описание языка Оберон-2 на русском языке.
Дубовые требования
Летом 1993 года в лондонском пригороде Кройдоне (Croydon) в отеле "Дубовый" ("Oakwood") состоялась конференция разработчиков Оберон-компиляторов и программистов, на которой были согласованы требования к составу библиотечных модулей, сопровождающих реализации Оберона. Принятый документ известен под названием "Oakwood guidelines" ("Дубовые требования"). В подготовке этого документа с российской стороны участвовали Алексей Недоря и Андрей Кадач, ныне сотрудники новосибирской фирмы XDS.
Оберон-системы
Первоначально Оберон возник в рамках проекта создания операционной системы для однопользовательской рабочей станции Ceres. Эта ОС, также носящая имя Оберон, была написана (на Обероне) Н.Виртом и Юргом Гуткнехтом (gutknecht@inf.ethz.ch).
Впоследствии эта Оберон-система была перенесена на множество платформ: Amiga, Linux, Macintosh, Unix (DECstation, HP station, RS600, Silicon Graphics, SparcStation), PowerMac, Windows. Сейчас это семейство оригинальных Оберон-систем известно под названием Oberon V4.
Полный перечень известных Оберон-систем можно найти здесь. Как правило они доступны вместе с исходным текстом.
Другие реализации Оберона
Кроме канонической реализации Оберона в составе Оберон-системы существует более 20 компиляторов языка и конверторов Оберон => Си. Их полный список находится здесь.
Можно отметить
- BlackBox Component Builder (бывший Oberon/F) - интегрированная компонентно-ориентированная система программирования на Обероне-2, снабженная традиционным Windows-интерфейсом (Oberon V4 имеет интерфейс нетрадиционный). Содержит элементы визуального программирования. Работает на Windows 3.1/95/NT, Macintosh. Разработка Oberon Microsystems (Цюрих, Швейцария). Система коммерческая. Версия для учебных заведений бесплатная.
- XDS - семейство компиляторов с Оберона-2 и Модулы-2 (в одном флаконе) и трансляторов Оберон-2, Модула-2 => Си. Разработка новосибирской фирмы XDS. Коммерческие системы. Ограниченная демонстрационная версия бесплатна. В основе систем - оригинальный оптимизирующий (очень хорошо оптимизирующий!) 32-разрядный компилятор. Получаемый машинный код оказывается быстрее кода, создаваемого многими (может даже всеми?) известными компиляторами Паскаля, Си, Си++.
Juice-технология
Летом 1996 года профессором Калифорнийского университета в Ирвине, учеником Н.Вирта Михаэлем Францем и его аспирантом Томасом Кистлером была представлена технология распространения исполнимого кода в Интернет, названная авторами Juice (по-русски - сок). Juice основан на использовании Оберона и влючает с одной стороны инструментальную компоненту для Оберон-системы Oberon System 3, обеспечивающую компиляцию написанных на Обероне модулей в платформно-независимое представление. Второй частью Juice является дополнение (plug-in) к Интернет-браузерам, обеспечивающее компиляцию получаемого Juice-кода "на лету" в родной код, его загрузку и исполнение.
Juice превосходит Java-технологию во всем кроме величины затрат на рекламу:
- Основан на более простом и совершенном языке
- Обеспечивает существенно большую скорость исполнения аплетов
- Код Juice-аплета компактнее байт-кода Java
JOB - новый компилятор Оберона-2
JOB - это компилятор Оберона-2 в байт-код виртуальной машины Ява (JVM). Разработан С.Свердловым (Вологда, ВГПУ) Компилятор работает в Windows 95/NT. Генерирует файлы классов (.class), которые могут загружаться и исполняться виртуальной машиной языка Ява. Позволяет создавать приложения и аплеты. Содержит стандартные для Оберона (см. Дубовые требования) библиотеки а также интерфейсы для Java API.
Оберон в России
- Оберон у нас известен, как минимум, с 1990 года, когда Н.Вирт посетил СССР и свою лекцию на ВМК МГУ посвятил проекту Оберон.
- В 1991 году в Новосибирске опубликовано на русском языке сообщение о языке Оберон.
- Одну из реализаций Оберона выполнил Давид Толпин (dvd@pizza.msk.su). Его проект под названием pOt представляет собой транслятор с Оберона в Си. Основан на оригинальном компиляторе Н.Вирта для компьютера Ceres.
- Новосибирск. Фирма XDS, созданная группой участников проекта "Кронос", выпускников Новосибирского университета, развивает семейство оптимизирующих компиляторов Модулы-2 и Оберона-2 для различных платформ.
- Вологодский педагогический университет. Компилятор JOB - Оберон-2 транслируется в байт-код.
- Много пишет об Обероне Руслан Богатырев. В 1998 году СomputerWeekly вышла серия его статей, посвященных швейцарским языкам. (см. ниже).
Оберон в обучении
Оберон - идеальный язык для изучения программирования. Он прост, понятен, неизбыточен. При этом содержит необходимые и достаточные средства структурного, объектно-ориентированного и модульно-компонентного программирования. Оберон великолепно подходит и для изучения методов трансляции, и как объект и как инструмент.
Оберон используется во многих западных университетах. Особенно популярен в Щвейцарии, Австрии, Германии. В некоторых из этих университетов он является основным языком при изучении программирования. Список университетов и преподавателей, активно использующих Оберон в обучении можно найти на Oberon-странице ETH.
Оберон упоминается в темах работ, выполняемых студентами на механико-математическом факультете Новосибирского университета.
В Вологодском педагогическом университете Оберон используется на отделении прикладной математики в курсе "Языки программирования и методы трансляции" с 1996 года. В настоящее время Оберон обязателен для изучения студентами 2 курса. На Обероне (наряду с другими языками) выполняются индивидуальные задания. Одним из заданий является разработка лексического анализатора, который в некоторых вариантах заданий реализуется для Оберона.
Применяем Oberon/F (бесплатная версия для учебных заведений), предварительную версию компилятора JOB, а весной 1998 года попробовали бесплатную демо-версию XDS.
C ноября 1998 года в учебном процессе используется образовательная версия компилятора XDS.
Основу второй части курса "Языки программирования и методы трансляции" (конструирование компилятора) составляет разработка транслятора для минимального подмножества Оберона (этот язык называется "O"). Компилятор O бывает в результате записан на Паскале, Обероне, Си, а в сезоне 1997/98 был исполнен еще и на Яве и Модуле-2.
С использованием компилятора JOB были написаны на Обероне-2 аплеты: Тетрис, Бегущая строка, Морской бой, Mnemonic, Filler, Lines, Сеть, Voracity, Кубик Рубика, Тест, которые вы можете увидеть на наших страницах.
Публикации на русском языке
Здесь названы известные мне (с3с) публикации об Обероне и смежных вопросах на русском языке. Если вы знаете другие, сообщите.
- Джонсон Т., Браун Р., Содерблом Л. Спутники Урана. В мире науки. №6, 1987
- Вирт Н. Язык программирования Оберон (пересмотренное сообщение) // Системная информатика. -- Новосибирск: Наука, 1991. -- Вып. 1. -- С. 40-63.
- Кауфман В. Ш. Языки программирования. Концепции и принципы - М. Радио и связь, 1993
- Супрун А.Д. Oberon – новый продукт создателей Pascal и Modula-2. Компьютеры+Программы №5, 1994
- Орлов С. Компонентное ПО и объектная прикладная среда Oberon. Computer Week Moscow №37, 1995
- Богатырев Р. Java и Juice: дуэль технологий ?! Компьютерра №34, 1996
- Никлаус Вирт. Долой "жирные" программы. Открытые системы №6(20)/96
- Свердлов С. Оберон - воплощение мечты Никлауса Вирта. Компьютерра, №46 (173) 25 ноября 1996
- Р.Богатырев. Даст ли Oberon новый импульс развитию платформы Digital Alpha. СomputerWeekly, №40, 1997
- Свердлов С. Маленький большой язык Оберон. PC Week/RE, №35 (109) от 9/9/1997
- Михаэль Франц. Java: критическая оценка. Мир ПК №8/97
- Карло Пешио. Никлаус Вирт о культуре разработки ПО. Открытые системы №1/98
- Р.Богатырев. Гадание на кофейной гуще. Мир ПК №2/98
- M. Franz, T. Kistler. Есть ли у Java альтернативы? СomputerWeekly, №14, 1998
- Р.Богатырев Язык как основа архитектуры. Проект Lilith. СomputerWeekly, №19, 1998
- Р.Богатырев Язык как основа архитектуры. Проект "Кронос" и путь к технологиям XDS. СomputerWeekly, №20, 1998
- Р.Богатырев. Язык как основа архитектуры. Средства кроссразработки и технологии XDS. СomputerWeekly, №21, 1998
- Н. Вирт. От Модулы к Оберону. Перевод Р.Богатырева
- Н. Вирт. Проектирование системы с нуля. Перевод Р.Богатырева
- Н. Вирт. Modula-2 и объектно-ориентированное программирование. Перевод Р.Богатырева
- Х. Мёссенбёк, Н. Вирт. Различия между языками Оберон и Оберон-2. Перевод Р.Богатырева
- Ю. Гуткнехт. Oberon в системе образования. Перевод Р.Богатырева
- Ю. Гуткнехт. Oberon: перспективы эволюции. Перевод Р.Богатырева
- Х. Мёссенбёк. Плюсы и минусы объектно-ориентированного программирования.
Перевод Р.Богатырева- М. Франц. Динамическая кодогенерация: ключ к переносимому программному обеспечению. Перевод Р.Богатырева
- Н.Вирт От разработки языков программирования к конструированию компьютеров. Выступление при получении премии Тьюринга. Микропроцессорные средства и системы, Москва, 1989, №4
Источники
- Оберон-страница ETH (Oberon Home Page) - первоисточник всех сведений, относящихся к Оберону.
- Описание языков Оберон и Оберон-2
- N.Wirth. The Programming Language Oberon. Описание языка Оберон (не Оберон-2) в текстовом формате Oberon V4. Файл такого формате может быть загружен также в BlackBox Component Builder (Oberon/F). Может также быть легко прочитан как обычный ASCII после удаления заголовка. Файл сжат Unix-утилитой tar. Ее вариант для MS DOS можно взять здесь (zip ~180К)
- Синтаксис языка Оберон. (1 страница формул РБНФ в формате V4 Text)
- H.Moessnboeck, N.Wirth The Programming Language Oberon-2. Официальное языка Оберон-2 на сервере ETH в текстовом формате Oberon V4.
- Х. Мёссенбёк, Н.Вирт. Язык программирования Оберон-2. Перевод с английского. Формат HTML (~90К на нашем сервере). То же самое на сайте Гая Ладена (Тель-Авивский университет)
- Oberon Reference Site - обширный и, наверное, полный сборник ссылок на все, что относится к Оберону. Поддерживается системным администратором математического факультета Тель-Авивского университета Гаем Ладеном (Guy Laden guy@math.tau.ac.il).
- Oberon Web Ring - кольцевой список сайтов Интернет, посвященных Оберону. В кольцо среди прочих входят Oberon Home Page ETH, Oberon Reference Site Гая Ладена, сайт Гейдельбергского университета (Германия), Университет штата Калифорния (США), Университет Линца (Австрия) и наш сайт.
- comp.lang.oberon - группа новостей Usenet, посвященная, как можно догадаться, Оберону.
The Oberon Webring Navigator
По-русски только у нас
Через предыдущий | Предыдущий | Следующий | Через следующий | Наугад | 5 следующих
Список | ПрисоединитьсяУниверситет | ETH | Н.Вирт | Oberon Home Page | Oberon Reference Site | Juice | JOB | Аплеты
Июль 1999г.