большинство современных реализаций языков более
объектно-ориентированного потомка Си++), ставшего поистине
девизом "настоящих программистов". Может быть, причины более
глубинны (например, языки более высокого уровня слишком
ограничительны для программистов-профессионалов; недаром
большинство современных реализаций языков более высокого уровня
выполняются именно на языке Си). Тем не менее, современная
ситуация именно такова, и мы считаем полезным привести краткое
описание основных особенностей языка CO2 .
Прежде всего, CO2 не является полностью самостоятельным языком.
Этот язык входит во многоязыковую среду O2 и предназначен для
программирования методов ранее определенных классов. Определение
классов, сигнатур методов (фактически, прототипов функций в
терминологии языка Си) и имен постоянно хранимых значений и
объектов производится с использованием отдельного языка
определения схемы БД.
Имя любого объекта трактуется как указатель на значение этого
объекта; разыменование производится с помощью обычного оператора
Си '*'. Доступ к значению объекта возможен только из метода его
класса, если только при перечислении методов оператор '*' не
объявлен явно публичным.
Поддерживается операция порождения нового объекта указанного
класса. В отличие от языка Си++ в CO2 невозможно совместить
создание нового объекта с его инициализаций (понятие
метода-конструктора начального значения объекта в CO2 не
поддерживается). Для инициализации необходимо либо явно
обратиться к соответствующему методу класса с указанием вновь
созданного объекта (поддерживается соответствующий механизм
"передачи сообщений", означающий на самом деле вызов функции),
либо воспользоваться оператором '*' и явно присвоить новое
значение, если '*' - публичный оператор для данного класса.
CO2 включает средства конструирования значений-кортежей,
множеств, и списков. Понятие значения-кортежа фактически
эквивалентно понятию значения-структуры обычного языка Си (с тем
отличием, что элементами кортежа могут являться объекты,
Содержание Назад Вперед