Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Оберон-2






Вирт взял эпиграфом к описанию Оберона высказывание А. Эйнштейна: «Make it as simple as possible, but not simpler» (делай как можно проще, но не проще чем нужно). Почти сразу после появления языка возникли предложения по его «улучшению». И конечно же, все они сводились к расширениям языка. В 1991 году ученик Н. Вирта Ханспетер Мёссенбёк (Hanspeter Mossenbock) опубликовал в ЕТН сообщение о языке Оберон-2. Поводом к «усовершенствованиям» Оберона служило отсутствие в языке того, что принято называть виртуальными методами.

В языке Вирта индивидуальное поведение объектов можно обеспечить, используя в записях поля процедурного типа. Преимущество этого подхода — отказ от включения в язык еще одного механизма, в значительной степени дублирующего уже имеющиеся возможности, но усложняющего и язык, и компилятор. Но все же Вирт принял такое усовершенствование и поставил свое имя на описании расширенного Оберона, за которым закрепилось название Оберон-2. Эпиграфа Эйнштейна на этом документе уже нет. Авторами описания языка Оберон-2 являются X. Мёссенбёк и Н. Вирт. Оберон-2 считается фактическим стандартом языка. В дальнейшем, если это не оговорено особо, я буду под названием Оберон понимать именно Оберон-2.

Основным нововведением Оберона-2 являются связанные с типом процедуры (аналог виртуальных методов в Объектном Паскале и виртуальных функций 124 Языки и эволюция технологий программирования в Си++). Авторы Оберона-2 не стали вводить новых терминов, а обошлись уже имеющимися. Весьма остроумно выстроен синтаксис описаний связанных процедур. Не потребовалось никаких новых служебных слов, а формальный параметра-приемник, обозначающий экземпляр объекта внутри такой процедуры, описывается явно. Описания связанных процедур располагаются отдельно от описания типа запись, с которым они связаны. Связь же устанавливается по типу параметра-приемника.

Кроме связанных процедур в язык внесены еще некоторые усовершенствования. Предусмотрен экспорт только для чтения. Если после имени в описании переменной или поля записи поставить знак «-» вместо «*», то это имя экспортируется, но соответствующая переменная или поле не могут быть изменены вне экспортирующего их модуля.

Другие изменения — расширение применения открытых массивов, которые теперь могут использоваться не только как формальные параметры, но и в качестве базового типа указателей; расширение оператора with и, наконец,... возвращение в язык оператора for!






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.