Читаем Объектно-ориентированный анализ и проектирование с примерами приложений на С++ полностью

Непосредственными предшественниками Ada являются Pascal и его производные, включая Euclid, Lis, Mesa, Modula и Sue. Были использованы некоторые концепции ALGOL-68, Simula, CLU и Alphard. Стандарт ANSI для Ada был окончательно издан в 1983 году. Трансляторы Ada, хотя и не сразу, были реализованы для всех основных архитектур. Будучи созданным благодаря министерству обороны, язык Ada сегодня используется во многих государственных и коммерческих проектах. Ada - традиционный язык разработки больших и сложных систем, например, системы управления воздушным движением в США и Канаде. Стандарты ANSI должны пересматриваться каждые пять лет, поэтому в настоящее время изучается проект Ada 9x. В нем в исходное определение языка внесен ряд незначительных исправлений: уточнения, устранение очевидных пробелов, исправления ошибок. В настоящем виде Ada является объектным, но не объектно-ориентированным языком. Проект 9x подразумевает расширение языка до уровня объектно-ориентированного.

Обзор

Разработчики Ada прежде всего беспокоились о:

• надежности и эксплуатационных качествах программ;

• программировании как разновидности человеческой деятельности;

• эффективности [20].

В табл. А-5 приведены основные характеристики языка Ada с точки зрения объектного подхода.  

Абстракции  Переменные экземпляра Методы экземпляра Переменные класса Методы класса  Да Да Нет Нет 

Инкапсуляция  Переменных Методов  Открытые, закрытые Открытые, закрытые 

Модульность  Разновидности модулей  Пакет 

Иерархии  Наследование Шаблоны Метаклассы  Нет (входит в Ada9x) Да Нет 

Типизация  Сильная типизация Полиморфизм  Да Нет (входит в Ada9x) 

Параллельность  Многозадачность  Да 

Сохраняемость  Долгоживущие объекты  Нет 

  Таблица А-5. Ada.   Ссылки

Основным руководством по языку Ada является "Reference Manual for the Ada Programming Language" [21].

A.7. Eiffel

Происхождение

Автор Eiffel Бертран Мейер (Bertrand Meyer) создавал не только язык объектно-ориентированного программирование, но и инструмент проектирования программ.

Несмотря на сильное влияние Simula, Eiffel - вполне самостоятельный объектно-ориентированный язык со своей собственной средой разработки.

Eiffel поддерживает динамическое связывание и статическую типизацию, тем самым обеспечивая гибкость интерфейсов классов в сочетании с безопасным использованием типов. В Eiffel есть несколько важных черт, поддерживающих более жесткий стиль программирования, в том числе параметризованные классы, утверждения и исключения. Мейер считает, что обобщенные классы хорошо дополняют наследование, учитывая горизонтальный уровень общности; новые классы на одном уровне иерархии можно создавать, используя тип в качестве параметра, а не плодя практически одинаковые подклассы.

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

Обзор

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

Eiffel предоставляет законченную среду разработки программ, включая специальный редактор с выделением синтаксиса, генератор документации, библиотеки классов и броузер. Кроме того, поддерживаются средства управления кодом и сборкой программ.

Свойства языка с точки зрения нашей модели показаны в табл. А-6.  

Абстракции  Переменные экземпляра Методы экземпляра Переменные класса Методы класса  Да Да Нет Нет 

Инкапсуляция  Переменных Методов  Закрытые Открытые, закрытые 

Модульность  Разновидности модулей  Блок (unit) 

Иерархии  Наследование Шаблоны Метаклассы  Множественное Да Нет 

Типизация  Сильная типизация Полиморфизм  Да Да 

Параллельность  Многозадачность  Нет 

Сохраняемость  Долгоживущие объекты  Нет 

  Таблица А-6. Eiffel.

Ссылки

Лучше всего взять книгу Мейера "Object Oriented Software Construction" [22].

А.8. Другие объектно-ориентированные языки программирования

На рис. А-2 вы найдете названия многих важных объектных и объектно-ориентированных языков, в библиографии есть ссылки на информацию о большинстве из них.

<рисунок пропущен>  


Словарь терминов

CRC-карточки, CRC cards. CRC - Class/Responsibilities/Collaborators, Класс/Ответственности/Сотрудники; простое, но достаточно эффективное средство мозгового штурма при выявлении ключевых абстракций и механизмов.

Перейти на страницу:

Похожие книги