Классика баз данных - статьи




Об основаниях ненавигационного языка запросов к объектно-ориентированным базам данных - часть 5


объектно-ориентированного потомка Си++), ставшего поистине

девизом "настоящих программистов". Может быть, причины более

глубинны (например, языки более высокого уровня слишком

ограничительны для программистов-профессионалов; недаром

большинство современных реализаций языков более высокого уровня

выполняются именно на языке Си). Тем не менее, современная

ситуация именно такова, и мы считаем полезным привести краткое

описание основных особенностей языка CO2 .

Прежде всего, CO2 не является полностью самостоятельным языком.

Этот язык входит во многоязыковую среду O2 и предназначен для

программирования методов ранее определенных классов. Определение

классов, сигнатур методов (фактически, прототипов функций в

терминологии языка Си) и имен постоянно хранимых значений и

объектов производится с использованием отдельного языка

определения схемы БД.

Имя любого объекта трактуется как указатель на значение этого

объекта; разыменование производится с помощью обычного оператора

Си '*'. Доступ к значению объекта возможен только из метода его

класса, если только при перечислении методов оператор '*' не

объявлен явно публичным.

Поддерживается операция порождения нового объекта указанного

класса. В отличие от языка Си++ в CO2 невозможно совместить

создание нового объекта с его инициализаций (понятие

метода-конструктора начального значения объекта в CO2 не

поддерживается). Для инициализации необходимо либо явно

обратиться к соответствующему методу класса с указанием вновь

созданного объекта (поддерживается соответствующий механизм

"передачи сообщений", означающий на самом деле вызов функции),

либо воспользоваться оператором '*' и явно присвоить новое

значение, если '*' - публичный оператор для данного класса.

CO2 включает средства конструирования значений-кортежей,

множеств, и списков. Понятие значения-кортежа фактически

эквивалентно понятию значения-структуры обычного языка Си (с тем

отличием, что элементами кортежа могут являться объекты,




Содержание  Назад  Вперед