Объектно-ориентированные языки программирования 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Объектно-ориентированные языки программирования



Оглядываясь на короткую, но колоритную историю развития программирования, нельзя не заметить две сменяющих друг друга тенденции:

– смещение акцентов от программирования отдельных деталей к программированию более крупных компонент;

– развитие и совершенствование языков программирования высокого уровня.

Большинство современных коммерческих программных систем больше и существенно сложнее, чем были их предшественники даже несколько лет тому назад. Этот рост сложности вызвал большое число прикладных исследований по методологии проектирования, особенно, по декомпозиции, абстрагированию и иерархиям. Создание более выразительных языков программирования пополнило достижения в этой области. Возникла тенденция перехода от языков, указывающих компьютеру что делать (императивные языки), к языкам, описывающим ключевые абстракции проблемной области (декларативные языки).

Вегнер сгруппировал некоторые из наиболее известных языков высокого уровня в четыре поколения в зависимости от того, какие языковые конструкции впервые в них появились.

Первое поколение языков (1954 - 1958 гг.):

FORTRAN I Математические формулы

ALGOL-58 Математические формулы

Flowmatic Математические формулы

IPL V Математические формулы

Второе поколение языков (1959 - 1961 гг.):

FORTRAN II Подпрограммы, раздельная компиляция

ALGOL-60 Блочная структура, типы данных

COBOL Описание данных, работа с файлами

Lisp Обработка списков, указатели, сборка мусора

Третье поколение языков (1962 - 1970 гг.):

PL/1 FORTRAN+ALGOL+COBOL

ALGOL-68 Более строгий приемник

ALGOL-60 Pascal Более простой приемник

ALGOL-60 Simula Классы, абстрактные данные

Потерянное поколение (1970 - 1980 гг.):

Много языков созданных, но мало выживших

В каждом следующем поколении менялись поддерживаемые языками механизмы абстракции. Языки первого поколения ориентировались на научно-инженерные применения, и словарь этой предметной области был почти исключительно математическим. Такие языки, как FORTRAN I, были созданы для упрощения программирования математических формул, чтобы освободить программиста от трудностей ассемблера и машинного кода. Первое поколение языков высокого уровня было шагом, приближающим программирование к предметной области и удаляющим от конкретной машины. Во втором поколении языков основной тенденцией стало развитие алгоритмических абстракций. В это время мощность компьютеров быстро росла, а компьютерная индустрия позволила расширить области их применения, особенно в бизнесе. Главной задачей стало инструктировать машину, что делать: сначала прочти эти анкеты сотрудников, затем отсортируй их и выведи результаты на печать. Это было еще одним шагом к предметной области и от конкретной машины. В конце 60-х гг. с появлением транзисторов, а затем интегральных схем, стоимость компьютеров резко снизилась, а их производительность росла почти экспоненциально. Появилась возможность решать все более сложные задачи, но это требовало умения обрабатывать самые разнообразные типы данных. Такие языки как ALGOL-68 и затем Pascal, стали поддерживать абстракцию данных. Программисты смогли описывать свои собственные типы данных. Это стало еще одним шагом приближения к предметной области и ухода от привязки к конкретной машине.

70-е гг. знаменовались безумным всплеском активности: было создано около двух тысяч различных языков и их диалектов. Неадекватность более ранних языков написанию крупных программных систем стала очевидной, поэтому новые языки имели механизмы, устраняющие это ограничение. Лишь немногие из этих языков смогли выжить (попробуйте найти свежий учебник по языкам Fred, Chaos, Tranquil), однако многие их принципы нашли отражение в новых версиях более ранних языков. Таким образом, мы получили языки Smalltalk (новаторски переработанное наследие Simula), Ada (наследник ALGOL-68 и Pascal с элементами Simula, Alphard и CLU), CLOS (объединивший Lisp, LOOPS и Flavors), C++ (возникший от брака С и Simula) и Eiffel (произошел от Simula и Ada). Наибольший интерес для дальнейшего изложения представляет класс языков, называемых объектными и объектно-ориентированными, которые в наибольшей степени отвечают задаче объектно-ориентированной декомпозиции программного обеспечения.

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

– это инструмент проектирования;

– это средство человеческого восприятия;

– это средство управления компьютером.

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

Языки программирования были сгруппированы в четыре поколения по признаку поддерживаемых ими абстракций: математические, алгоритмические, ориентированные на данные, объектно-ориентированные. Самые последние достижения в области развития языков программирования связаны с объектной моделью. К настоящему времени насчитывается более сотни различных объектных и объектно-ориентированных языков. Объектными принято называть языки, которые поддерживают абстракции данных и классы. Объектно-ориентированные - это объектные языки программирования, которые поддерживают наследование и полиморфизм.

Общим предком практически всех используемых сегодня объектных и объектно-ориентированных языков является язык Simula, созданный в 1960 году Далем, Мюрхогом и Ныгардом. Язык Simula основывался на идеях ALGOL, но был дополнен механизмом наследования и инкапсуляции. Но еще более существенно то, что язык Simula, предназначенный для описания систем и моделирования, ввел дисциплину написания программ, отражающих словарь предметной области.

РАЗРАБОТКА АЛГОРИТМОВ



Поделиться:


Последнее изменение этой страницы: 2017-02-08; просмотров: 616; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.10.14 (0.005 с.)