OLE (Протоколы и стандарты объектно-ориентированного программирования)

2016-07-31СтудИзба

Описание файла

Документ из архива "Протоколы и стандарты объектно-ориентированного программирования", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "OLE"

Текст из документа "OLE"

OLE

DDE

Clipboard

РЕФЕРАТ

по дисциплине "Теория проектирования трансляторов"

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

Выполнен студентом группы АП-1-91 Маслюковым А.О.

СОДЕРЖАНИЕ

Предисловие

MS Windows и новый метод разработки программ

Динамический обмен данными

OLE-технология

Заключение

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

Приложение 1.Пример использования OLE-технологии

Предисловие

Наиболее распространенным языком программирования последне-

го десятилетия безусловно является С. Этому способствовали такие

его особенности, как лаконичность, мощность, гибкость, мо-

бильность. Вместе с тем, стремительное усложнение приложений, для

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

ваннные языки программирования и, в частности С, заставляют гово-

рить об определенном кризисе в их использовании, связанном преж-

де всего с недостаточной надежностью и выразительной способностью.

Подобных недостатков во многом лишены языки объектно-ориен-

тированнго программирования (ООП), в сонове которыхлежит идея мо-

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

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

данных и операций над ними, причем доступ к элементам данных

класса возможен только посредством операций этого класса. Уста-

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

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

ность программ по сравнению с традиционными языками программиро-

вания. Кроме того, идея программирования с помощью классов во

многом использует тот же подход, который позволяет людям формиро-

вать модели объектов реального мира.

Впервые идеи ООП были реализованы в середине 60-х годов в

языке программирования Симула-67. Последний, однако, не нашел в

то время широкого распространения как в силу своей относительно

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

типа FORTRAN, ALGOL, PL/1 так и, возможно, неадекватности предла-

гаемых средств решаемым в то время задачи. Еще одним важным огра-

ничением для распространеия Симулы-67 стали трудности, с которы-

ми пришлось столкнуться большинству программистов при его изуче-

нии. Дело в том, что наряду с целым рядом безусловных достоинств,

идеи ООП обладают и одним существенным недостатком - они далеко

не просты для понимания и особенно для освоения с целью практи-

ческого использования.

С++ - развитие С.

С++ - это объектно-ориентированыый язык, то есть язык, поз-

воляющий программисту оперировать объектами некоторых типов,

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

эволюционный характер изменения языка С (запись "++", в языке С,

означает, что к какой-то переменной прибавляется единица). Он

имеет еще более мощные и гибкие средства для написания эффектив-

ных программ, чем С, от которого он произошел. Человек, програм-

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

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

Но не менее важным является то, что такой распространенный и

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

эффективен, переносим. Чего только нет в языке С: строковых дан-

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

нет. Нет даже ввода-вывода.

Типы, операции и операторы С очень близки к тому, с чем мы

имеем дело в Ассемблере,- числа, адреса, арифметические и логи-

ческие действия, циклы... Кроме того, многие особенности С нед-

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

нения программы. Эти характерные черты языка С позволяют напи-

сать эффективно работающий и не слишком сложный компилятор. И хо-

тя в машинных кодах на разных компьютерах элементарные операции

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

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

нальным способом. Именно поэтому язык С "идет везде и на всем",

программы, написанные на нем, работают эффективно, и их можно пе-

реносить с одного компьютера на другой.

Большинство языков программирования созданы для решения оп-

ределенного круга задач. В них не только не хватает определенных

типов данных и функций, но и много лишнего с точки зрения челове-

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

зированные типы данных или операторы, требующие нетривиальной

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

вы ими не собираетесь пользоваться. Поэтому С, в котором нет ни-

чего лишнего, популярен среди широкого круга программистов. Соот-

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

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

тройствами ввода-вывода, математическими объектами и т.д. Остает-

ся только выбрать то, что нужно лично вам. Заголовочные файлы об-

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

ных, глобальные переменные, макроопределения... Они во многом ус-

траняют противоречие между эффективностью программы и удобством

использования библиотечных функций. Они также позволяют не повто-

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

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

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

рать без правил". В зависимости от устройства и операционной сис-

темы вашей машины вы можете "влезть" в видеопамять или использо-

вать системные программы, находящиеся в оперативной памяти.

В любом случае вы можете рассматривать код собственной прог-

раммы как данные, а массив данных как код функции, квадратную

матрицу как вектор, а текст как бинарное дерево. Что бы ни нахо-

дилось в памяти - это всего лишь последовательная цепочка чисел.

Если вы не боитесь риска - можете делать все, что вам вздумается.

Современные прграммисты выбирают С не только из-за его преи-

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

больше написано на С, тем больше на нем напишут еще. Это одна из

причин, почему язык С++ сохраняет С в качестве подмножества.

По мнению автора С++, Бьерна Страуструпа, различие между

идеологией С и С++ заключается примерно в следующем: программ на

