Образование языков
Вложенные
классы, их свойства, а также свойства
контейнера-класса могут иметь синонимы.
Область видимости синонимов ограничена
контейнером. Одно и тоже полиморфное свойство
может иметь различные синонимы как в рамках
одного объекта, так и у различных объектов.
Все синонимы должны быть уникальны в пределах
одного объекта. Аналогично, синонимы всех
вложенных объектов должны быть уникальны
внутри контейнера. Синонимы не могут пересекаться
с естественными названиями объектов и
свойств. Наконец, синонимы должны поддерживать
национальные кодировки.
Введение
синонимов у свойств противоположно по
действию полиморфизму. Так, одно и тоже
полиморфное свойство может иметь различные
синонимы даже у объектов, относящихся
к одному классу. Механизм поддержки синонимов
удобно использовать на различных логических
уровнях (уровнях вложений контейнеров).
Это позволяет пользователям косвенно указывать,
к какому логическому уровню они обращаются.
Как следствие, упрощается взаимодействие
с системой. Для примера, можно сказать,
что понятие «свойства класса» и «схемы
контейнера» являются синонимами, поскольку
контейнер тоже является классом. Однако,
когда речь идёт о схеме, то становится
понятно, что в контексте подразумевается
именно контейнер, а не элементарный класс.
Наименования
объектов и их свойств в рамках схем контейнера
образуют основу декларативного языка схем.
Этот язык необходим в случаях, если логика
схемы сложна и её графическое представление
перегружено, что затрудняет восприятие.
Использование синонимов позволяет достичь
очень хорошей выразительности языка.
При
разработке сложных систем, имеющих несколько
логических уровней, язык каждого уровня,
возможно, будет отличаться по своим возможностям.
Более низкие логические уровни используют
и более низкоуровневые языки, в состав
которых будут входить операторы, используемые
в традиционных языках высокого уровня
(3GL). Необходимость использования этих
операторов на более высоких уровнях вызывает
сомнения. Здесь вполне достаточно обращений
к свойствам вложенных классов, которые
и производят всю работу. Можно отметить
тенденцию изменения языковых средств с
повышением логических уровней контейнеров.
На нижних уровнях описание схем удобно
производить на языках написания скриптов,
аналогичных Perl или Tcl. На верхних уровнях
происходит смещение в область языков логического
программирования, но здесь очень важна
и удобна графическая нотация языка.
Сосуществование
нескольких языков на соответствующих логических
уровнях позволяет совместить эффективность
и детальность кода низкоуровневых средств
программирования с высокой скоростью разработки,
которую обеспечивают языки высокого уровня.
И это положение вещей вполне согласуется
с тем, что низкие уровни разрабатываются
системными программистами, в то время,
как средние уровни создаются прикладными
программистами, а высокие логические уровни
могут разрабатываться подготовленными
пользователями.
|