Смекни!
smekni.com

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

Таблица С2.1а. Реализации языка Simula

Платформа

Поставщик

CDC 3300 Academy of Sciences, Budapest
CDC Cyber Control Data a.s., Oslo, Norway
Cromemco под Cromix
Omnibus a.s., Sweden
Data General Eclipse Lund Software, Sweden
DEC 10/20 Stockholm Computing Centre QZ, Sweden
IBM 370 Simula a.s., Oslo, Norway
ND 10/100 Norsk Data, Oslo, Norway
Siemens 75xx под BS2000/3000 Simula a.s., Oslo, Norway
Таблица С2.1b. Реализации переносимых систем Simula
Платформа
Поставщик
Apollo
Simprog AB, Stockholm, Sweden
HP 900/300
Simprog AB, Stockholm, Sweden
IBM PC/XT (AT)
Simula a.s., Oslo, Norway
ICL 2900
University of Edinburgh, Scotland
Mach-S
Simulation Technology, Oslo, Norway
Masscomp
Simprog AB, Stockholm, Sweden
ND 500
Norsk Data, Oslo, Norway
Prime
Prime Scandinavia, Stockholm, Sweden
Sperry 1100
Unisys Corp., USA
Sun
Simprog AB, Stockholm, Sweden
Vax под Unix
Simprog AB, Stockholm, Sweden
Vax под Ultrix
Simprog AB, Stockholm, Sweden
Vax под VMS
Stockholm Computing Centre QZ, Sweden

Сформированная в 1972 г. организация Simula Standards Group осуществляет контроль за развитием языка: самая последняя версия была выпущена в 1986г. Изменения в язык вносит Simula Developement Group. Кроме того, есть ассоциация пользователей языка Simula.

2.2. SMALLTALK

Smalltalk до последнего времени был наиболее предпочтительным языком при экспериментировании в технологии объектно-ориентированного программирования. В последние годы появился дешевый компилятор C++ для персоналок, который нарушил баланс в сторону C++ среди первых пользователей объектно-ориентированных систем. Smalltalk был разработан на фирме Xerox PARC в результате исследовательского проекта, воплотив в себе ряд идей о том, как человек может использовать компьютер наилучшим образом. Сюда относились использование персональных рабочих станций, интерактивных сред, графических интерфейсов, мыши и объектно-ориентированного программирования. Каждая из этих идей сама по себе имела большое значение, как внутри фирмы, так и во всей компьютерной индустрии. В 80-х гг. соединение этих мощных идей в языке и системе Smalltalk-80 было несоразмерно с малым числом фактических пользователей.

Язык

Основной чертой языка Smalltalk является его универсальность. История языка характеризуется тремя признаками:

- данные хранятся как объекты, которые освобождаются автоматически;

- выполнение действий осуществляется через посылку сообщений объектам;

- поведение объектов описано в классах.

В языке все является объектом. Все взаимодействия объектов осуществляются через посылки сообщений, даже сложение целых чисел: 1 +2. В этом языке 1 - это экземпляр класса целых чисел, + - имя метода, 2- аргумент. Объект 1 получает сообщение + 2 и возвращает результат 3.Состоятельность такого подхода гарантирует краткость языка и простой синтаксис. Но из-за этого увеличивается цена накладных расходов на

посылку сообщений: связывание производится целиком во время работы программы. Автоматическая сборка мусора тоже вызывает проблемы быстродействия. Smalltalk не поддерживает множественное наследование.

С другой стороны, Smalltalk-80 совсем не маленький язык. Существует большая библиотека классов: более 250 классов и более 2000 методов. Работа с такой библиотекой составляет важную задачу при изучении языка, несмотря на то, что для просмотра методов и классов существуют специальные средства.

Среда

Smalltalk-80 тесно связан с развитой средой программирования. Пользовательский интерфейс состоит из набора экранных образов: это прямоугольные области, содержащие текст или графику, которые можно перемещать по экрану, изменять в размере, заменять меткой или закрывать. Образы могут перекрываться полностью или частично. Взаимодействие с системой осуществляется с помощью трехкнопочной мыши или с клавиатуры. Визуальные объекты для пользователя - это курсоры, высвечивание, меню, полоски сдвига и рамки с подсказкой.

