Введение

Языки, поддерживающие абстракцию данных

Языки, основанные на Паскале

Eiffel

Продукты, основанные на Лиспе

Продукты, основанные на языке Си

Smalltalk

Simula 67

Введение

План

Лекция 4

Объектно-ориентированные языки; классификация, архитектура, выразительные средства, технология применения

 

 

В настоящее время на рынке существует большое количество объектно- ориентированных языков. В этой главе прослеживается выбор пользователя и указываются три основных группы объектно-ориентированных языков, которые будут играть важную роль в развитии ПО в середине 90-х гг. Эти основные группы базируются на Си, Smalltalk и CLOS (Common Lisp Object System) . Среди всех обсуждаемых языков бесспорным лидером будет C++, расширение языка Си, сделанное фирмой AT&T и поставляемое на рынок рядом фирм-распространителей. Однако, у разных пользователей разные требования, и для каждого из объектно -ориентированных языков найдется место на рынке.

Наблюдаемый в настоящий момент интерес к языкам, реализующим понятия классов и наследования впервые возник с разработкой языка Smalltalk фирмой Xerox PARC в 70-х гг. Этот язык основывался на объектно- ориентированных понятиях языка Симула и исследованиях фирмы Xerox в области взаимодействия человека с машиной. В итоге система прошла несколько стадий внутренних разработок вплоть до появления Smalltalk-80. Эта система считается прототипом "чистой" полностью интегрированной объектно-ориентированной среды.

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

  • Программисты, работающие на языке Си. Эта группа быстро движется в сторону C++. Новые пользователи вполне вероятно больше мотивируются привлекательностью "более хорошего" Си, чем преимуществами объектно- ориентированного программирования. В середине 90-х гг. C++ вероятнее всего станет главным языком программирования для большинства разработчиков новых проектов.
  • Разработчики систем искусственного интеллекта, пользующиеся языками, основанными на языке Лисп и гибридными наборами инструментов. Эта группа сосредоточит свое внимание на Common Lisp Object System (CLOS) , представляющую собой укрепление существующей поддержки объектно-ориентированного программирования как одного из технических средств, приветствуемых работниками в области систем искусственного интеллекта и экспертных систем.
  • Сообщество Smalltalk. Это выбор приверженцев чистоты объектно-ориентированной технологии и языка, будущее которого наиболее предсказуемо. Несмотря на успех C++ на общем рынке, Smalltalk сохранит свою привлекательность для специфических групп, занимающихся специфическими разработками, особенно непрофессиональных программистов: например, ученых, учителей и инженеров.

Эти три рынка независимы и предназначены для различных групп пользователей. Каждая группа приближается к стандарту, который утвердится в начале 90-х гг.: два из них уже появляются: это C++ и CLOS. Третий находится только в зародыше. Smalltalk-80 - это оригинальный вид языка, еще не до конца утвердившийся. Отделение ядра языка с иерархией классов от оболочки послужит продвижением к стандартному языку, может быть, к Smalltalk-90.

Стандартизация обеспечивает основных пользователей и поставщиков твердой базой, но при этом замедляя развитие языка. Текущая популярность стандартов и "открытых систем" означает, что для основных языков наступает трудное время. Часто эти языки имеют черты, предназначенные для программиста, однако, политика фирмы может требовать, чтобы язык был доступен от нескольких поставщиков. Несмотря на эти предостережения, для поставщиков основных языков остается возможность строить часть рынка на широко рекламируемых слабостях стандартных языков. Например, Objective-C предлагает комбинацию синтаксиса языка Smalltalk, интегрированной среды программирования и библиотек классов с совместимостью с Ansi C.

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

  1. Simula;
  2. Smalltalk;
  3. языки на основе Си;
  4. языки на основе Лиспа;
  5. Eiffel;
  6. языки на основе Паскаля;
  7. другие языки.

Некоторые из языков входят в полную среду, а другие либо не имеют поддержки, либо неполны. Доступные в настоящее время средства поддержки работы индивидуального программиста приведены для каждой группы.

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