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

Рефераты, курсовые, дипломные, контрольные (предпросмотр)

Тип: Курсовая работа. Файл: Word (.doc) в архиве zip. Категория: Информатика, IT
Адрес этого реферата http://referat-kursovaya.repetitor.info/?essayId=24740 или
Загрузить
В режиме предпросмотра не отображаются таблицы, графики и иллюстрации. Для получения полной версии нажмите кнопку «Загрузить». Рефераты, контрольные, дипломные, курсовые работы предоставляются в ознакомительных целях, не для плагиата.
Страница 1 из 7 [Всего 7 записей]1 2 3 4 5 » ... Последняя »

Предисловие

Наиболее распространенным языком программирования последнего десятилетия безусловно является С. Этому способствовали такие его особенности, как лаконичность, мощность, гибкость, мобильность. Вместе с тем, стремительное усложнение приложений, для реализации которых применяются традиционные процедурно-ориентированнные языки программирования и, в частности С, заставляют говорить об определенном кризисе в их использовании, связанном прежде всего с недостаточной надежностью и выразительной способностью.

Подобных недостатков во многом лишены языки объектно-ориентированнго программирования (ООП), в основе которых лежит идея моделирования объектов посредством иерархически связанных классов. Отдельно взятый класс рассматривается как совокупность множества данных и операций над ними, причем доступ к элементам данных класса возможен только посредством операций этого класса. Установление четкой взаимозависимости между данными и операциями ведет к большой целостности данных и значительно повышает надежность программ по сравнению с традиционными языками программирования. Кроме того, идея программирования с помощью классов во многом использует тот же подход, который позволяет людям формировать модели объектов реального мира.

Впервые идеи ООП были реализованы в середине 60-х годов в языке программирования Симула-67. Последний, однако, не нашел в то время широкого распространения как в силу своей относительно меньшей производительности по сравнению с традиционными языками типа FORTRAN, ALGOL, PL/1 так и, возможно, неадекватности предлагаемых средств решаемым в то время задачи. Еще одним важным ограничением для распространения Симулы-67 стали трудности, с которыми пришлось столкнуться большинству программистов при его изучении. Дело в том, что наряду с целым рядом безусловных достоинств, идеи ООП обладают и одним существенным недостатком - они далеко не просты для понимания и особенно для освоения с целью практического использования.

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

С++ - это объектно-ориентированыый язык, то есть язык, позволяющий программисту оперировать объектами некоторых типов, предварительно им определенным. Название языка "С++" отражает эволюционный характер изменения языка С (запись "++", в языке С, означает, что к какой-то переменной прибавляется единица). Он имеет еще более мощные и гибкие средства для написания эффективных программ, чем С, от которого он произошел. Человек, программирующий на традиционных языках, может просто потерять голову от тех возможностей, которые предоставляет С++.

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

Типы, операции и операторы С очень близки к тому, с чем мы имеем дело в Ассемблере -числа, адреса, арифметические и логические действия, циклы... Кроме того, многие особенности С недвусмысленно намекаю компилятору, как сократить код и время исполнения программы. Эти характерные черты языка С позволяют написать эффективно работающий и не слишком сложный компилятор. И хотя в машинных кодах на разных компьютерах элементарные операции обозначаются по-разному, вряд ли разработчику компилятора придет в голову интерпретировать простейшие выражения каким-нибудь оригинальным способом. Именно поэтому язык С "идет везде и на всем", программы, написанные на нем, работают эффективно, и их можно переносить с одного компьютера на другой.

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

В любом случае вы можете рассматривать код собственной программы как данные, а массив данных как код функции, квадратную матрицу как вектор, а текст как бинарное дерево. Что бы ни находилось в памяти - это всего лишь последовательная цепочка чисел. Если вы не боитесь риска - можете делать все, что вам вздумается.

Современные программисты выбирают С не только из-за его преимуществ. В настоящее время мы имеем дело с цепной реакцией: чем больше написано на С, тем больше на нем напишут еще. Это одна из причин, почему язык С++ сохраняет С в качестве подмножества.

По мнению автора С++, Бьерна Страуструпа, различие между идеологией С и С++ заключается примерно в следующем: программ на С отражает "способ мышления" процессора, а С++ - способ мышления программиста. Отвечая требованиям современного программирования, С++ делает акцент на разработке новых типов данных, наиболее полно соответствующих концепциям выбранной области знаний и задачам приложения. На С пишут библиотеки функций, С++ позволяет создавать библиотеки классов. Класс является ключевым понятием С++. Описание класса содержит описание данных, требующихся для представления объектов этого типа, и набор операций для работы с подобными объектами.

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

Часто в целях повышения эффективности и упрощения структуры программы приходится заставлять ее работать с разнородными объектами так, как если бы они имели один и тот же тип. Например, окружность и квадрат естественно рассматривать как варианты геометрической фигуры. Полезно составлять списки фигур, нарисованных на экране, или функций, которые их размножают, двигают и т.д. О точном типе объекта приходится порой забывать. Список геометрических фигур "не знает", что в нем находится - отрезки или звездочки. Не знает этого и компилятор. Но все время, пока вы рисуете эти объекты, неизбежно приходится "помнить", что они из себя представляют. Конечно, возможности низкого уровня позволяют "забывать" и "вспоминать" когда и как нам заблагорассудится, но при этом компилятор теряет контроль над осмысленностью действий.

Использование производных классов и виртуальных функций позволяет избежать рискованной техники и не заботится о том, в какой форме объект типа "геометрическая фигура" хранит информацию о том, круг он или квадрат. (Кроме возможностей ООП, создание типов данных "треугольник" или "квадрат" как производные от базового класса "геометрическая фигура" отражает логическую связь понятий). Виртуальные функции, по существу, определяют, что именно можно делать с объектом, а не то, как это делать. Создавая класс "геометрическая фигура", мы можем включить в него виртуальные функции рисования, увеличения, поворота. С использованием этих функций можно создать еще один член класса.

RSSСтраница 1 из 7 [Всего 7 записей]1 2 3 4 5 » ... Последняя »


При любом использовании материалов сайта обязательна гиперссылка на сайт «Репетитор».
Разработка и Дизайн компании Awelan
www.megastock.ru
Проверить аттестат