Объектно – ориентированные языки программированияРефераты >> Программирование и компьютеры >> Объектно – ориентированные языки программирования
Таблица 4. CLOS. [1]
Ada
В 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
Автор Eiffel Бертран Мейер (Bertrand Meyer) создавал не только язык объектно-ориентированного программирование, но и инструмент проектирования программ.
Несмотря на сильное влияние Simula, Eiffel - вполне самостоятельный объектно-ориентированный язык со своей собственной средой разработки.
Eiffel поддерживает динамическое связывание и статическую типизацию, тем самым обеспечивая гибкость интерфейсов классов в сочетании с безопасным использованием типов. В Eiffel есть несколько важных черт, поддерживающих более жесткий стиль программирования, в том числе параметризованные классы, утверждения и исключения. Мейер считает, что обобщенные классы хорошо дополняют наследование, учитывая горизонтальный уровень общности; новые классы на одном уровне иерархии можно создавать, используя тип в качестве параметра, а не плодя практически одинаковые подклассы.
Неотъемлемой частью языка являются пред- и постусловия, то есть утверждения, которые должны выполняться при входе в метод и выходе из него. Нарушение утверждения вызывает исключительную ситуацию. Ее можно перехватить, обработать и попробовать вызвать тот же метод еще раз.
Eiffel поощряет хорошее программирование, добротную спецификацию классов, сильную типизацию и повторное использование, как через наследование, так и через параметризацию. Формальная трактовка исключительных ситуаций позволяет жестко специфицировать интерфейсы классов при реализации.
Eiffel предоставляет законченную среду разработки программ, включая специальный редактор с выделением синтаксиса, генератор документации, библиотеки классов и броузер. Кроме того, поддерживаются средства управления кодом и сборкой программ.
Свойства языка показаны в табл. 6.
Абстракции |
Переменные экземпляра Методы экземпляра Переменные класса Методы класса |
Да Да Нет Нет |
Инкапсуляция |
Переменных Методов |
Закрытые Открытые, закрытые |
Модульность |
Разновидности модулей |
Блок (unit) |
Иерархии |
Наследование Шаблоны Метаклассы |
Множественное Да Нет |
Типизация |
Сильная типизация Полиморфизм |
Да Да |
Параллельность |
Многозадачность |
Нет |
Сохраняемость |
Долгоживущие объекты |
Нет |
Таблица 6. Eiffel. [1]
Java
С 1995 года стал широко распространяться новый объектно-ориентированный язык программирования Java, ориентированный на сети компьютеров и, прежде всего, на Internet. Синтаксис этого языка напоминает синтаксис языка C++, однако эти языки имеют мало общего. Java интерпретируемый язык: для него определены внутреннее представление (bytecode) и интерпретатор этого представления, которые уже сейчас реализованы на большинстве платформ. Интерпретатор упрощает отладку программ, написанных на языке Java, обеспечивает их переносимость на новые платформы и адаптируемость к новым окружениям. Он позволяет исключить влияние программ, написанных на языке Java, на другие программы и файлы, имеющиеся на новой платформе, и тем самым обеспечить безопасность при выполнении этих программ. Эти свойства языка Java позволяют использовать его как основной язык программирования для программ, распространяемых по сетям (в частности, по сети Internet).
Object Pascal
Object Pascal создавался сотрудниками компании Apple Computer (некоторые из которых были участниками проекта Smalltalk) совместно с Никлаусом Виртом (Niklaus Wirth), создателем языка Pascal. Object Pascal известен с 1986 года и является первым объектно-ориентированным языком программирования, который был включен в Macintosh Programmer's Workshop (MPW), среду разработки для компьютеров Macintosh фирмы Apple.
В этом языке нет методов класса, переменных класса, множественного наследования и метаклассов. Эти механизмы исключены специально, чтобы сделать язык простым для изучения начинающими "объектными" программистами.
В табл. 2 приведены общие характеристики Object Pascal.