Язык программирования Оберон-2

От переводчика



От переводчика

Язык программирования Оберон создан автором Паскаля и Модулы-2 Никлаусом Виртом в 1987 году в ходе разработки одноименной операционной системы для однопользовательской рабочей станции Ceres. Язык и операционная система названы именем одного из спутников планеты Уран - Оберона, открытого английским астрономом Уильямом Гершелем ровно за двести лет до описываемых событий.
"Сделай так просто, как возможно, но не проще того" - это высказывание А.Эйнштейна Вирт выбрал эпиграфом к описанию языка. Удивительно простой и даже аскетичный Оберон является, вероятно, минимальным универсальным языком высокого уровня. Он проще Паскаля и Модулы-2 и в то же время обогащает их рядом новых возможностей. Важно то, что автором языка руководили не сиюминутные коммерческие и конъюнктурные соображения, а глубокий анализ реальных программистских потребностей и стремление удовлетворить их простым, понятным, эффективным и безопасным образом, не вводя по возможности новых понятий.
     Являясь объектно-ориентированным языком, Оберон даже не содержит слова object. Оберон представляется идеальным языком для изучения программирования. Сочетание простоты, строгости и неизбыточности предоставляет начинающему программисту великолепную возможность, не заблудившись в дебрях, выработать хороший стиль, освоив при этом и структурное и объектно-ориентированное и модульно-компонентное программирование.
     В 1992 году сотрудничество Н.Вирта с привело к добавлению в язык ряда новых средств. Новая версия получила название Оберон-2. Описание именно этого языка по состоянию на 1 октября 1996 года (последние изменения внесены авторами в июле 1996 года) и дается в настоящем переводе. Оберон-2 представляет собой почти правильное расширение Оберона и является фактическим стандартом языка, который поддерживается большинством современных Оберон-систем. В Оберон-2 добавлены:

  • связанные с типом процедуры;
  • экспорт только для чтения;
  • открытые массивы в качестве базового типа для указателей;
  • оператор with с вариантами;
  • оператор for.

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



    (direct) base type (непосредственный) базовый тип
    array compatible совместимый массив
    array type тип массив
    assignment compatible     совместимый по присваиванию
    basic type основной тип
    browser смотритель
    case statement оператор case
    character символ, знак
    declaration объявление
    designator обозначение
    direct extension непосредственное расширение
    equal types равные типы
    exit statement оператор выхода
    expression compatible совместимое выражение
    for statement оператор for
    function procedure процедура-функция
    if statement оператор if
    loop statement оператор loop
    matching совпадение
    operator операция
    pointer type тип указатель
    predeclared стандартный
    private field скрытое поле
    proper procedure собственно процедура
    public field доступное поле
    qualified уточненный
    real вещественный
    record type тип запись
    repeat statement оператор repeat
    return statement оператор возврата
    same type одинаковый тип
    scale factor порядок
    scope область действия
    statement оператор
    string строка
    symbol слово
    type extension расширение типа
    type guard охрана типа
    type inclusion поглощение типа
    type tag тег
    type test проверка типа
    type-bound procedures связанные с типом процедуры
    while statement оператор while
    with statement оператор with

    с3с@uni-vologda.ac.ru
    2 октября 1996 г. - 12 июня 1998 г.
    Вологда


    Содержание раздела