Объектно-ориентированные языки програмированияРефераты >> Программирование и компьютеры >> Объектно-ориентированные языки програмирования
Новые типы данных (классы) можно задать в языке Ада как пакеты. Пакет содержит как общую, так и частную информацию. Пользовательский интерфейс задан как спецификация пакета, в то время как реализация задается отдельно в теле пакета, предоставляя эффективный механизм инкапсуляции. Связывание происходит во время компиляции, когда явно проверяются типы всех данных. В пакете можно переопределять операторы, давая новый смысл традиционным операторам типа +. Ада не позволяет типам наследовать информацию или поведение от других типов, хотя есть возможность использовать разновидность наследования - обобщение (genericity), позволяющее экспортировать ограниченное число частных типов и операций.
Ада может использоваться для разработки программ, основанных на объектах. Для проектов в военной и аэрокосмической областях другого выбора и нет. Пользователи, не ограниченные этими областями, могут с удовлетворением отметить, что их требования могут быть выполнены другим объектно-ориентированным языком типа Eiffel.
Таблица С2.4 Сравнение языков программирования
Язык
Скрытие
информации
Классы
Наследо-вание
Связы-вание
Сборка мусора
Инстру- ментарий
Simula |
да |
да |
един. |
стат. |
нет |
есть |
Smalltalk-80 |
да |
да |
един. |
динам. |
автом. |
полный |
С++ |
да |
да |
един.* |
оба |
нет |
нет |
Objective-C |
да |
да |
един.* |
оба |
нет |
есть |
Eiffel |
да |
да |
оба |
оба |
нет |
есть |
Ada |
да |
да |
нет |
стат. |
нет |
нет |
Modula-2 |
да |
нет |
нет |
стат. |
нет |
нет |
* множественное наследование в стадии разработки
2.7.2. MODULA-2
Modula-2, разработанная Н. Виртом, является прямым потомком языков Algol 60 и Pascal, и привлекает многих, обученных на традиции этих языков. Ее ключевое средство - принцип скрытия информации, заключающийся в отделении спецификации модуля от его реализации. Абстрактные типы данных могут быть определены как закрытые типы. Спецификация типа содержится в модуле с определением, который описывает тип данных и процедуры для доступа к нему. Программы, выполняющие эти процедуры, содержатся в модуле реализации. Как и в Аде, такое разделение служит в качестве механизма инкапсуляции. Однако Modula-2 более ограничивает, чем Ада, не разрешая ни переопределение, ни обобщение операций.
Появилось несколько статей, показывающих, как Modula-2 может быть использована для разработки объектно-ориентированных систем. Это требует существенной нагрузки на программиста, поскольку язык не поддерживает объектно-ориентированные средства, описанные в главе B1. Необходимость пользователей языков Algol-Pascal-Modula в средствах ООП могут быть удовлетворены, например, реализацией языка Modula-3, объектно-ориентированного потомка Modula-2, разработанного группой исследовательского центра фирм DEC и Olivetti в Калифорнии [Cardelli et al 1988].
ЗАКЛЮЧЕНИЕ
Ведущие продавцы ПО для персоналок являются активными пользователями объектно-ориентированных языков и средств. Microsoft считается создателем объектно-ориентированных иерархий классов для Word и Excel.
Позиция Microsoft стала ясна после нескольких публикаций и интервью. Компания поддержала объектно-ориентированные расширения существующих языков, включая Basic. Bill Gates также поразил всех заявлением о том, что он не видит будущего за введением новых объектно-ориентированных языков после 1988 г., но ОС будущего должны иметь объектно-ориентированную поддержку: "Вы не поднимите всю глубину прикладных задач, работая только с ними, до тех пор, пока мы не сделаем это внутри ОС" [Byte, 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)