Автор: Пользователь скрыл имя, 25 Февраля 2011 в 11:30, курсовая работа
В настоящее время можно выделить несколько типов языков программирования. Одним из важнейших признаков их классификации является принадлежность их к одному из стилей, основными из которых являются следующие стили:
• процедурный,
• функциональный,
• логический,
• объектно-ориентированный.
I.ВВЕДЕНИЕ 3
II. ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ МЕТОДОЛОГИЯ ПРОГРАММИРОВАНИЯ 6
III. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ 12
SMALLTALK 12
C++ 14
COMMON LISP OBJECT SYSTEM (CLOS) 15
ADA 16
EIFFEL 17
JAVA 18
OBJECT PASCAL 18
СИСТЕМА ВИЗУАЛЬНОГО ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОЕКТИРОВАНИЯ DELPHI. 19
IV.ЗАКЛЮЧЕНИЕ 24
ЛИТЕРАТУРА И ССЫЛКИ 26
ПРИЛОЖЕНИЕ 27
Характеристики C++ приведены в табл. 3.
Абстракции | Переменные
экземпляра Методы экземпляра Переменные класса Методы класса |
Да Да Да Да |
Инкапсуляция | Переменных Методов |
Открытые,
защищенные, закрытые Открытые, защищенные, закрытые |
Модульность | Разновидности модулей | файл |
Иерархии | Наследование Шаблоны Метаклассы |
Множественное Да Нет |
Типизация | Сильная
типизация Полиморфизм |
Да Да (одиночный) |
Параллельность | Многозадачность | Непрямая (посредством классов) |
Сохраняемость | Долгоживущие объекты | Нет |
Таблица 3. C++. [1]
В начале 80-х годов под воздействием идей объектно-ориентированного программирования возникла серия новых диалектов Lisp, многие из которых были ориентированы на представление знаний. Успех в стандартизации Common Lisp стимулировал попытки стандартизировать объектно-ориентированные диалекты в 1986 году.
Поскольку новый диалект должен был стать надстройкой над Common Lisp, он получил название Common Lisp Object System (Объектная система Common Lisp) или, сокращенно, - CLOS. Серьезное влияние на проект CLOS оказали языки NewFlavors и CommonLoops. После двухлетней работы, в 1988 году была опубликована полная спецификация CLOS.
CLOS должен:
Обзор характеристик
CLOS можно найти в табл. 4.
Не поддерживая
непосредственно механизм долгоживущих
объектов, CLOS имеет расширения с протоколом
метаобъектов, реализующих этот механизм
.
Абстракции | Переменные
экземпляра Методы экземпляра Переменные класса Методы класса |
Да Да Да Да |
Инкапсуляция | Переменных Методов |
Чтение,
запись, доступ Открытые |
Модульность | Разновидности модулей | Пакет |
Иерархии | Наследование Шаблоны Метаклассы |
Множественное Нет Да |
Типизация | Сильная
типизация Полиморфизм |
Возможна Да (множественный) |
Параллельность | Многозадачность | Да |
Сохраняемость | Долгоживущие объекты | Нет |
Таблица 4. CLOS. [1]
В 1983 году под эгидой Министерства Обороны США был создан язык Ada. Язык замечателен тем, что очень много ошибок может быть выявлено на этапе компиляции. Кроме того, поддерживаются многие аспекты программирования, которые часто отдаются на откуп операционной системе (параллелизм, обработка исключений). В 1995 году был принят стандарт языка Ada 95, который развивает предыдущую версию, добавляя в нее объекно-ориентированность и исправляя некоторые неточности. Оба этих языка не получили широкого распространения вне военных и прочих крупномасштабных проектов (авиация, железнодорожные перевозки). Основной причиной является сложность освоения языка и достаточно громоздкий синтаксис.
Непосредственными предшественниками Ada являются Pascal и его производные, включая Euclid, Lis, Mesa, Modula и Sue. Были использованы некоторые концепции ALGOL-68, Simula, CLU и Alphard.
Разработчики Ada прежде всего беспокоились о:
В табл. 5 приведены
основные характеристики языка Ada с
точки зрения объектного подхода.
Абстракции | Переменные
экземпляра Методы экземпляра Переменные класса Методы класса |
Да Да Нет Нет |
Инкапсуляция | Переменных Методов |
Открытые,
закрытые Открытые, закрытые |
Модульность | Разновидности модулей | Пакет |
Иерархии | Наследование Шаблоны Метаклассы |
Нет (входит
в Ada9x) Да Нет |
Типизация | Сильная
типизация Полиморфизм |
Да Нет (входит в Ada9x) |
Параллельность | Многозадачность | Да |
Сохраняемость | Долгоживущие объекты | Нет |
Таблица 5. Ada. [1]
Автор Eiffel Бертран Мейер (Bertrand Meyer) создавал не только язык объектно-ориентированного программирование, но и инструмент проектирования программ.
Несмотря на сильное влияние Simula, Eiffel - вполне самостоятельный объектно-ориентированный язык со своей собственной средой разработки.
Eiffel поддерживает
динамическое связывание и
Неотъемлемой частью языка являются пред- и постусловия, то есть утверждения, которые должны выполняться при входе в метод и выходе из него. Нарушение утверждения вызывает исключительную ситуацию. Ее можно перехватить, обработать и попробовать вызвать тот же метод еще раз.
Eiffel поощряет
хорошее программирование, добротную
спецификацию классов, сильную
типизацию и повторное
Eiffel предоставляет законченную среду разработки программ, включая специальный редактор с выделением синтаксиса, генератор документации, библиотеки классов и броузер. Кроме того, поддерживаются средства управления кодом и сборкой программ.
Свойства языка
показаны в табл. 6.
Абстракции | Переменные
экземпляра Методы экземпляра Переменные класса Методы класса |
Да Да Нет Нет |
Инкапсуляция | Переменных Методов |
Закрытые Открытые, закрытые |
Модульность | Разновидности модулей | Блок (unit) |
Иерархии | Наследование Шаблоны Метаклассы |
Множественное Да Нет |
Типизация | Сильная
типизация Полиморфизм |
Да Да |
Параллельность | Многозадачность | Нет |
Сохраняемость | Долгоживущие объекты | Нет |
Таблица 6. Eiffel. [1]
С 1995 года стал широко распространяться новый объектно-ориентированный язык программирования Java, ориентированный на сети компьютеров и, прежде всего, на Internet. Синтаксис этого языка напоминает синтаксис языка C++, однако эти языки имеют мало общего. Java интерпретируемый язык: для него определены внутреннее представление (bytecode) и интерпретатор этого представления, которые уже сейчас реализованы на большинстве платформ. Интерпретатор упрощает отладку программ, написанных на языке Java, обеспечивает их переносимость на новые платформы и адаптируемость к новым окружениям. Он позволяет исключить влияние программ, написанных на языке Java, на другие программы и файлы, имеющиеся на новой платформе, и тем самым обеспечить безопасность при выполнении этих программ. Эти свойства языка Java позволяют использовать его как основной язык программирования для программ, распространяемых по сетям (в частности, по сети Internet).
Object Pascal создавался сотрудниками компании Apple Computer (некоторые из которых были участниками проекта Smalltalk) совместно с Никлаусом Виртом (Niklaus Wirth), создателем языка Pascal. Object Pascal известен с 1986 года и является первым объектно-ориентированным языком программирования, который был включен в Macintosh Programmer's Workshop (MPW), среду разработки для компьютеров Macintosh фирмы Apple.
В этом языке нет методов класса, переменных класса, множественного наследования и метаклассов. Эти механизмы исключены специально, чтобы сделать язык простым для изучения начинающими "объектными" программистами.
В табл. 2 приведены общие характеристики Object Pascal.
Абстракции | Переменные
экземпляра Методы экземпляра Переменные класса Методы класса |
Да Да Нет Нет |
Инкапсуляция | Переменных Методов |
Открытые Открытые |
Модульность | Разновидности модулей | Модуль (unit) |
Иерархии | Наследование Шаблоны Метаклассы |
Одиночное Нет Нет |
Типизация | Сильная
типизация Полиморфизм |
Да Да (одиночный) |
Параллельность | Многозадачность | Нет |
Сохраняемость | Долгоживущие объекты | Нет |
Таблица 2. Object Pascal. [1]
В последние годы этот язык стал очень популярен благодаря системе Delphi фирмы Borland.
Появление Delphi не могло пройти незамеченным среди многочисленных пользователей компьютера. Оценки экспертов, изучающих возможности этого нового продукта фирмы Borland, обычно окрашены в восторженные тона. Основное достоинство Delphi состоит в том, что здесь реализованы идеи визуального программирования. Среда визуального программирования превращает процесс создания программы в приятное и легко понимаемое конструирование приложения из большого набора графических и структурных примитивов.
Информация о работе Объектно – ориентированные языки программирования