Статья 2326

Д. Далом и К. Нигардом из Норвежского вычислительного центра в Осло в языке Симула-67, ведущем свое происхождение от Алгола-60. Однако идея не привлекла широкого внимания вплоть до разработки языка Смоллток в 1970 г. А. Кейем и группой его коллег, одним из которых был автор в Исследовательском центре в Пало-Альто. Смоллток состоит исключительно из объектно-ориентированных конструкций, которые делают описание языка компактным и весьма универсальным, но, с другой стороны, так как все в языке представлено объектами, некоторые важные механизмы структурирования данных невозможно реализовать эффективно.
Программный объект состоит из структур данных и алгоритмов. Каждый объект знает, как выполнять операции со своими собственными данными, но для остальной программы объект может трактоваться как черный ящик, о внутренней работе которого ничего знать не нужно. Действительно, различные объекты могут пользоваться совершенно разными алгоритмами при выполнении заданий, определенных одним и тем же ключевым словом. Очевидно, что так же, как пингвины, лошади и сороконожки пользуются различными способами для осуществления действия, которое можно назвать ходьбой, так и объекты, чьи данные состоят из целых чисел, массивов или комплексных чисел, будут пользоваться различными методами для выполнения операции сложения.
Я и мои коллеги по фирме Apple Computer Inc. разработали язык, названный Класкаль, который дополнил базовые структуры Паскаля концепцией классов объектов. Класкаль, Смоллток, Симула и несколько других объектно-ориентированных языков позволяют объектам в классе наследовать свойства от суперклассов, к которым они принадлежат, так что каждый класс не приходится строить, начиная нуля. Нужно лишь описать особенности, отличается данный класс. Так, к пингвинам, лошадям и сороконожкам применимо общее понятие ног. Отличаются они количеством ног и особенностями способа передвижения.