ВУЗ:
Составители:
Рубрика:
91
возрастающей) популярностью языка Си (и его объектно-ориентированного потомка
Си++), ставшего поистине девизом "настоящих программистов". Может быть причины
более глубинны (например, языки более высокого уровня слишком ограничительны для
программистов-профессионалов; недаром большинство современных реализаций языков
более высокого уровня выполняются именно на языке Си). Тем не менее, современная
ситуация именно такова, и мы считаем полезным привести краткое описание основных
особенностей языка CO2.
Примеры языков программирования ООБД
Прежде всего, CO2 не является полностью самостоятельным языком. Этот язык
входит в многоязыковую среду O2 и предназначен для программирования методов ранее
определенных классов. Определение классов, сигнатур методов (фактически, прототипов
функций в терминологии языка Си) и имен постоянно хранимых значений и объектов
производится с использованием отдельного языка определения схемы БД.
Имя любого объекта трактуется как указатель на значение этого объекта;
разименование производится с помощью обычного оператора Си '*'. Доступ к значению
объекта возможен только из метода его класса, если только при перечислении методов
оператор '*' не объявлен явно публичным.
Поддерживается операция порождения нового объекта указанного класса. В отличие
от языка Си++ в CO2 невозможно совместить создание нового объекта с его
инициализаций (понятие метода-конструктора начального значения объекта в CO2 не
поддерживается). Для инициализации необходимо либо явно обратиться к
соответствующему методу класса с указанием вновь созданного объекта (поддерживается
соответствующий механизм "передачи сообщений", означающий на самом деле вызов
функции), либо воспользоваться оператором '*' и явно присвоить новое значение, если '*' -
публичный оператор для данного класса.
CO2 включает средства конструирования значений-кортежей, множеств и списков.
Понятие значения-кортежа фактически эквивалентно понятию значения-структуры
обычного языка Си (с тем отличием, что элементами кортежа могут являться объекты,
множества и списки). Для значений-множеств и списков поддерживаются операции
добавления и изъятия элементов, а также набор теоретико-множественных операций (и
конкатенации для списков).
Основой манипулирования объектами, хранимыми в БД, является расширенное по
сравнению с языком Си средство итерации. Итератор применим к значениям-множествам
или спискам. Фактически он означает последовательное применение оператора-тела цикла
ко всем элементам множества или списка. Если мы вспомним, что долговременно
хранимому классу объектов неявно соответствуют одноименное значение-множество с
элементами-объектами данного класса, то становится понятно, что итератор языка CO2
обеспечивает явную навигацию в классах объектов. Единственное, что остается от
привычных пользователям СУБД языков запросов, - это ограниченная возможность
указания характеристик требуемых в цикле объектов (это делается путем использования
оператора разименования и явного указания условий на атрибуты; конечно, для этого
нужно, чтобы оператор '*' был объявлен публичным в данном классе).
Разработчики O2 подчеркивают, что они умышленно сделали CO2 более бедным по
возможностям, чем, например, язык Си++, потому что многое по части управления
объектами берет на себя общий менеджер объектов системы, явно вызываемый из рабочей
программы.
возрастающей) популярностью языка Си (и его объектно-ориентированного потомка
Си++), ставшего поистине девизом "настоящих программистов". Может быть причины
более глубинны (например, языки более высокого уровня слишком ограничительны для
программистов-профессионалов; недаром большинство современных реализаций языков
более высокого уровня выполняются именно на языке Си). Тем не менее, современная
ситуация именно такова, и мы считаем полезным привести краткое описание основных
особенностей языка CO2.
Примеры языков программирования ООБД
Прежде всего, CO2 не является полностью самостоятельным языком. Этот язык
входит в многоязыковую среду O2 и предназначен для программирования методов ранее
определенных классов. Определение классов, сигнатур методов (фактически, прототипов
функций в терминологии языка Си) и имен постоянно хранимых значений и объектов
производится с использованием отдельного языка определения схемы БД.
Имя любого объекта трактуется как указатель на значение этого объекта;
разименование производится с помощью обычного оператора Си '*'. Доступ к значению
объекта возможен только из метода его класса, если только при перечислении методов
оператор '*' не объявлен явно публичным.
Поддерживается операция порождения нового объекта указанного класса. В отличие
от языка Си++ в CO2 невозможно совместить создание нового объекта с его
инициализаций (понятие метода-конструктора начального значения объекта в CO2 не
поддерживается). Для инициализации необходимо либо явно обратиться к
соответствующему методу класса с указанием вновь созданного объекта (поддерживается
соответствующий механизм "передачи сообщений", означающий на самом деле вызов
функции), либо воспользоваться оператором '*' и явно присвоить новое значение, если '*' -
публичный оператор для данного класса.
CO2 включает средства конструирования значений-кортежей, множеств и списков.
Понятие значения-кортежа фактически эквивалентно понятию значения-структуры
обычного языка Си (с тем отличием, что элементами кортежа могут являться объекты,
множества и списки). Для значений-множеств и списков поддерживаются операции
добавления и изъятия элементов, а также набор теоретико-множественных операций (и
конкатенации для списков).
Основой манипулирования объектами, хранимыми в БД, является расширенное по
сравнению с языком Си средство итерации. Итератор применим к значениям-множествам
или спискам. Фактически он означает последовательное применение оператора-тела цикла
ко всем элементам множества или списка. Если мы вспомним, что долговременно
хранимому классу объектов неявно соответствуют одноименное значение-множество с
элементами-объектами данного класса, то становится понятно, что итератор языка CO2
обеспечивает явную навигацию в классах объектов. Единственное, что остается от
привычных пользователям СУБД языков запросов, - это ограниченная возможность
указания характеристик требуемых в цикле объектов (это делается путем использования
оператора разименования и явного указания условий на атрибуты; конечно, для этого
нужно, чтобы оператор '*' был объявлен публичным в данном классе).
Разработчики O2 подчеркивают, что они умышленно сделали CO2 более бедным по
возможностям, чем, например, язык Си++, потому что многое по части управления
объектами берет на себя общий менеджер объектов системы, явно вызываемый из рабочей
программы.
91
Страницы
- « первая
- ‹ предыдущая
- …
- 89
- 90
- 91
- 92
- 93
- …
- следующая ›
- последняя »
