Страница: 4/13
Некоторые параметры объекта могут быть локализованы внутри объекта и недоступны для прямого воздействия извне объекта. Например, во время движения объекта-автомобиля объект-водитель может воздействовать только на ограниченный набор органов управления (рулевое колесо, педали газа, сцепления и тормоза, рычаг переключения передач) и ему недоступен целый ряд параметров, характеризующих состояние двигателя и автомобиля в целом.
Очевидно, для того, чтобы продуктивно применять объектный подход для разработки программ, необходимы языки программирования, поддерживающие этот подход, т.е. позволяющие строить описание классов объектов, образовывать данные объектных типов, выполнять операции над объектами. Одним из первых таких языков стал язык SmallTalk в котором все данные являются объектами некоторых классов, а общая система классов строится как иерархическая структура на основе предопределенных базовых классов.
Опыт программирования показывает, что любой методический подход в технологии программирования не должен применяться слепо с игнорированием других подходов. Это относится и к объектно-ориентированному подходу. Существует ряд типовых проблем, для которых его полезность наиболее очевидна, к таким проблемам относятся, в частности, задачи имитационного моделирования, программирование диалогов с пользователем. Существуют и задачи, в которых применение объектного подхода ни к чему, кроме излишних затрат труда, не приведет. В связи с этим наибольшее распространение получили объектно-ориентированные языки программирования, позволяющие сочетать объектный подход с другими методологиями. В некоторых языках и системах программирования применение объектного подхода ограничивается средствами интерфейса с пользователем (например, 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 |
Реферат опубликован: 8/06/2008