С отражает "способ мышления" процессора, а С++ - способ мышления

программиста. Отвечая требованиям современного программирования,

С++ делает акцент на разработке новых типов данных, наиболее пол-

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

приложения. На С пишут библиотеки функций, С++ позволяет созда-

вать библиотеки классов. Класс является ключевым понятием С++.

Описание класса содержит описание данных, требующихся для пред-

ставления объектов этого типа, и набор операций для работы с по-

добными объектами.

В отличие от традиционных структур С или Паскаля, членами

класса являются не только данные, но и функции. Функции-члены

класса имеют привилегированный доступ к данным внутри объектов

этого класса и обеспечивают интерфейс между этими объектами и ос-

тальной программой. При дальнейшей работе совершенно не обяза-

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

"встроенных функций". В этом смысле класс подобен электрическому

прибору - мало кто знает о его устройстве, но все знают, как им

пользоваться.

Часто в целях повышения эффективности и упрощения структуры

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

тами так, как если бы они имели один и тотже тип. Например, ок-

ружность и квадрат естественно рассматривать как варианты геомет-

рической фигуры. Полезно составлять списки фигур, нарисованных на

экране, или функций, которые их размножают, двигают и т.д. О точ-

ном типе объекта приходится порой забывать. Список геометричес-

ких фигур "не знает", что в нем находится - отрезки или звездоч-

ки. Не знает этого и компилятор. Но все время, пока вы рисуете

эти объекты, неизбежно приходится "помнить", что они из себя

представляют. Конечно, возможности низкого уровня позволяют "за-

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

этом компилятор теряет контроль над осмысленностью действий.

Использование производных классов и виртуальных функций поз-

воляет избежать рискованной техники и не заботится о том, в ка-

кой форме объект типа "геометрическая фигура" хранит информацию о

том, круг он или квадрат. (Кроме возможностей ООП, создание ти-

пов данных "треугольник" или "квадрат" как производные от базово-

го класса "геометрическая фигура" отражает логическую связь поня-

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

можно делать с объектом, а не то, как это делать. Создавая класс

"геометрическая фигура", мы можем включить в него виртуальные

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

функций можно создать еще один член класса.

Затем можно разработать библиотеку программ интерактивной

графики, снабдив ее средствами диалого, функциями вроде дополне-

ния некоторой области экрана одинаковыми геометрическими фигура-

ми и т.д. Библиотечные функции будут вызывать функции-члены клас-

са "геометрическая фигура": рисования, движения, поворота,увели-

чения. А после того, как мы все это напишем, откомпилируем, спря-

чем текст функций, которые считаем своей интеллектуальной соб-

ственностью, начинается самое интересное. Теперь мы можем опи-

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

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

объяснить, как их рисовать, увеличивать и поворачивать. Как дви-

гать - объяснять не надо. Это уже есть в базовом классе. Функции

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

для них это варианты геометричесой фигуры. Следует отметить, что

в производных классах могут (и, как правило, должны) появлятся

данные и функции, которых нет в базовом классе. Однако ни одна из

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

нает о специфических свойствах многоугольника или эллипса, кроме

того, что они по-своему рисуются, увеличиваются и поворачиваются.

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

поздние версии С++ позволяют сделать один класс производным от

нескольких других.

При написании программы часто допускаются досадные оплошнос-

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

поздно. Например, если переменная по смыслу - знаменатель дроби,

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

вается ноль, а не тогда, когда на этот ноль что-нибудь делится.

Или, скажем, функция рисования точки. Невозможно удержаться от

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

экрана. В то же время , если мы пишем программу рисования линии,

обязательно нужна функция, которая тупо ставит точку - и как мож-

но быстрее. Существует много ситуаций, когда функции и данные

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

над которыми ва "хорошо подумали". В С++ этого можно добиться,

сделав "опасные" данные и функции защищенными членами какого-ни-

будь класса. К ним имеют доступ только функции-члены этого же

класса, а так же друзья класса. Напротив, если данные или фун-

кции-члены объявлены public, они являются общедоступными.

С++ предоставляет в распоряжение программиста сложные типы

данных. Однако ни аппарат классов, ни перегрузка операций не

влияют на эффективность. То, что класс - это класс, известно

только компилятору. Если функции-члены классов объявлены inline,

на их вызов не требуется время. Фактически это не функции, а под-

становки. Лишь виртуальные функции оставляют относительно не-

большой след в оперативной памяти.

Из всего выше сказанного вытекает логичный вывод: С++ наибо-

лее удобный, универсальный и необходимый язык. Но все же возни-

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

ципы ООП, что можно было бы "потрогать" любому программисту или

пользователю. Ответ очевиден - это Microsoft Windows.

MS Windows и новый метод разработки программ.

Одним из наиболее важных механизмов взаимодействия программ

является обмен данными. В MS Windows существует несколько способов

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

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее