Объектно-ориентированные языки програмирования

Страница: 9/13

Поставщики

AT&T поставляет транслятор, обрабатывающий программу на С++ и генерирующий исходный код Ansi C, который затем компилируется нормальным образом. Транслятор пока еще остается продуктом AT&T без сопровождения. Лицензию можно купить прямо на фирме. Кроме этого, транслятор перенесен на разнообразные платформы фирмой Glockenspiel (Дублин). Несколько организаций имеют подлицензии: Oasys для рабочих станций (Sun, Apollo), Guidelines и Lifeboat для IBM PC.

Две другие фирмы, Zortech и Oregon Software, недавно выпустили компиляторы С++. Они больше основаны на справочном руководстве [Stroustrup 1986], а не на исходных текстах, и не имеют лицензии от AT&T.

2.3.2. OBJECTIVE-C

Язык

Другим ведущим продавцом продуктов, основанных на Си, является Stepstone, бывший PPI. Objective-C - это гибридный язык, состоящий из подмножества Ansi C и основных положений Smalltalk-80. Тексты программ могут содержать чистые операторы языка Си или объектно-ориентированные конструкции. Объекты задаются новым типом данных, называемым id. Сообщения посылаются объектам с помощью модифицированной версии синтаксиса языка Smalltalk. Новые объекты создаются посылкой сообщения new специальному типу объекта, называемому объектом-производителем. Например, новый экземпляр класса Pen создается с помощью следующего текста:

extern id Pen;

id aPen;

aPen = [Pen new];

Objective-C не поддерживает множественное наследование и автома

ческую

сборку мусора, однако, тестовая версия последней создана и протестирована фирмой Stepstone [Cox 1986].

Компилятор Objective-C генерирует исходный текст на языке Си. По умолчанию используется динамическое связывание методов, однако, для

вышения надежности и эффективности можно выбрать статическое связы

ние.

Среда

Кроме компилятора, фирма Stepstone предоставляет (необязательно)

терактивную среду программирования Objective-C Interpreter. Она поддер

вает целый ряд бычных действий программиста: написание программ, к

пиляцию, связывание, тестирование и отладку. Она включает команды для вычисления выражений, вывода данных, установки контрольных точек,

иска каталогов файла, редактирования командного файла, проверки объ

тов, вывода иерархии классов и наследуемых методов.

Также предоставляется две библиотеки классов для поддержки основ

го и гра

ческого пользовательского интерфейса.

2.3.3 ДРУГИЕ ПРОДУКТЫ, ОСНОВАННЫЕ НА СИ

C-talk

C-talk - это запатентованный язык для MS-DOS и Apple Macintosh, с

данный отделом программных продуктов фирмы CNS Inc, специализир

щейся на продуктах диагностики для медицины. Синтаксис языка основан на Си с дополнительными конструкциями, поддерживающими классы и методы, наследование и посылку сообщений. Предоставляется набор основных кл

сов для структур данных типа Buffer, Stream и ByteArray. Он поставляется в виде пакета, содержащего препроцессор для преобразования файлов на C-talk в исходные тексты на Си, и среды программирования, называемой C-talk Browser, основанной на оконном интерфейсе. Существуют средства редак

ро

ния файлов и просмотра классов и методов.

Complet

Complet

Compute

Corporation, New York работает над созданием объектно - ориентированной среды разработки программ, называемой Complete C. Она состоит из прекомпилятора, генерирующего стандартный Ansi С из объектно-ориентированного Си, набора инструментов (отладчика, компоновщика, генератора документов) и библиотеки основных классов. Complete C работает под MS-DOS, OS/2 и Unix.

2.4. ПРОДУКТЫ, ОСНОВАННЫЕ НА ЛИСПЕ

Объектно-ориентированные расширения Лиспа предназначены в осн

ном для сообщества исследователей искусственного интеллекта. Некоторые из этих расширений были первоначально созданы в университетах. Лидерами являются две самостоятельные версии: New Flavors, разработанный в Symbolics, и CommonLoops, разработанный в Xerox PARC. Они составили базу для

Commo

Lis

Objec

Syste

CLO

).

Отличительной особенностью некоторых систем, основанных на Лиспе, является способ управления взаимодействием объектов. В отличие от тра

Реферат опубликован: 8/06/2008