KursRab (Объектно-ориентированные языки програмирования), страница 3

2016-07-31СтудИзба

Описание файла

Документ из архива "Объектно-ориентированные языки програмирования", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "KursRab"

Текст 3 страницы из документа "KursRab"

Таблица С2.3 Продавцы и продукты языков, основанных на Си

Продукт
Платформа
Продавец
Трансляторы C++
Advantage C++
IBM PC под MS-DOS, Xenix, Unix

Lifeboat

Designer C++
Macintosh II
Oasys
IBM PC под MS-DOS, OS/2
IBM RT
PC 80386 под Unix, Xenix
HP 9000/300 и 9000/800
NEC Astra
AT&T 3b2
DEC Vax под VMS и Ultrix
Sun-3, Sun-4
Glockenspiel C++
IBM PC под MS-DOS, OS/2

Glockenspiel

386/ix и Xenix
AT&T 3b2 под Sys V.2
HP 9000/300
Sun-3, Sun/386i
IBM RT под Sys V.2
Apollo
DEC Vax под Ultrix и VMS
Guidelines C++
IBM PC под MS-DOS
Guidelines
Компиляторы С++
Oregon C++
Sun-3
Oregon
DEC Vax под Ultrix
PC 386 под Xenix
Zortech C++
IBM PC под MS-DOS
Zortech
Другие продукты, основанные на языке Си
C-talk
IBM-PC под MS-DOS
CNS
Macintosh
Complete C
IBM PC под MS-DOS, OS/2, Unix
Complete Computer Corporation
Objective C
Sun
Stepstone
DEC Vax
Apollo
HP 9000 series 200/300

2.3.1. C++

Язык

Язык С++ в основном является языком Си со специальными синтаксическими расширениями для определения и управления объектами. В нем был учтен ряд недостатков языка Си: теперь ведется проверка типов аргументов функций, можно производить макроподстановку функций. Также в него включены некоторые средства проекта стандарта Ansi C. По завершении стандарта C++ будет пересмотрен для удаления несовместимостей двух языков. Важной новой особенностью C++ является поддержка абстракции данных и объектно-ориентированного программирования. Абстракция данных поддерживается с помощью введения типов, определенных пользователем. Например, предположим, что есть новый тип данных shape, используемый в графической

системе. Этот тип определяется с помощью оператора class:

class shape {

point centre;

colour col;

// ... комментарий

public:

point where() {return centre; }

void move(point to)

{ centre = to; draw(); }

virtual void draw();

virtual void rotate(int);

// ... комментарий

};

Это определение содержит информацию как общую, так и частную. Сначала представление фигуры shape определяется двумя элементами частных данных - центром и цветом. Затем идет интерфейс, содержащий общую информацию. Пользователь может получить координаты центра, перемещать центр фигуры в данную точку, рисовать фигуру и вращать ее. Функции draw() и rotate() нельзя определить для абстрактного типа shape. Они называются виртуальными функциями и определяются позже для каждой специфической фигуры: окружности, треугольника или квадрата. Каждая из них определяется оператором class. Это означает, что, например, новый тип данных circle является производным класса shape, который называется его базовым классом. Производный класс наследует свойства базового класса. В данном случае класс circle наследует члены класса col и centre класса shape. Кроме этого, у него есть член radius. Функции draw() и rotate() теперь реализованы для класса circle:

class circle: public shape { // окружность - это контур

int radius;

public:

void draw() { /* ... */ };

void rotate(int) {} // rotate - нулевая функция

};

Объектно-ориентированное программирование поддерживается в языке С++ в основном реализацией наследования методом задания взаимодействия типов данных [Stroustrup 1988].

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

Хотя С++ поддерживает объектно-ориентированное программирование, он не навязывает его. Можно игнорировать объектные расширения и просто писать обычные программы языка Си. Это преимущество с точки зрения совместимости двух языков и основная причина повышенного интереса к С++ в разработке ПО. С другой стороны, могут возникнуть недоумения по поводу того, в какой степени С++ можно считать объектно-ориентированным языком. Более того, трудно оценить, какая часть рынка языка отражает уникальный поворот сообщества Си в сторону ООС. Есть признаки, что при соответствующем курсе С++ отойдет от объектно-ориентированного сообщества: в 1988 ассоциацией пользователей UNIX (Usenix) была созвана отдельная конференция по С++, а также был создан новый журнал The C++ Report издателями журнала Journal of Object-Oriented Programming.

Среда

С++ - это язык программирования, а не среда разработки программ типа Smalltalk. Поэтому ему нужны средства поддержки работы программиста: сюда входят расширения существующих средств языки Си (редакторы, отладчики) и средства поддержки работы с объектами (окна просмотра классов). В свою очередь, эти средства должны соединяться со средой программирования. Быстрый рост рынка С++ предоставляет хорошие перспективы продавцам, имеющим продукты для С++. К ним относятся, например, существующие продавцы компиляторов и трансляторов С++. Один из интересных проектов в этой области - соглашение между ParcPlace Systems и Glockenspiel о разработке Cynergy - версии среды Smalltalk, поддерживающей программы на С++.

Поставщики

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, основанной на оконном интерфейсе. Существуют средства редактирования файлов и просмотра классов и методов.

Complete C

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

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

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

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

CommonLoops

Loops - это многопарадигмовая система для обработки знаний и программирования, разработанная в Xerox PARC. В представлении знаний используется объектно-ориентированный подход. поддерживающий классы и наследование. Объектно - ориентированная часть Loops позднее была оформлена как пакет в составе продукта Common Lisp, более известного как CommonLoops. Характеристики языка:

частичная интеграция системы типа Common Lisp с классами CommonLoops;

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее