Объектно-ориентированные языки
Объектно-ориентированные языки
В общем случае для выполнения вычислений необходима вычислительная процедура и данные к ней. В языках типа Алгола, Кобола или Фортрана, разработанных до начала 60-х гг., главную роль играли процедуры, снабжающиеся необходимыми данными при выполнении вычислений. Однако с расширением области применения ЭВМ все большую роль стали приобретать задачи, связанные с обработкой символов, формул, структур и т.п. Возрастало число программ, в которых требовалась обработка сложных структур данных. Например, при моделировании аппаратного обеспечения ЭВМ необходимо определять непосредственно в виде структур данных такие устройства, как процессор, память, устройства ввода-вывода и т.п., а также описывать потоки команд и данных между ними. Стало ясно, что процесс программирования можно облегчить, если ввести абстрактное понятие объекта вычисления и представлять эти объекты в виде программ, допускающих вычисления над ними. Однако существовавшие в то время языки программирования были малопригодны для решения этой задачи в силу ограниченности типов данных в них. Не спасали положения и разработанные позже процедурные языки типа PL или Pascal, в которых абстрактные типы данных были развиты достаточно хорошо.
Дальнейшее развитие языков программирования привело к появлению такого элемента языков программирования, как "объект".
Объект является основной конструкцией в ООП. В качестве объектов могут выступать программистские абстракции (числа, символы, файлы, и т.д.) или сущности моделируемой предметной области и их взаимосвязь. Объект содержит и процедурную, и понятийную части (говорят, что "объект=данные+процедуры"), причем для представления понятийной части используется аппарат абстрактных типов данных.
При этом объекты взаимодействуют друг с другом, посылая и принимая сообщения.