Студопедия

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

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

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






Глава 2. Характеристика языка






Оберон

Описание Оберона было опубликовано Виртом в 1988 году. Больше всего язык похож на своего непосредственного предшественника — Модулу-2. Н. Вирт подчеркивает, что Оберон получен изъятием из Модулы многого и добавлением лишь некоторых усовершенствований. Из Модулы-2 удалены:

· записи с вариантами;

· непрозрачный (скрытый) экспорт типов;

· перечислимые типы;

· ограниченные типы (диапазоны);

· множества общего вида. Оставлены только множества из ограниченного диапазона целых, которые являются лишь высокоуровневым средством манипулирования битами;

· тип cardinal;

· указатели не на записи и массивы;

· массивы с нецелочисленными индексами и отличной от нуля нижней границей;

· локальные модули;

· не уточненный именем модуля импорт идентификаторов;

· модули определений, главный модуль и понятие главной программы;

· прежняя форма оператора with;

· оператор FOR;

· типы address и word (заменены типом byte) и адресная арифметика;

· преобразование типов, обозначаемое идентификатором типа;

· средства параллельного программирования.

Новые возможности, появившиеся в Обероне:

· средства объектно-ориентированного программирования: расширение типов, проверка и охрана типа;

· поглощение типов. Переход к тридцатидвухразрядным архитектурам определяет большое разнообразие типов числовых данных, что сделало неудобным практически полный запрет Модулы-2 на присваивание неодинаковых типов. Числовые типы Оберона образуют иерархию: shortint < = integer < = longint < = real < = longreal. В этой цепочке значения «меньшего» типа могут быть присвоены переменным «большего» типа;

· многомерные открытые массивы;

· сборщик мусора.

На первый взгляд может показаться, что упрощения чрезмерны. Чего только стоит устранение цикла FOR. Но по некотором размышлении в этом можно увидеть пользу. Например, при освоении программирования одним из трудных моментов является приобретение навыков применения циклов с пред- и постусловием. А когда цикла FOR, а тем более GOTO нет, волей-неволей научишься применять WHILE, REPEAT и LOOP!

Аскетизм Оберона является его исключительно полезной чертой, особенно если язык используется для обучения программированию. Сочетание простоты, строгости и неизбыточности предоставляет начинающему программисту великолепную возможность, не заблудившись в дебрях, выработать хороший стиль, освоив при этом и структурное, и объектно-ориентированное, и модульно-компонентное программирование.

Усовершенствована по сравнению с Модулой-2 структура программы. Вернее, понятия программы как таковой в Обероне вообще нет. Все, с чем вы имеете дело, то совокупность модулей-компонентов, которые загружаются в память динамически. Инициировать выполнение можно вызовом команды, в качестве которой рассматривается любая экспортированная процедура без параметров. Экспорт Обероне оформляется исключительно изящно. Достаточно после имени экспортируемого объекта (процедуры, константы, переменной, типа) поставить звездочку (*). При этом программисту не нужно вручную выписывать спецификацию модуля, рискуя внести несоответствие между спецификацией и реализацией. Перечень экспортированного — интерфейс модуля — создается автоматически.

Объектно-ориентированным языком делают Оберон средства расширения типов. При конструировании объектной модели языка Вирт уделил первоочередное внимание не внесению в язык модной терминологии, а поддержке реальных программистских потребностей. Слова object в Обероне вообще нет; объект — это просто расширяемая запись. Предусмотрены адекватные механизмы, позволяющие оперировать динамическими объектами, используя легальные и безопасные средства. В Обероне такими средствами являются проверка и охрана типа. Указатели и параметры-переменные типа запись могут иметь как статический (определенный при описании), так и динамический тип (соответствующий типу того объекта, на который в данный момент фактически ссылается указатель). Проверка типа позволяет узнать динамический тип объекта, а охрана — обратиться к фактически имеющимся полям, имея твердую гарантию их существования.

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

Важнейшее свойство языка — обозримость. Даже после первого знакомства с его описанием, объем которого составляет всего около 20 страниц, у опытного программиста создается ощущение неплохого знания языка. Оберон, в отличие от таких языков как ПЛ/1, Алгол-68, Си++, Объектный Паскаль, Ява или Си# нетрудно знать в совершенстве и целиком. Такое свойство языка невозможно переоценить.






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