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



Компьютеры - Zonnon - Особенности

01 мая 2011


Оглавление:
1. Zonnon
2. Особенности
3. Пример программы
4. Достоинства и недостатки
5. Реализации



Язык регистро-зависимый — разница в регистре букв в идентификаторах приводит к их различию. Cделан оригинальный ход — ключевые слова являются зарезервированными при написании либо всех букв в верхнем, либо всех букв в нижнем регистре. То есть accept и ACCEPT — ключевые слова, а вот AcCePt — просто допустимый идентификатор.

В языке 51 ключевое слово:
accept | activity | array | as | await | begin | by | case | const | definition | div | do | else | elsif | end | exception | exit | false | for | if | implementation | implements | import | in | is | launch | loop | mod | module | new | nil | object | of | on | operator | or | procedure | receive | record | refines | repeat | return | self | send | then | to | true | type | until | var | while

Из особенностей можно отметить использование знака # в качестве символа операции «не равно», а также наличие операции ** — «возведение в степень», — возвращённой в строй после многолетнего забвения из языка Фортран.

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

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

Общая структура программы, модулей, разделение модуля на модуль определений и модуль реализации, правила записи синтаксических конструкций заимствованы из Модулы-2 практически без изменений. Поддерживается «длинная» конструкция условного оператора IF-THEN-ELSIF-ELSE-END, все типы циклов, имеющиеся в Модуле: REPEAT-UNTIL, WHILE, FOR, LOOP, конструкция выбора CASE. Из Паскаля возвращены в язык стандартные примитивные операции ввода-вывода Write, WriteLn, Read, ReadLn.

Дополнительно в язык внесены:

  • Средства ООП: объявление классов, методы, спецификаторы видимости для полей и методов private и public, отдельное описание ООП-интерфейсов и возможность явного указания реализации интерфейсов классом.
  • Свойства — псевдополя классов с полностью контролируемым доступом.
  • Индексаторы — возможность описания классов, экземпляры которых внешне ведут себя как массивы.
  • Средства обработки исключений.
  • Переопределение существующих операторов и объявление новых.
  • Средства параллельного программирования: языковыми средствами могут быть созданы параллельно исполняющиеся фрагменты программы, взаимодействие которых происходит через протоколы — специфический тип данных, задаваемый с помощью модифицированного РБНФ-описания формат сообщения, которое будет передаваться.

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



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


<<< Void
Адресный язык программирования >>>