ВВЕДЕНИЕ
I. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
1.1. ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
1.2. СУЩНОСТЬ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА К ПРОГРАММИРОВАНИЮ
II. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
2.1. SIMULA 67
2.2. SMALLTALK
2.3. ПРОДУКТЫ, ОСНОВАННЫЕ НА ЯЗЫКЕ СИ
2.3.1. C++
2.3.2. OBJECTIVE-C
2.3.3. ДРУГИЕ ПРОДУКТЫ, ОСНОВАННЫЕ НА СИ
2.4. ПРОДУКТЫ, ОСНОВАННЫЕ НА ЛИСПЕ
2.5. EIFFEL
2.6. ЯЗЫКИ, ОСНОВАННЫЕ НА ПАСКАЛЕ
2.7. ЯЗЫКИ, ПОДДЕРЖИВАЮЩИЕ АБСТРАКЦИЮ ДАННЫХ
2.7.1. ADA
2.7.2. MODULA-2
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
ВВЕДЕНИЕ
Вопросы реализации программного обеспечения, разработка которого велась с применением одной из объектно-ориентированных методологий, рассматриваются в разделе 5. Реализация программного обеспечения связана с использованием одного из языков программирования. Показано, что наиболее удобными для реализации программных систем, разработанных в рамках объектно-ориентированного подхода, являются объектно-ориентированные языки программирования, хотя возможна реализация и на обычных (не объектно-ориентированных) языках (например, на языке C и на языке Fortran).
Объектно-ориентированные языки программирования наиболее популярны в последнее время среди программистов, так как они позволяют использовать преимущества объектно-ориентированного подхода не только на этапах проектирования и конструирования программных систем, но и на этапах их реализации, тестирования и сопровождения.
Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время.
Однако современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran). Прохладному отношению к языку Simula 67 способствовало и то обстоятельство, что он был реализован как интерпретируемый (а не компилируемый) язык, что было совершенно неприемлемым в 60-е годы, так как интерпретация связана со снижением эффективности (скорости выполнения) программ.
Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др. Эти языки так и остались экспериментальными, но в результате их исследования были разработаны современные объектно-ориентированные языки программирования: C++, Smalltalk, Eiffel и др.
Наиболее распространенным объектно-ориентированным языком программирования безусловно является C++. Свободно распространяемые коммерческие системы программирования C++ существуют практически на любой платформе. Широко известна свободно распространяемая система программирования G++, которая дает возможность всем желающим разобрать достаточно хорошо и подробно прокомментированный исходный текст одного из образцовых компиляторов языка C++. Завершается работа по стандартизации языка C++: последний Draft стандарта C++ выпущен в июне 1995 г. (он доступен по Internet).
I. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
1.1. ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
Технология программирования - это комплекс методов и средств разработки (написания) программ и закономерность использования этих методов и средств.
На ранних этапах развития программирования какая-либо технология программирования отсутствовала, ведь программы писались в виде последовательностей машинных команд.
Начальными шагами в разработке технологии были представления программы в виде последовательности операторов. Написанию последовательности машинных команд предшествовало составление операторной схемы, отражающей последовательность операторов и переходы между ними. Операторный подход позволил разработать первые программы для автоматизации составления программ - так называемые составляющие программы.
Программы стали увеличиваться и поэтому появилась необходимость выделять их отдельные части ¬¬- они оформлялись как подпрограммы. Часть таких подпрограмм объединялась в библиотеки, из которых подпрограммы можно было включать в рабочие программы и затем вызывать из рабочих программ. Это послужило началу процедурного программирования. В процедурном программировании самая большая программа являла собой комплекс других подпрограмм ( процедур). Одна из подпрограмм являлась главной, и с нее начиналось выполнение программы.
Первые языки программирования Фортран и Алгол-58 были созданы в 1958 году. Фортран представлял собой главную программу и определённое количество подпрограмм и функций. Алгол 58 и его последующая версия Алгол-60 был единой программой с блочной структурой. У неё был главный блок и дополнительные встроенные блоки подпрограмм и функций. Компиляторы для Фортрана обеспечивали раздельную трансляцию процедур и последующее их объединение в рабочую программу, первые компиляторы для Алгола предполагали, что транслируется сразу вся программа, раздельная трансляция процедур не обеспечивалась.
Процедурный подход потребовал структурирования будущей программы, разделения ее на отдельные процедуры. При разработке отдельной процедуры о других процедурах требовалось знать только их назначение и способ вызова. Это привело к возможности работать с отдельными процедурами, при этом не трогать оставшиеся части программы. Это значительно сократило затраты труда и времени, которое отводилось на разработку и усовершенствование программ. В последующем разрабатывалось структурное программирование, при котором программа в целом и отдельные процедуры рассматривались как последовательность канонических структур: линейных участков, циклов и разветвлений.
II. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ.
2.1. SIMULA 67
В компании Norwegian Computing Centre в начале 60-х годов был разработан язык Симула. Он является начальным языком, от которого в последующем были разработаны все объектно-ориентированные языки. Синтаксис языка заимствован из Алгола-60. Новшествами этого языка были понятия объекта, класса и наследования. Симула не навязывает строгую инкапсуляцию данных и не заботится о деталях реализации. Внешние интерфейсы можно не менять, лишь перекомпилировать модули в отдельности. Проверка типов осуществляется во время компиляции. Сборка мусора осуществляется системой поддержки работающей программы.
Объекты могут действовать независимо друг от друга, предоставляя возможность выполнения квазипараллельных вычислений. Можно приостановить действие объекта с его последующим возобновлением. Средства работы со списками, графика и моделирование дискретных событий добавляется в язык с помощью встроенных классов.
Среда
Переносимая система Simula (S-Port) содержит независимый пакет, состоящий из компилятора, генерирующего промежуточный язык S-code, систему поддержки работающей программы и символьного отладчика. Также есть система, зависимая от целевой машины, содержащая компилятор, транслирующий S-code в целевой код, и набор программ интерфейса. Планируется создать дополнительные средства и библиотеку предопределенных модулей.
Поставщики
Первая реализации на Univac 1107 появилась в начале 70-х гг. С этих пор язык был реализован на большинстве платформ, от больших ЭВМ до персоналок. В настоящее время Simula развивается и выступает на рынке под названием Simula a.s., установленным норвежской фирмой в 1984 г.
Переносимая система Simula (S-Port) - является основой многочисленных версий, включая PC Simula.
Сформированная в 1972 г. организация Simula Standards Group осуществляет контроль за развитием языка: самая последняя версия была выпущена в 1986г. Изменения в язык вносит Simula Developement Group. Кроме того, есть ассоциация пользователей языка Simula.
ЗАКЛЮЧЕНИЕ
Ведущие продавцы программного обеспечения для персональных компьютеров активно пользуются объектно-ориентированными языками и средств. Microsoft считается создателем объектно-ориентированных иерархий классов для Word и Excel.
Позиция Microsoft стала ясна после нескольких публикаций и интервью. Корпорация стала на сторону поддержки объектно-ориентированных расширений существующих языков, включая Basic. Bill Gates также поразил всех заявлением о том, что он не видит будущего за введением новых объектно-ориентированных языков после 1988 г., но ОС будущего должны иметь объектно-ориентированную поддержку: "Вы не поднимите всю глубину прикладных задач, работая только с ними, до тех пор, пока мы не сделаем это внутри ОС". Это будет достигнуто дополнительными возможностями OS/2.
Практически все объектно-ориентированные языки программирования являются развивающимися языками, их стандарты регулярно уточняются и расширяются. Следствием этого развития являются неизбежные различия во входных языках компиляторов различных систем программирования. Наиболее распространенными в настоящее время являются системы программирования Microsoft C++ , Microsoft Visual C++ и системы программирования фирмы Borland International.
1. А.Г. Иванов «Объектно-ориентированные системы: Состояние и перспективы», Москва 1992 г.
2. Подбельский В.В. Язык С++. – М.:Финансы и статистика, 1996.
3. Объектно-ориентированные языки программирования, [http://www.citforum.ru/win/programming/oop_rsis/glava1_2.shtml].
4. Объектно-ориентированное программирование, (http://www.object.newmail.ru/index.html).