История объектно-ориентированного программирования

  • 10 сент. 2010 г.
  • 2535 Слова
История объектно-ориентированного программирования
Из "древней истории"

Пожалуй, первым компьютерным решением, воплотившим в себе объектный подход, стал программно-аппаратный графический Планшет (Sketchpad: A Man-Machine Graphical Communications System), использовавший оборудование DEC PDP. Его в 1963 г. разработал 25-летний Иван Сазерленд, помогавший в создании симуляторов вертолетоввоенному научному агентству DARPA, а затем занявшийся в Массачусетском технологическом институте докторской диссертацией и имевший удовольствие общения с Клодом Шенноном. С помощью светового пера и системы выпадающих меню пользователь Планшета мог рисовать различные несложные изображения на аналоговом дисплее, перемещать их и точно располагать в определенных позициях экрана, а также хранить. В качестве понятиякласса Сазерленд использовал определение "мастер", разделяя описание и реально существующий на экране объект (экземпляр "мастера").
Сазерленд также придумал первый прототип нынешних систем виртуальной реальности, ухитрившись спроецировать изображение с двух мониторов непосредственно в глаза человека (как стереоскопический фильм), а было это в 1968 г. Специальные датчики контролировали положениеголовы и соответственно изменяли прокручиваемые перед глазами ролики. Этот человек защитил восемь патентов по компьютерной графике, занимался шагающими роботами в Калифорнийском университете, а затем работал вице-президентом компании Sun Microsystems.
Основоположниками объектного подхода в программировании считаются норвежцы Оле Джохан Дал и Кристен Нюгорт, авторы языка Симула. В 1952 г. Нюгорт решилзаняться моделированием крупных и сложных систем реального мира, в 1957-м получил возможность компьютерной реализации своих замыслов на машине Ferranti MERCURY, но быстро осознал ограниченность машинных языков и Фортрана.

Ferranti MERCURY – версия, созданная Манчестерским университетом в содружестве с компанией Ferranti в ходе работ над компьютером Mark 2. Она отличалась поддержкой операций с плавающейточкой. Память компьютера составляла 1024 слова по 40 бит с временем доступа 10 мкс к 10-битовому слову. Устройство адресации могло работать с 10-, 20- и 40-битовыми словами. Долговременная память насчитывала 4096 40-битных слов и обрабатывала их со скоростью 17,28 мс. Для выявления сбоев выполнялась проверка четности. Программисты решали задачи с помощью языка Mercury Autocode.
Фирма Ferrantiпродала 19 таких машин, последнюю – в 1963 г.
История Симулы началась в 1962 г. с проекта Simulation Language, предназначенного для программного моделирования метода Монте-Карло. Нюгорт, занимавший в то время должность директора по науке Норвежского компьютерного центра (NCC), приступил к созданию языка дискретного моделирования. Он привлек к сотрудничеству Оле Джохана Дала, коллегу по экспериментальнойгруппе Министерства обороны Норвегии, которую возглавлял Йан Гэрвик, основатель информатики в этой стране. Для работ NCC приобрел датский компьютер GIER за 280 тыс. долл.
Одновременно готовились две версии Симулы. Первая, Симула I, формировалась по контракту с подразделением Univac корпорации Sperry Rand для машины UNIVAC 1107 (обошедшейся NCC в 990 тыс. долл.). Американские заказчики желаливидеть этот язык фортраноподобным, от чего, впрочем, авторы категорически отказались; в результате прародителем Симулы стал Алгол 60. Последний был выбран благодаря блочной архитектуре, хорошим средствам сокрытия данных, а также вследствие высокой популярности в европейских научных центрах. А работы над вторым вариантом спонсировал NCC.

В 1965 г. авторам пришла в голову идея объединить данные спроцедурами, их обрабатывающими. После успешного обсуждения возможностей Симулы I на саммите НАТО в 1966 г. решено было продолжить его совершенствование. В язык вошли новые средства моделирования и имитации мультипроцессной работы. Авторы также придумали термины "класс" и "объект". Тогда же возникла и технология наследования – создатели Симулы ввели в язык возможность...