Основные компоненты системы активизируются внутри экранных образов. Сюда

входят текстовый редактор, редактор формы и битовый редактор для создания рисунков, инспектор для проверки переменных объекта, окно просмотра системы для изучения классов и сообщений, метки окна для описания прерванного процесса и отладчики.

Smalltalk был разработан для индивидуальной работы программиста на персональной рабочей станции. Таким образом, эта система первоначально была доступна только как однопользовательская. Сейчас в ней уже есть средства поддержки коллективов программистов.

Поставщики

В 1981-82 гг. четырем фирмам предлагалось реализовать Smalltalk на своей аппаратуре. После этого эксперимента Smalltalk поставлялся университетам и исследовательским институтам как продукт без сопровождения. Кроме того, был выпущен ряд книг по языку и его реализации. Однако, язык не был запатентован фирмой Xerox вплоть до 1986 г. Эта фирма до сих пор контролирует рынок Smalltalk-80 с помощью отделения SIS и фирмы ParcPlace Systems. Другие продавцы имеют лицензию на продукт и его различные реализации. Исключением является фирма Digitalk, выпустившая свою собственную версию для PC - Smalltalk/V. В таблице С2.2 приведены доступные в настоящее время продукты Smalltalk.

Таблица C2.2 Продавцы и продукты языка Smalltalk

Продукт
Платформа
Продавец
Smalltalk-80
DEC Station 3100 под Ultrix
ParcPlace systems
PC 80386 под MS-DOS
Sun-3, 4, 386i
Apple Macintosh II, Plus и SE
HP 9000 series 300
Apollo Series 3000, 4000
Apollo DN570, 580, 590
Smalltalk-80
Tektronix 4315
Tektronix
Color Smalltalk-80
Tektronix 4316, 17 и 19
Tektronix
Smalltalk-80
Xerox 8010/1108 и 6085/1186
Xerox SIS
Smalltalk/V
IBM PC/XT/AT под MS-DOS
Digitalk
Smalltalk/V 286
286 и 386 PC под MS-DOS
Digitalk
Smalltalk/V Mac
Apple Macintosh II, PLUS и SE
Digitalk

Будущее языка Smalltalk волнует как пользователей, так и поставщиков. В августе 1987 г. была организована ассоциация разработчиков и прикладных пользователей Smalltalk - OOPSTAD. Она публикует новости HOOPLA (Hooray for Object-Oriented Languages). Работу по стандартизации взял на себя IEEE Microprocessor Standards Committee (P1152). Основное внимание он уделяет языку и базовым классам типа Number и Collection. Основные поставщики и ряд консультантов сформировали Консорциум Smalltalk в целях развития применения языка и среды и управления их технической эволюцией. Он является открытым для отдельных пользователей и корпораций.

2.3. ПРОДУКТЫ, ОСНОВАННЫЕ НА ЯЗЫКЕ СИ

В настоящее время объектно-ориентированные языки стремятся приблизиться к традиционным языкам (в основном к языку Си). Для этого есть ряд причин:

- уже можно воспользоваться накопленным опытом программирования;

- интерфейсы существующих систем намного проще;

- язык более приемлем в области управления;

- поставка может быть осуществлена на стандартных платформах;

- гарантия переносимости между платформами.

Наибольшим потенциалом для больших коммерческих организаций обладает язык C++ фирмы AT&T. Хотя он и не имеет пока большого количества средств сопровождения, некоторые коммерческие организации уже работают над созданием сред развития языка, а другие разрабатывают дополнительные инструменты и библиотеки классов. Кроме того, несколько компаний разработали языки и инструментальные средства, основанные на языке Си. В таблице C2.3 подводятся итоги доступных продуктов, основанных на Си.

Таблица С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, используемый в графической