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

Автор работы: Пользователь скрыл имя, 19 Августа 2013 в 14:20, контрольная работа

Краткое описание

Все объектно-ориентированные языки происходят от языка Симула,
разработанного в начале 60-х гг. в NorwegianComputingCentre. Синтаксис
языка взят из Алгола-60. Основными новшествами были понятия объекта, класса
и наследования. Симула не навязывает строгую инкапсуляцию данных и не
заботится о деталях реализации. Модули можно перекомпилировать по
отдельности, не меняя внешние интерфейсы. Проверка типов осуществляется во
время компиляции. Сборка мусора осуществляется системой поддержки
работающей программы.

Содержание работы

1. Объектно-ориентированные языки программирования, основные понятия и принципы.
2. Привод оптических дисков: назначение, разновидности. Принципы функционирования и характеристики.
3. Известен список вкладчиков банка с указанием фамилий, суммы и срока вклада (6 или 12 месяцев) и две годовые процентные ставки, не зависящие от суммы вклада: 10% для срока 6 месяцев и 12% для 12 месяцев. Определить величину вклада каждого клиента банка на момент планового получения им вклада.

Содержимое работы - 1 файл

Информатика контрольная.docx

— 99.21 Кб (Скачать файл)

Lifeboat для IBM PC.

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

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

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

 

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. Она

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

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

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

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

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

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

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

 

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

 

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.

     

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

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

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

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

две самостоятельные версии: 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.

 

  EIFFEL

Язык

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

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

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

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

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

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

preconditions, postconditions или invariants;

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

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

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

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

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

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

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

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

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

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

Среда

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

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

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

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

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

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

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

Java

С 1995 года стал широко распространяться новый  объектно-ориентированный язык программирования Java, ориентированный на сети компьютеров и, прежде всего, на Internet. Синтаксис этого языка напоминает синтаксис языка C++, однако эти языки имеют мало общего. Java интерпретируемый язык: для него определены внутреннее представление (bytecode) и интерпретатор этого представления, которые уже сейчас реализованы на большинстве платформ. Интерпретатор упрощает отладку программ, написанных на языке Java, обеспечивает их переносимость на новые платформы и адаптируемость к новым окружениям. Онпозволяет исключить влияние программ, написанных на языке Java, на другие программы и файлы, имеющиеся на новой платформе, и тем самым обеспечить безопасность при выполнении этих программ. Эти свойства языка Java позволяют   использовать его как основной язык программирования для программ, распространяемых по сетям (в частности, по сети Internet).

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

 

1.  ACTOR

 

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

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

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

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

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

на Microsoft C.

 

 2. OBJECT PASCAL

 

Object Pascal - это объектно-ориентированное расширение Паскаля,

разработанное Н. Виртом совместно с командой с фирмы Apple. Классы (типы)

реализованы как расширение паскалевской структуры RECORD. В Object Pascal

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

определяются как процедуры  или функции Паскаля, определяемые по имени

класса. Сообщения посылаются с помощью обычных конструкций  Паскаля для

определения поля.

Object Pascal использовался для внутренних разработок фирмы Apple.

Библиотека классов Object Pascal составляет основу интегрированной системы

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

[Schmucker 1986].

 

   ЯЗЫКИ, ПОДДЕРЖИВАЮЩИЕ АБСТРАКЦИЮ ДАННЫХ.

Раздаются возгласы, что  ряд других языков также либо объектно -

ориентированные, либо поддерживают объектно-ориентированные понятия. В этом

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

программистов - Modula-2 и Ada, которые сравниваются с вышеприведенными

объектно-ориентированными языками. В таблице С2.4 подведены итоги основных

средств этих языков и основных коммерческих объектно-ориентированных

языков.

 

     ADA

Ada был создан в Министерстве Обороны США для использования во встроенных

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

контрактах в некоторых  областях как в США, так и в Великобритании.

Благодаря этому такие  системы являются естественными  прикладными задачами

для объектно - риентированных понятий: значительные усилия были затрачены

на доказательство того, что Ада поддерживает ООС.

Новые типы данных (классы) можно  задать в языке Ада как пакеты. Пакет

содержит как общую, так  и частную информацию. Пользовательский интерфейс

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

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

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

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

операторам типа +. Ада  не позволяет типам наследовать  информацию или

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

наследования - обобщение (genericity), позволяющее экспортировать

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

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

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

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

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

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