МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Объектно-ориентированные языки програмирования

    С++ отойдет от объектно-ориентированного сообщества: в 1988 ассоциацией

    пользователей UNIX (Usenix) была созвана отдельная конференция по С++, а

    также был создан новый журнал The C++ Report издателями журнала Journal of

    Object-Oriented Programming.

    Среда

    С++ - это язык программирования, а не среда разработки программ типа

    Smalltalk. Поэтому ему нужны средства поддержки работы программиста: сюда

    входят расширения существующих средств языки Си (редакторы, отладчики) и

    средства поддержки работы с объектами (окна просмотра классов). В свою

    очередь, эти средства должны соединяться со средой программирования.

    Быстрый рост рынка С++ предоставляет хорошие перспективы продавцам, имеющим

    продукты для С++. К ним относятся, например, существующие продавцы

    компиляторов и трансляторов С++. Один из интересных проектов в этой области

    - соглашение между ParcPlace Systems и Glockenspiel о разработке Cynergy -

    версии среды Smalltalk, поддерживающей программы на С++.

    Поставщики

    AT&T поставляет транслятор, обрабатывающий программу на С++ и

    генерирующий исходный код Ansi C, который затем компилируется нормальным

    образом. Транслятор пока еще остается продуктом AT&T без сопровождения.

    Лицензию можно купить прямо на фирме. Кроме этого, транслятор перенесен на

    разнообразные платформы фирмой Glockenspiel (Дублин). Несколько организаций

    имеют подлицензии: Oasys для рабочих станций (Sun, Apollo), Guidelines и

    Lifeboat для IBM PC.

    Две другие фирмы, Zortech и Oregon Software, недавно выпустили

    компиляторы С++. Они больше основаны на справочном руководстве [Stroustrup

    1986], а не на исходных текстах, и не имеют лицензии от AT&T.

    2.3.2. OBJECTIVE-C

    Язык

    Другим ведущим продавцом продуктов, основанных на Си, является

    Stepstone, бывший PPI. Objective-C - это гибридный язык, состоящий из

    подмножества Ansi C и основных положений Smalltalk-80. Тексты программ

    могут содержать чистые операторы языка Си или объектно-ориентированные

    конструкции. Объекты задаются новым типом данных, называемым id. Сообщения

    посылаются объектам с помощью модифицированной версии синтаксиса языка

    Smalltalk. Новые объекты создаются посылкой сообщения new специальному типу

    объекта, называемому объектом-производителем. Например, новый экземпляр

    класса Pen создается с помощью следующего текста:

    extern id Pen;

    id aPen;

    aPen = [Pen new];

    Objective-C не поддерживает множественное наследование и автоматическую

    сборку мусора, однако, тестовая версия последней создана и протестирована

    фирмой Stepstone [Cox 1986].

    Компилятор Objective-C генерирует исходный текст на языке Си. По умолчанию

    используется динамическое связывание методов, однако, для повышения

    надежности и эффективности можно выбрать статическое связывание.

    Среда

    Кроме компилятора, фирма Stepstone предоставляет (необязательно)

    интерактивную среду программирования Objective-C Interpreter. Она

    поддерживает целый ряд бычных действий программиста: написание программ,

    компиляцию, связывание, тестирование и отладку. Она включает команды для

    вычисления выражений, вывода данных, установки контрольных точек, поиска

    каталогов файла, редактирования командного файла, проверки объектов, вывода

    иерархии классов и наследуемых методов.

    Также предоставляется две библиотеки классов для поддержки основного и

    графического пользовательского интерфейса.

    2.3.3 ДРУГИЕ ПРОДУКТЫ, ОСНОВАННЫЕ НА СИ

    C-talk

    C-talk - это запатентованный язык для MS-DOS и Apple Macintosh, созданный

    отделом программных продуктов фирмы CNS Inc, специализирующейся на

    продуктах диагностики для медицины. Синтаксис языка основан на Си с

    дополнительными конструкциями, поддерживающими классы и методы,

    наследование и посылку сообщений. Предоставляется набор основных классов

    для структур данных типа Buffer, Stream и ByteArray. Он поставляется в виде

    пакета, содержащего препроцессор для преобразования файлов на C-talk в

    исходные тексты на Си, и среды программирования, называемой C-talk Browser,

    основанной на оконном интерфейсе. Существуют средства редактирования файлов

    и просмотра классов и методов.

    Complete C

    Complete Computer Corporation, New York работает над созданием объектно -

    ориентированной среды разработки программ, называемой Complete C. Она

    состоит из прекомпилятора, генерирующего стандартный Ansi С из объектно-

    ориентированного Си, набора инструментов (отладчика, компоновщика,

    генератора документов) и библиотеки основных классов. Complete C работает

    под MS-DOS, OS/2 и Unix.

    2.4. ПРОДУКТЫ, ОСНОВАННЫЕ НА ЛИСПЕ

    Объектно-ориентированные расширения Лиспа предназначены в основном для

    сообщества исследователей искусственного интеллекта. Некоторые из этих

    расширений были первоначально созданы в университетах. Лидерами являются

    две самостоятельные версии: New Flavors, разработанный в Symbolics, и

    CommonLoops, разработанный в Xerox PARC. Они составили базу для Common Lisp

    Object System (CLOS).

    Отличительной особенностью некоторых систем, основанных на Лиспе, является

    способ управления взаимодействием объектов. В отличие от традиционных

    вызовов функций, здесь первый аргумент соответствует объекту-приемнику.

    Фактически вызываемая функция зависит от вида объекта, обозначенного этим

    первым аргументом, в то время как имя функции эквивалентно имени сообщения.

    CommonLoops

    Loops - это многопарадигмовая система для обработки знаний и

    программирования, разработанная в Xerox PARC. В представлении знаний

    используется объектно-ориентированный подход. поддерживающий классы и

    наследование. Объектно - ориентированная часть Loops позднее была оформлена

    как пакет в составе продукта Common Lisp, более известного как CommonLoops.

    Характеристики языка:

    частичная интеграция системы типа Common Lisp с классами CommonLoops;

    использование синтаксиса обобщенных функций вместо посылки сообщений;

    способность определять методы, различающиеся не только по первому аргументу

    ( так называемые мультиметоды);

    поддержка реализации других объектно-ориентированных языков с помощью ядра

    метаклассов, набора предопределенных классов, составляющих оставшуюся часть

    системы.

    Опытная реализация, названная Portable CommonLisp (PCL), распространена для

    небольшого сообщества пользователей. Она используется в Hewlett-Packard

    Laboratories для реализации другого объектно - ориентированного языка -

    CommonObjects [Kempf, Harris, D'Souza and Snyder 1987].

    New Flavors

    Flavors - это расширение MacLisp/ZetaLisp. Это система посылки сообщений,

    используемая в коммерческих целях фирмами Symbolics и TI Explorers. New

    Flavors - это производная от Flavors, совместимая с ней, но использующая

    синтаксис обобщенных функций.

    Common Lisp Object System (CLOS)

    В 1986 г. группы с фирм Xerox PARC и Symbolics, а также группа с фирмы

    Lucid, начала работу над проектом спецификации для CLOS, представленный на

    рассмотрение технической рабочей группе Ansi, X3J13. Эта спецификация

    одобрена для вероятного принятия в качестве части развивающегося стандарта

    Common Lisp. Цели CLOS: использование набора уровней для независимых друг

    от друга действий языка программирования; сделать как можно больше в рамках

    первого класса Object System (объект первый класс - это объект, который

    можно явно создать и работать с ним); желание избавиться от сложного

    поведения для упрощения понятий и их объяснений; сделать спецификацию языка

    как можно более точной [DeMichiel and Gabriel 1987]. Основные средства

    CLOS:

    три слоя языка: интерфейс для объектно-ориентированного программирования,

    функциональный интерфейс для Object System, и инструменты, позволяющие

    программисту создавать свои собственные объектно-ориентированные языки;

    использование обобщенных функций вместо посылки сообщений; при таком

    подходе объекты и функции являются анонимными объектами: ни один из них не

    является собственностью другого;

    поддержка множественного наследования: список старшинства классов

    используется для решения потенциальных конфликтов между наследуемой

    структурой и поведением; средство комбинации методов для получения значений

    обобщенной функции - задание способа комбинации методов, применимых к

    набору аргументов (в результате множественного наследования);

    гарантия, что обобщенные функции и классы являются объектами первого класса

    (т.е. они могут храниться в любом месте, где разрешено хранение обобщенных

    объектов).

    Delphi Common Lisp

    Delphi - это итальянская фирма, считающая себя первой в реализации

    стандарта для CLOS. Последний выступает как часть продукта Delphi Common

    Lisp (DCL), основанного на расширенной версии Kyoto Common Lisp.

    Разработано три расширения CLOS:

    поддержка традиционных систем;

    поддержка постоянной памяти;

    поддержка параллельности.

    Allegro Common Lisp

    Allegro CL - это реализация Common Lisp, разработанная и выставленная на

    рынок фирмой Franz Inc на широком наборе аппаратуры. В настоящее время он

    включает объектно-ориентированные расширения для поддержки Flavors и

    Portable CommonLoops. Поддержка стандарта CLOS буде реализована как только

    он станет доступным.

    ExperCommon Lisp

    ExperTelligence разрабатывает и выставляет на рынок объектно -

    ориентированное расширение ExperLisp для Macintosh. Поддерживает Macintosh

    Toolbox и MacApp.

    2.5. EIFFEL

    Язык

    Eiffel - это запатентованный язык, разработанный и продаваемый фирмой

    Interactive Software Engineering. Его разработка велась под влиянием

    объектно-ориентированных понятий языка Симула, объединенных с синтаксисом

    языка Ада и современными методами технологии программирования. Кроме

    поддержки классов и наследования, Eiffel вводит ряд новых средств:

    утверждения для выражения формальных свойств классов: это могут быть

    preconditions, postconditions или invariants;

    обобщенные параметры для представления типов в объявлениях классов;

    средство rename для поддержки множественного наследования разрешением

    конфликтов имен в случае, когда у класса более одного родителя;

    средство переопределения в нижестоящих классах, позволяющее осуществлять

    динамическое связывание вопреки статической проверки типов;

    отложенные программы, реализация которых находится только в нижних классах.

    Размещение и освобождение памяти осуществляется системой времени

    выполнения, включающей пошаговый сборщик мусора. Есть интерфейс с другими

    языками с помощью понятия external, выдающего список каждой внешней

    подпрограммы, используемой в программе.

    Среда

    Система Eiffel состоит из компилятора и набора инструментальных средств.

    Они содержат средства автоматической конфигурации, отладки, проверки

    утверждения во время работы программы, документирования, оптимизирующий

    постпроцессор и библиотеку базовых классов для общих структур данных

    (списков, деревьев, стеков, хэш-таблиц). Постпроцессор может генерировать

    отдельный пакет на Си, который можно использовать для поставки на системы,

    не поддерживающие Eiffel.

    2.6. ЯЗЫКИ, ОСНОВАННЫЕ НА ПАСКАЛЕ

    2.6.1. ACTOR

    Actor - это объектно-ориентированные язык и среда, основанные на Паскале и

    работающие под Microsoft Windows. Он соединяет систему управления

    динамической памятью и автоматическую сборку мусора. Actor был создан

    группой Whitewater Group. Он используется для создания отдельных прикладных

    задач для Windows, которые можно скомпоновать с существующими программами

    на Microsoft C.

    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), позволяющее экспортировать

    ограниченное число частных типов и операций.

    Ада может использоваться для разработки программ, основанных на объектах.

    Для проектов в военной и аэрокосмической областях другого выбора и нет.

    Пользователи, не ограниченные этими областями, могут с удовлетворением

    отметить, что их требования могут быть выполнены другим объектно-

    ориентированным языком типа 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.

    Список литературы

    А. Г. Иванов «Объектно-ориентированные системы: Состояние и перспективы»,

    Москва 1992 г.

    Подбельский В.В. Язык С++. – М.:Финансы и статистика, 1996.

    Объектно-ориентированные языки программирования,

    [http://www.citforum.ru/win/programming/oop_rsis/glava1_2.shtml]

    Объектно-ориентированное программирование,

    (http://www.object.newmail.ru/index.html)

    Страницы: 1, 2, 3


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.