Автор: Пользователь скрыл имя, 25 Февраля 2011 в 11:30, курсовая работа
В настоящее время можно выделить несколько типов языков программирования. Одним из важнейших признаков их классификации является принадлежность их к одному из стилей, основными из которых являются следующие стили:
• процедурный,
• функциональный,
• логический,
• объектно-ориентированный.
I.ВВЕДЕНИЕ 3
II. ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ МЕТОДОЛОГИЯ ПРОГРАММИРОВАНИЯ 6
III. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ 12
SMALLTALK 12
C++ 14
COMMON LISP OBJECT SYSTEM (CLOS) 15
ADA 16
EIFFEL 17
JAVA 18
OBJECT PASCAL 18
СИСТЕМА ВИЗУАЛЬНОГО ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОЕКТИРОВАНИЯ DELPHI. 19
IV.ЗАКЛЮЧЕНИЕ 24
ЛИТЕРАТУРА И ССЫЛКИ 26
ПРИЛОЖЕНИЕ 27
МИНИСТЕРСТВО
ОБРАЗОВАНИЯ РОССИЙСКОЙ
ФЕДЕРАЦИИ
ВОРОНЕЖСКИЙ
ИНСТИТУТ ВЫСОКИХ ТЕХНОЛОГИЙ
Факультет
заочно-дистанционного обучения
КУРСОВАЯ
РАБОТА
по курсу:
"ИНФОРМАТИКА"
на
тему:
«Объектно
– ориентированные языки программирования»
Выполнила: | |
Принял: | |
СОДЕРЖАНИЕ
В настоящее время можно выделить несколько типов языков программирования. Одним из важнейших признаков их классификации является принадлежность их к одному из стилей, основными из которых являются следующие стили:
1. Процедурное программирование
Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах.
Программа
на процедурном языке
Процедурные языки характеризуются следующими особенностями:
Одним из важнейших классификационных признаков процедурного языка является его уровень. Уровень языка программирования определяется семантической емкостью его конструкций и степенью его ориентации на программиста. Чем более язык ориентирован на человека, тем выше его уровень.
К процедурным языкам относятся: язык Ассемблера, С, Basic, Pascal.
2.
Функциональное
Первым таким языком был LISP.
Роль основной конструкции в функциональных (аппликативных) языках играет выражение. К выражениям относятся скалярные константы, структурированные объекты, функции, тела функций и вызовы функций.
Аппликативный язык программирования включает следующие элементы:
Программа представляет собой совокупность описаний функций и выражения, которые необходимо вычислить. Данное выражение вычисляется посредством редукции, то есть серии упрощений, до тех пор, пока это возможно по следующим правилам: вызовы базовых функций заменяются соответствующими значениями; вызовы небазовых функций заменяются их телами, в которых параметры замещены аргументами.
Функциональное программирование не использует концепцию памяти как хранилища значений переменных. Операторы присваивания отсутствуют, вследствие чего переменные обозначают не области памяти, а объекты программы, что полностью соответствует понятию переменной в математике. В принципе, можно составлять программы и вообще без переменных. Кроме того, нет существенных различий между константами и функциями, то есть между программами и данными. В результате этого функция может быть значением вызова другой функции и может быть элементом структурированного объекта. Число аргументов при вызове функции не обязательно должно совпадать с числом параметров, указанных при ее описании. Перечисленные свойства характеризуют аппликативные языки как языки программирования очень высокого уровня.
3. Логическое программирование
Новую область — логическое, или реляционное программирование, — открыло появление языка PROLOG. Этот язык был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является именно Пролог. Языки логического программирования, в особенности Пролог, широко используются в системах искусственного интеллекта.
Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами (в терминах условий или ограничений) и цели (запроса). Процесс выполнения программы трактуется как процесс общезначимости логической формулы, построенной из программы по правилам, установленным семантикой используемого языка. Результат вычисления является побочным продуктом этого процесса. В реляционном программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Языки логического программирования характеризуются:
4. Объектно-ориентированное программирование
Прототипом объектно-ориентированного программирования послужил ряд средств, входящих в состав языка SIMULA-67. Но в самостоятельный стиль оно оформилось с появлением языка SMALLTALK, разработанного А. Кеем в 1972 году и первоначально предназначенного для реализации функций машинной графики.
Основная цель ООП, как и большинства других подходов к программированию – повышение эффективности разработки программ. Идеи ООП оказались плодотворными и нашли применение не только в языках программирования, но и в других областях Computer Science, например, в области разработки операционных систем.
Концепция объектно-ориентированного программирования подразумевает, что основой управления процессом реализации программы является передача сообщений объектам. Поэтому объекты должны определяться совместно с сообщениями, на которые они должны реагировать при выполнении программы. В этом состоит главное отличие ООП от процедурного программирования. Таким образом, объектно-ориентированная программа состоит из объектов – отдельных фрагментов кода, обрабатывающего данные, которые взаимодействуют друг с другом через определённые интерфейсы.
II. Объектно-ориентированная методология программирования
В последнее время развитие аппаратных средств существенно опережало развитие систем и средств программирования. Чтобы выправить положение, в 70-80-х годах были предложены различные подходы к увеличению производительности труда программиста. Среди этих попыток выделяется такое направление, как объектно-ориентированный подход к конструированию и кодированию программ. Особую роль в популярности этого подхода сыграло как его тесная связь с интерфейсами пользователя (особенно графическими), так и включение элементов этого подхода в популярные (на персональных компьютерах фирмы IBM) реализации гибридных языков программирования C++ и Pascal with Objects фирмы Borland.
До сих пор большинство используемых программных систем построены на принципах структурного подхода, суть которого состоит в декомпозиции системы на ряд модулей, процедур, функций и структур данных, связанных общим алгоритмом функционирования. Но распространение мощных персональных компьютеров (сравнимых с рабочими станциями 70-80-х годов) создало в 90-х годах основу для широкого применения объектно-ориентированного подхода на практике. В последнее время более широко начинают использоваться языки программирования, созданные в рамках объектно-ориентированной методологии, такие как Smalltalk и Java.
Объектно-ориентированная методология (ООМ) ориентирована, прежде всего, на создание больших систем, коллективную их разработку, последующее активное сопровождение при эксплуатации и регулярные модификации. Среди типовых задач, для которых ООМ является перспективной, можно выделить такие:
В основе
объектно-ориентированной
Такой подход позволяет локализовать принимаемые решения рамками объекта, объединяя в нем и структуру, и поведение, а, следовательно, снижая сложность отдельной программы (реализующей объект). Эта идея объединения структуры и поведения в одном месте и сокрытия всех данных внутри объекта, что делает их невидимыми для всех, за исключением методов самого объекта называется инкапсуляцией. Это позволяет объектам функционировать совершенно независимо друг от друга, скрывая за интерфейсом детали реализации. Инкапсуляция позволяет рассматривать объекты, как изолированные "черные ящики", которые знают и умеют выполнять определенные действия. С этой точки зрения, внутреннее устройство "черных ящиков" для нас значения не имеет, нам все равно, что происходит внутри. Важно только знать, что надо положить в ящик при обращении к нему и что мы при этом из него получим. Таким образом, объекты объектно-ориентированных систем - это минимальные единицы инкапсуляции.
Но как управлять таким миром объектов, когда их становиться достаточно много? Ведь многие из них будут очень сильно отличаться друг от друга, а другие объекты будут очень похожи друг на друга. Здесь на сцену выходит одна из ключевых концепций объектно-ориентированного программирования - идея группировки объектов в классы, в соответствии с тем как они устроены и действуют. Такая идея впервые была реализована еще в 60-ые годы в языке Simula. Под классом понимается множество объектов, связанных общностью структуры и поведения. Класс можно сравнить с шаблоном, по которому создаются объекты. Именно класс вначале описывает переменные и методы объекта, то есть структуру и поведение объекта, и определяет механизмы создания реально существующего в системе объекта, который, когда создается, представляет собой экземпляр класса.
Наведение с помощью классов порядка в мире объектов - большое достижение, но можно пойти дальше, определяя некоторый порядок и среди классов. Достигается это с помощью введения механизма наследования - пожалуй, самого мощного средства в любой объектно-ориентированной системе, поскольку оно позволяет многократно использовать однажды созданный код. Механизм наследования очень прост: один класс, называемый в рамках этих отношений суперклассом, полностью передает другому классу, который называется подклассом, свою структуру и поведение, то есть все свои переменные и все методы. Что далее делать с этим богатством определяет только подкласс: он может добавить в структуру что-то свое, что-то из наследуемого интерфейса он может использовать без изменений, что-то изменить, и, разумеется, может добавить свои собственные методы. То есть класс с помощью подклассов расширяется, и как результат, создаваемые объекты становятся все более и более специализированными. Классы, расположенные по принципу наследования, начиная с самого общего, базового класса, образуют иерархию классов.
Информация о работе Объектно – ориентированные языки программирования