МЕНЮ


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

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


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

    версий).

    Наиболее используемыми в настоящее время объектно-ориентированными

    языками являются Паскаль с объектами и Си++, причем наиболее развитые

    средства для работы с объектами содержатся в Си++.

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

    2.1. SIMULA 67

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

    разработанного в начале 60-х гг. в Norwegian Computing Centre. Синтаксис

    языка взят из Алгола-60. Основными новшествами были понятия объекта, класса

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

    заботится о деталях реализации. Модули можно перекомпилировать по

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

    время компиляции. Сборка мусора осуществляется системой поддержки

    работающей программы.

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

    возможность выполнения квазипараллельных вычислений. Действие объекта можно

    приостановить и возобновить позже. Встроенные классы добавляют в язык

    средства работы со списками, графику и моделирование дискретных событий.

    Среда

    Переносимая система Simula (S-Port) содержит независимый пакет,

    состоящий из компилятора, генерирующего промежуточный язык S-code, систему

    поддержки работающей программы и символьного отладчика. Также есть система,

    зависимая от целевой машины, содержащая компилятор, транслирующий S-code в

    целевой код, и набор программ интерфейса. Планируется создать

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

    Поставщики

    Первая реализации на Univac 1107 появилась в начале 70-х гг. С этих пор

    язык был реализован на большинстве платформ, от больших ЭВМ до персоналок.

    В настоящее время Simula развивается и выступает на рынке под названием

    Simula a.s., установленным норвежской фирмой в 1984 г.

    Переносимая система Simula (S-Port) - является основой многочисленных

    версий, включая PC Simula. В табл. С2.1 приводятся основные реализации и

    поставщики. Системы DEC, Univac и IBM установлены в более, чем 300 точках

    Европы и Северной Америки.

    Таблица С2.1а. Реализации языка Simula

    |Платформа |Поставщик |

    |CDC 3300 |Academy of Sciences, Budapest |

    |CDC Cyber |Control Data a.s., Oslo, Norway |

    |Cromemco под Cromix |Omnibus a.s., Sweden |

    |Data General Eclipse |Lund Software, Sweden |

    |DEC 10/20 |Stockholm Computing Centre QZ, Sweden |

    |IBM 370 |Simula a.s., Oslo, Norway |

    |ND 10/100 |Norsk Data, Oslo, Norway |

    |Siemens 75xx под BS2000/3000 |Simula a.s., Oslo, Norway |

    Таблица С2.1b. Реализации переносимых систем Simula

    |Платформа |Поставщик |

    |Apollo |Simprog AB, Stockholm, Sweden |

    |HP 900/300 |Simprog AB, Stockholm, Sweden |

    |IBM PC/XT (AT) |Simula a.s., Oslo, Norway |

    |ICL 2900 |University of Edinburgh, Scotland |

    |Mach-S |Simulation Technology, Oslo, Norway |

    |Masscomp |Simprog AB, Stockholm, Sweden |

    |ND 500 |Norsk Data, Oslo, Norway |

    |Prime |Prime Scandinavia, Stockholm, Sweden |

    |Sperry 1100 |Unisys Corp., USA |

    |Sun |Simprog AB, Stockholm, Sweden |

    |Vax под Unix |Simprog AB, Stockholm, Sweden |

    |Vax под Ultrix |Simprog AB, Stockholm, Sweden |

    |Vax под VMS |Stockholm Computing Centre QZ, Sweden |

    Сформированная в 1972 г. организация Simula Standards Group

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

    выпущена в 1986г. Изменения в язык вносит Simula Developement Group. Кроме

    того, есть ассоциация пользователей языка Simula.

    2.2. SMALLTALK

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

    при экспериментировании в технологии объектно-ориентированного

    программирования. В последние годы появился дешевый компилятор C++ для

    персоналок, который нарушил баланс в сторону C++ среди первых пользователей

    объектно-ориентированных систем. Smalltalk был разработан на фирме Xerox

    PARC в результате исследовательского проекта, воплотив в себе ряд идей о

    том, как человек может использовать компьютер наилучшим образом. Сюда

    относились использование персональных рабочих станций, интерактивных сред,

    графических интерфейсов, мыши и объектно-ориентированного программирования.

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

    так и во всей компьютерной индустрии. В 80-х гг. соединение этих мощных

    идей в языке и системе Smalltalk-80 было несоразмерно с малым числом

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

    Язык

    Основной чертой языка Smalltalk является его универсальность. История

    языка характеризуется тремя признаками:

    - данные хранятся как объекты, которые освобождаются автоматически;

    - выполнение действий осуществляется через посылку сообщений

    объектам;

    - поведение объектов описано в классах.

    В языке все является объектом. Все взаимодействия объектов

    осуществляются через посылки сообщений, даже сложение целых чисел: 1 +2. В

    этом языке 1 - это экземпляр класса целых чисел, + - имя метода, 2-

    аргумент. Объект 1 получает сообщение + 2 и возвращает результат

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

    синтаксис. Но из-за этого увеличивается цена накладных расходов на

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

    программы. Автоматическая сборка мусора тоже вызывает проблемы

    быстродействия. Smalltalk не поддерживает множественное наследование.

    С другой стороны, Smalltalk-80 совсем не маленький язык. Существует

    большая библиотека классов: более 250 классов и более 2000 методов. Работа

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

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

    Среда

    Smalltalk-80 тесно связан с развитой средой программирования.

    Пользовательский интерфейс состоит из набора экранных образов: это

    прямоугольные области, содержащие текст или графику, которые можно

    перемещать по экрану, изменять в размере, заменять меткой или закрывать.

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

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

    Визуальные объекты для пользователя - это курсоры, высвечивание, меню,

    полоски сдвига и рамки с подсказкой.

    Основные компоненты системы активизируются внутри экранных образов.

    Сюда

    входят текстовый редактор, редактор формы и битовый редактор для создания

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

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

    процесса и отладчики.

    Smalltalk был разработан для индивидуальной работы программиста на

    персональной рабочей станции. Таким образом, эта система первоначально была

    доступна только как однопользовательская. Сейчас в ней уже есть средства

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

    Поставщики

    В 1981-82 гг. четырем фирмам предлагалось реализовать Smalltalk на

    своей аппаратуре. После этого эксперимента Smalltalk поставлялся

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

    Кроме того, был выпущен ряд книг по языку и его реализации. Однако, язык не

    был запатентован фирмой Xerox вплоть до 1986 г. Эта фирма до сих пор

    контролирует рынок Smalltalk-80 с помощью отделения SIS и фирмы ParcPlace

    Systems. Другие продавцы имеют лицензию на продукт и его различные

    реализации. Исключением является фирма Digitalk, выпустившая свою

    собственную версию для PC - Smalltalk/V. В таблице С2.2 приведены доступные

    в настоящее время продукты Smalltalk.

    Таблица C2.2 Продавцы и продукты языка Smalltalk

    |Продукт |Платформа |Продавец |

    |Smalltalk-80 |DEC Station 3100 под Ultrix |ParcPlace systems |

    | |PC 80386 под MS-DOS | |

    | |Sun-3, 4, 386i | |

    | |Apple Macintosh II, Plus и SE | |

    | |HP 9000 series 300 | |

    | |Apollo Series 3000, 4000 | |

    | |Apollo DN570, 580, 590 | |

    |Smalltalk-80 |Tektronix 4315 |Tektronix |

    |Color Smalltalk-80|Tektronix 4316, 17 и 19 |Tektronix |

    |Smalltalk-80 |Xerox 8010/1108 и 6085/1186 |Xerox SIS |

    |Smalltalk/V |IBM PC/XT/AT под MS-DOS |Digitalk |

    |Smalltalk/V 286 |286 и 386 PC под MS-DOS |Digitalk |

    |Smalltalk/V Mac |Apple Macintosh II, PLUS и SE |Digitalk |

    Будущее языка Smalltalk волнует как пользователей, так и поставщиков. В

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

    пользователей Smalltalk - OOPSTAD. Она публикует новости HOOPLA (Hooray for

    Object-Oriented Languages). Работу по стандартизации взял на себя IEEE

    Microprocessor Standards Committee (P1152). Основное внимание он уделяет

    языку и базовым классам типа Number и Collection. Основные поставщики и ряд

    консультантов сформировали Консорциум Smalltalk в целях развития применения

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

    для отдельных пользователей и корпораций.

    2.3. ПРОДУКТЫ, ОСНОВАННЫЕ НА ЯЗЫКЕ СИ

    В настоящее время объектно-ориентированные языки стремятся приблизиться

    к традиционным языкам (в основном к языку Си). Для этого есть ряд причин:

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

    - интерфейсы существующих систем намного проще;

    - язык более приемлем в области управления;

    - поставка может быть осуществлена на стандартных платформах;

    - гарантия переносимости между платформами.

    Наибольшим потенциалом для больших коммерческих организаций обладает

    язык C++ фирмы AT&T. Хотя он и не имеет пока большого количества средств

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

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

    инструменты и библиотеки классов. Кроме того, несколько компаний

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

    таблице C2.3 подводятся итоги доступных продуктов, основанных на Си.

    Таблица С2.3 Продавцы и продукты языков, основанных на Си

    |Продукт |Платформа |Продавец |

    | |Трансляторы C++ | |

    |Advantage C++ |IBM PC под MS-DOS, Xenix, Unix |Lifeboat |

    |Designer C++ |Macintosh II |Oasys |

    | |IBM PC под MS-DOS, OS/2 | |

    | |IBM RT | |

    | |PC 80386 под Unix, Xenix | |

    | |HP 9000/300 и 9000/800 | |

    | |NEC Astra | |

    | |AT&T 3b2 | |

    | |DEC Vax под VMS и Ultrix | |

    | |Sun-3, Sun-4 | |

    |Glockenspiel C++ |IBM PC под MS-DOS, OS/2 |Glockenspiel |

    | |386/ix и Xenix | |

    | |AT&T 3b2 под Sys V.2 | |

    | |HP 9000/300 | |

    | |Sun-3, Sun/386i | |

    | |IBM RT под Sys V.2 | |

    | |Apollo | |

    | |DEC Vax под Ultrix и VMS | |

    |Guidelines C++ |IBM PC под MS-DOS |Guidelines |

    | |Компиляторы С++ | |

    |Oregon C++ |Sun-3 |Oregon |

    | |DEC Vax под Ultrix | |

    | |PC 386 под Xenix | |

    |Zortech C++ |IBM PC под MS-DOS |Zortech |

    |Другие продукты, основанные на языке Си |

    |C-talk |IBM-PC под MS-DOS |CNS |

    | |Macintosh | |

    |Complete C |IBM PC под MS-DOS, OS/2, Unix |Complete |

    | | |Computer |

    | | |Corporation |

    |Objective C |Sun |Stepstone |

    | |DEC Vax | |

    | |Apollo | |

    | |HP 9000 series 200/300 | |

    2.3.1. C++

    Язык

    Язык С++ в основном является языком Си со специальными синтаксическими

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

    недостатков языка Си: теперь ведется проверка типов аргументов функций,

    можно производить макроподстановку функций. Также в него включены некоторые

    средства проекта стандарта Ansi C. По завершении стандарта C++ будет

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

    особенностью C++ является поддержка абстракции данных и объектно-

    ориентированного программирования. Абстракция данных поддерживается с

    помощью введения типов, определенных пользователем. Например, предположим,

    что есть новый тип данных shape, используемый в графической

    системе. Этот тип определяется с помощью оператора class:

    class shape {

    point centre;

    colour col;

    // ... комментарий

    public:

    point where() {return centre; }

    void move(point to)

    { centre = to; draw(); }

    virtual void draw();

    virtual void rotate(int);

    // ... комментарий

    };

    Это определение содержит информацию как общую, так и частную. Сначала

    представление фигуры shape определяется двумя элементами частных данных -

    центром и цветом. Затем идет интерфейс, содержащий общую информацию.

    Пользователь может получить координаты центра, перемещать центр фигуры в

    данную точку, рисовать фигуру и вращать ее. Функции draw() и rotate()

    нельзя определить для абстрактного типа shape. Они называются виртуальными

    функциями и определяются позже для каждой специфической фигуры: окружности,

    треугольника или квадрата. Каждая из них определяется оператором class. Это

    означает, что, например, новый тип данных circle является производным

    класса shape, который называется его базовым классом. Производный класс

    наследует свойства базового класса. В данном случае класс circle наследует

    члены класса col и centre класса shape. Кроме этого, у него есть член

    radius. Функции draw() и rotate() теперь реализованы для класса circle:

    class circle: public shape { // окружность - это контур

    int radius;

    public:

    void draw() { /* ... */ };

    void rotate(int) {} // rotate - нулевая функция

    };

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

    основном реализацией наследования методом задания взаимодействия типов

    данных [Stroustrup 1988].

    С++ не поддерживает автоматическую сборку мусора: размещение и

    освобождение памяти осуществляется функциями конструктора и деструктора.

    При нормальном вызове функции происходит статическое связывание,

    определяемое во время компиляции. Динамическое связывание реализовано как

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

    не может быть определена до выполнения программы. Некоторые версии С++

    поддерживают множественное наследование.

    Хотя С++ поддерживает объектно-ориентированное программирование, он не

    навязывает его. Можно игнорировать объектные расширения и просто писать

    обычные программы языка Си. Это преимущество с точки зрения совместимости

    двух языков и основная причина повышенного интереса к С++ в разработке ПО.

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

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

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

    сообщества Си в сторону ООС. Есть признаки, что при соответствующем курсе

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


    Приглашения

    09.12.2013 - 16.12.2013

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

    09.12.2013 - 16.12.2013

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




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