Студентам > Курсовые > Объектно-ориентированные языки програмирования
Объектно-ориентированные языки програмированияСтраница: 2/5
Опыт программирования показывает, что любой
методический подход в технологии программирования не должен применяться слепо с
игнорированием других подходов. Это относится и к объектно-ориентированному подходу.
Существует ряд типовых проблем, для которых его полезность наиболее очевидна, к
таким проблемам относятся, в частности, задачи имитационного моделирования,
программирование диалогов с пользователем. Существуют и задачи, в которых
применение объектного подхода ни к чему, кроме излишних затрат труда, не
приведет. В связи с этим наибольшее распространение получили
объектно-ориентированные языки программирования, позволяющие сочетать объектный
подход с другими методологиями. В некоторых языках и системах программирования
применение объектного подхода ограничивается средствами интерфейса с
пользователем (например, Visual FoxPro ранних версий).
Наиболее используемыми в настоящее время объектно-ориентированными
языками являются Паскаль с объектами и Си++, причем наиболее развитые средства
для работы с объектами содержатся в Си++.
II. Объектно-ориентированные
языки программирования.
2.1. SIMULA 67
Все объектно-ориентированные языки происходят от языка
Симула, разработанного в начале 60-х гг. в Norwegian Computing Centre.
Синтаксис языка взят из Алгола-60. Основными новшествами были понятия объекта,
класса и наследования. Симула не навязывает строгую инкапсуляцию данных и не заботится
о деталях реализации. Модули можно перекомпилировать по отдельности, не меняя
внешние интерфейсы. Проверка типов осуществляется во время компиляции. Сборка
мусора осуществляется системой поддержки работающей программы.
Объекты могут действовать независимо друг от друга,
предоставляя возможность выполнения квазипараллельных вычислений. Действие
объекта можно приостановить и возобновить позже. Встроенные классы добавляют в
язык средства работы со списками, графику и моделирование дискретных событий.
Среда
Переносимая система Simula (S-Port)
содержит независимый пакет, состоящий из компилятора, генерирующего
промежуточный язык S-code, систему поддержки работающей программы и символьного
отладчика. Также есть система, зависимая от целевой машины, содержащая компилятор,
транслирующий S-code в целевой код, и набор программ интерфейса. Планируется
создать дополнительные средства и библиотеку предопределенных модулей.
Поставщики
Первая реализации на Univac 1107 появилась в начале
70-х гг. С этих пор язык был реализован на большинстве платформ, от больших ЭВМ
до персоналок. В настоящее время Simula развивается и выступает на рынке под названием
Simula a.s., установленным норвежской фирмой в 1984 г.
Переносимая система Simula (S-Port) - является основой
многочисленных версий, включая PC Simula. В табл. С2.1 приводятся основные
реализации и поставщики. Системы DEC, Univac и IBM установлены в более, чем 300
точках Европы и Северной Америки.
Таблица С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 |
|