Страница: 11/13
ExperCommon Lisp
ExperTelligence разрабатывает и выставляет на рынок объектно - ори
тированное расширение ExperLisp для Macintosh. Поддерживае
Macintosh Toolbox и MacApp.
2.5. EIFFEL
Язык
Eiffel - это запатентованный язык, разработанный и продаваемый ф
мой Interactive Software Engineering. Его разработка велась под влиянием объектно-ориентированных понятий языка Симула, объединенных с синт
сисом языка Ада и современными методами технологии программирования. Кроме поддержки классов и наследования, Eiffel вводит ряд новых средств:
утверждения для выражения формальных свойств классов: это могут быть
p
condition
,
postcondition
или
invariant
;
обобщенные параметры для представления типов в объявлениях классов;
средство rename для поддержки множественного наследования р
решением конфликтов имен в случае, когда у класса более одного
дителя;
средство переопределения в нижестоящих классах, позволяющее осуществлять динамическое связывание вопреки статической пров
ки типов;
отложенные программы, реализация которых находится только в нижних кл
сах.
Размещение и освобождение памяти осуществляется системой времени выполнения, включающей пошаговый сборщик мусора. Есть интерфейс с другими языками с помощью понятия external, выдающего список каждой внешней подпрограммы, используемой в программе.
Среда
Система Eiffel состоит из компилятора и набора инструментальных средств. Они содержат средства автоматической конфигурации, отладки, проверки утверждения во время работы программы, документирования,
тимизирующий постпроцессор и библиотеку базовых классов для общих структур данных (списков, деревьев, стеков, хэш-таблиц). Постпроцессор может генерировать отдельный пакет на Си, который можно использовать для поставки на системы, не поддерживающие Eiffel.
2.6. ЯЗЫКИ, ОСНОВАННЫЕ НА ПАСКАЛЕ
2.6.1. ACTOR
Actor - это объектно-ориентированные язык и среда, основанные на П
кале и работающие под Microsoft Windows. Он соединяет систему управ
ния динамической памятью и автоматическую сборку мусора. Actor был с
дан группой Whitewater Group. Он используется для создания отдельных прикладных задач для Windows, которые можно скомпоновать с существ
щими программами на
Microsof
.
2.6.2. OBJECT PASCAL
Object Pascal - это объектно-ориентированное расширение Паскаля, р
работанное Н. Виртом совместно с командой с фирмы Apple. Классы (типы) реализованы как расширение паскалевской структуры RECORD. В Object Pascal они могут содержать как поля данных, так и поля методов. Методы определяются как процедуры или функции Паскаля, определяемые по имени класса. Сообщения посылаются с помощью обычных конструкций Паскаля для определения поля.
Object Pascal использовался для внутренних разработок фирмы Apple. Библиотека классов Object Pascal составляет основу интегрированной сис
мы разработки прикладных программ MacApp. Язык свободно распростра
ется [Schmucker 1986].
2.7. ЯЗЫКИ, ПОДДЕРЖИВАЮЩИЕ АБСТРАКЦИЮ ДАННЫХ
Раздаются возгласы, что ряд других языков также либо объектно - о
ентированные, либо поддерживают объектно-ориентированные понятия. В этом разделе рассматриваются два языка, имеющие существенную подде
ку программистов - Modula-2 и Ada, которые сравниваются с вышепривед
ными объектно-ориентированными языками. В таблице С2.4 подведены и
ги основных средств этих языков и основных коммерческих объектно-ориентированных языков.
2.7.1. ADA
Ada был создан в Министерстве Обороны США для использования во встроенных компьютерных системах. Его использование обязательно в государственных контрактах в некоторых областях как в США, так и в Великобритании. Благодаря этому такие системы являются естественными прикладными задачами для объектно - риентированных понятий: значительные усилия были затрачены на доказательство того, что Ада поддерживает ООС.
Новые типы данных (классы) можно задать в языке Ада как пакеты. Пакет содержит как общую, так и частную информацию. Пользовательский интерфейс задан как спецификация пакета, в то время как реализация задается отдельно в теле пакета, предоставляя эффективный механизм инкапсуляции. Связывание происходит во время компиляции, когда явно проверяются типы всех данных. В пакете можно переопределять операторы, давая новый смысл традиционным операторам типа +. Ада не позволяет типам наследовать информацию или поведение от других типов, хотя есть возможность использовать разновидность наследования - обобщение (genericity), позволяющее экспортировать ограниченное число частных типов и операций.
Реферат опубликован: 8/06/2008