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