Эволюция объектной модели
Объектно-ориентированный подход связан со следующими событиями:
- развитие методологии программирования, включая принципы модульности и скрытия данных;
- развитие языков программирования;
- прогресс в области архитектуры ЭВМ и операционных систем;
- развитие теории баз данных;
- исследования в области искусственного интеллекта;
- достижения философии и теории познания.
Первым, кто указал на необходимость построения систем в виде структурированных абстракций, был Дейкстра. Позднее Парнас ввел идею скрытия информации, а в 70-х годах ряд исследователей разработали механизмы абстрактных типов данных. Хоар дополнил эти подходы теорией типов и подклассов.
Развитие языков программирования:
Первое поколение (1954-1958) | FORTRAN I ALGOL-58 | Математические формулы | |
Второе поколение (1959-1961) | FORTRAN II ALGOL-60 COBOL LISP | Подпрограммы, раздельная компиляция Блочная структура, типы данных Описание данных, работа с файлами Обработка списков, сборка мусора | |
Третье поколение (1962-1970) | PL/I Pascal Simulа | Объединение возможностей Строгая типизация, модули Классы, абстрактные данные | |
Четвертое (потерянное) поколение (1970-1980) | Множество языков Smalltalk Ada C++ | Проблемно-ориентированные ООП Параллелизм Шаблоны | |
В 70-80-х годах делались попытки отойти от традиционной архитектуры фон Неймана и преодолеть барьер между высоким уровнем программной абстракции и низким уровнем ЭВМ. По мнению сторонников этих подходов, тогда были созданы более качественные средства, обеспечивающие: лучшее выявление ошибок, большую эффективность реализации программ, сокращение набора инструкций, упрощение компиляции, снижение объема требуемой памяти. Были разработаны компьютеры Burroughs 5000, SWARD, Intel 432, IBM System/38 (AS/400). Для объектно-ориентированной архитектуры потребовались объектно-ориентированные операционные системы.
Развивавшиеся достаточно независимо технологии построения баз данных также оказали влияние на объектный подход, в первую очередь благодаря так называемой модели "сущность-отношение" (ER, entity-relationship), в которой моделирование происходит в терминах сущностей, их атрибутов и взаимоотношений.
Разработчики способов представления данных в области искусственного интеллекта также внесли свой вклад в понимание объектно-ориентированных абстракций. В 1975 г. Мински выдвинул теорию фреймов для представления реальных объектов в системах распознавания образов и естественных языков. Фреймы стали использоваться в качестве архитектурной основы в различных интеллектуальных системах.
Объектный подход известен еще издавна. Грекам принадлежит идея о том, что мир можно рассматривать в терминах как объектов, так и событий. А в XVII веке Декарт отмечал, что люди обычно имеют объектно-ориентированный взгляд на мир. В XX веке эту тему развивала Рэнд в своей философии объективистской эпистемологии. Позднее Мински предложил модель человеческого мышления, в которой разум человека рассматривается как общность различно мыслящих агентов. Он доказывает, что только совместное действие таких агентов приводит к осмысленному поведению человека.