Войти в мой кабинет
Регистрация
ГОТОВЫЕ РАБОТЫ / КУРСОВАЯ РАБОТА, ПРОГРАММИРОВАНИЕ

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

irina_krut2020 300 руб. КУПИТЬ ЭТУ РАБОТУ
Страниц: 25 Заказ написания работы может стоить дешевле
Оригинальность: неизвестно После покупки вы можете повысить уникальность этой работы до 80-100% с помощью сервиса
Размещено: 10.03.2020
2. Функциональное программирование Первым функциональным языком стал LISP. Роль основной конструкции в функциональных (аппликативных) языках играет выражение. К выражениям относятся скалярные константы, структурированные объекты, функции, тела функций и вызовы функций. Аппликативный язык программирования включает следующие элементы: - классы констант, которыми могут манипулировать функции; - набор базовых функций, которые программист может - использовать без предварительного объявления и описания; - правила построения новых функций из базовых; - правила формирования выражений на основе вызовов функций. Программа состоит из совокупности описаний функций и выражений, которые необходимо вычислить. Данное выражение вычисляется посредством редукции, то есть серии упрощений, до тех пор, пока это возможно по следующим правилам: вызовы базовых функций заменяются соответствующими значениями; вызовы небазовых функций заменяются их телами, в которых параметры замещены аргументами. Функциональное программирование не использует концепцию памяти как хранилища значений переменных. Операторы присваивания отсутствуют, вследствие чего переменные обозначают не области памяти, а объекты программы, что полностью соответствует понятию переменной в математике. Конечно же не исключается возможность составления программы без использования переменных. Кроме того, нет существенных различий между константами и функциями, то есть между программами и данными. В результате этого функция может быть значением вызова другой функции и может быть элементом структурированного объекта. Число аргументов при вызове функции не обязательно должно совпадать с числом параметров, указанных при ее описании. Приведенные здесь свойства характеризуют аппликативные языки как языки программирования очень высокого уровня. 3. Логическое программирование В результате появления языка PROLOG — в логическом, или реляционное программирование — появилась новая ветка развития. Этот язык был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является именно Пролог. Языки логического программирования, в частности Пролог, широко используются в системах искусственного интеллекта. Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами и цели (запроса). Процесс выполнения программы представляется как процесс общезначимой логической формулы, построенной из программы по правилам, установленным семантикой используемого языка. Результат вычисления является побочным продуктом этого процесса. В реляционном программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Языки логического программирования характеризуются: - высоким уровнем; - строгой ориентацией на символьные вычисления; - возможностью инверсных вычислений, то есть переменные в процедурах не делятся на входные и выходные; - возможной логической неполнотой, поскольку зачастую невозможно выразить в программе определенные логические соотношения, а также невозможно получить из программы все выводы правильные. 4. Объектно-ориентированное программирование Прототипом объектно-ориентированного программирования послужил ряд средств, входящих в состав языка SIMULA-67. Но в самостоятельный стиль оно оформилось с появлением языка SMALLTALK, разработанного А. Кеем в 1972 году и первоначально предназначенного для реализации функций машинной графики. Основная цель ООП, как и большинства других подходов к программированию – повышение эффективности разработки программ. Идеи ООП оказались плодотворными и нашли применение не только в языках программирования, но и в других областях Computer Science, например, в области разработки операционных систем. Концепция объектно-ориентированного программирования подразумевает, что основой управления процессом реализации программы является передача сообщений объектам. Поэтому объекты должны определяться совместно с сообщениями, на которые они должны реагировать при выполнении программы. В этом состоит главное отличие ООП от процедурного программирования. Таким образом, объектно-ориентированная программа состоит из объектов – отдельных фрагментов кода, обрабатывающего данные, которые взаимодействуют друг с другом через специальные интерфейсы.
Введение

На сегодняшний день можно выделить несколько типов языков программирования. Так же их можно классифицировать по принадлежности к одному из стилей таких как: - процедурный, - функциональный, - логический, - объектно-ориентированный.1.Процедурное программирование. Процедурное (императивное) программирование представляет собой архитектуру традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах. Программа на процедурном языке программирования как правило состоит из последовательности операторов (инструкций), задающих процедуру выполнения поставленной задачи. Основным оператором будет присваивание, который служит для изменения содержимого областей памяти. Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании. Процедурные языки можно кратко характеризовать следующими особенностями: - необходимостью явного управления памятью, и описанием переменных; - малой пригодностью для символьных вычислений; - отсутствием строгой математической основы; - высокой эффективностью реализации па традиционных ЭВМ. Основным классификационным признаком процедурного языка является его уровень. Уровень языка программирования определяют семантической емкостью его конструкций и степенью его ориентации на программиста. Чем более язык ориентирован на человека, тем выше его уровень. К процедурным языкам относятся: Ассемблер, С, Basic, Pascal.
Содержание

Введение 3 1. Объектно-ориентированная методология программирования 14 2.Объектно-ориентированные языки программирования 5 2.1 SMALLTALK 5 2.2 C++ 6 2.3 COMMON LISP OBJECT SYSTEM (CLOS) 7 2.4 ADA 6 2.5 EIFFEL 6 2.6 JAVA 6 2.7 OBJECT PASCAL 6 3. Система визуального объектно-ориентированного проектирования Delphi 5 Заключение 28 Список использованной литературы 29
Список литературы

1. Г. Буч «Объектно-ориентированный анализ и проектирование с примерами приложений на С++» Пер. с англ. - М.: Бином; СПб.: Невский диалект, 1999. 2. В. Фаронов «Deiphi 6» - СПб.: Питер, 2002. 3. Э. Ишкова «C++ начала программирования» - М.: Бином, 2001. 4. С. Немнюгин, Л. Перколаб «Изучаем Turbo Pascal» - СПб.: Питер, 2002. 5. С. С. Гайсарян «Объектно-ориентированное проектирование» (http://www.mista.ru/oop_book/index.htm) 6. Объектно-ориентированная методология программирования (http://www.math.rsu.ru/smalltalk/sml-a.ru.html) 7. Принципы объектно-ориентированного программирования – ArticlesD Лекции по Delphi (http://blackman.wp-club.net/lection/object.php) 8. Система визуального объектно-ориентированного проектирования Delphi - ArticlesD Лекции по Delphi (http://blackman.wp-club.net/lection/visualprg.php) 9. М.Плискин «Эволюция языков программирования» (http://ce2.ce.cctpu.edu.ru/edu/df/se/lang/lng_09.html) 10. Стили программирования (http://media.karelia.ru/~ftt/IVK/new2/Inflect/T_1_16.htm) 11. А. Жуков «Изучаем Delphi» - СПб.: Питер, 2003. 12. Структура экрана в среде Delphi (http://textbook.keldysh.ru/distant/delphi/del_2.htm) 13. Объектно-ориентированные системы: состояние и перспективы. Аналитический обзор по материалам фирмы OVUM. Обзор подготовил А. Г. Иванов. (http://www.math.rsu.ru/smalltalk/obzornew.ru.html) 14. Lections on Computer Science: Object Oriented Languages. Лекция 1. Объектно-ориентированные языки программирования. Сравнение с традиционными языками (http://math.msu.su/~vvb/2course/lect1.html) 15. Патрикеев Ю. Н. «Объектно-ориентированное проектирование» (http://www.object.newmail.ru/oop1.html) 16. Патрикеев Ю. Н. «Объектно-ориентированное программирование на Borland C++» (http://www.object.newmail.ru/obj0.html) А. Легалов «Итоги экспансии объектно-ориентированной парадигмы» (http://www.softcraft.ru/paradigm/process/pr01.shtml)
Отрывок из работы

Глава 1 Объектно-ориентированная методология программирования В течении последних нескольких лет развитие аппаратных средств существенно опережало развитие систем и средств программирования. Для изменения ситуации в лучшую сторону, в 70-80-х годах были предложены различные подходы к увеличению производительности труда программиста. Среди этих попыток выделяется такое направление, как объектно-ориентированный подход к конструированию и кодированию программ. Немаловажную роль в популярности этого подхода сыграла его тесная связь с интерфейсами пользователя (особенно графическими), так и включение элементов этого подхода в популярные (на персональных компьютерах фирмы IBM) реализации гибридных языков программирования C++ и Pascal with Objects фирмы Borland. До настоящего времени большая часть всех используемых программных систем построены на принципах структурного подхода, суть которого состоит в декомпозиции системы на ряд модулей, процедур, функций и структур данных, связанных общим алгоритмом функционирования. Но распространение мощных персональных компьютеров (сравнимых с рабочими станциями 70-80-х годов) создало в 90-х годах основу для широкого применения объектно-ориентированного подхода на практике. На сегодняшний день более широко начинают использоваться языки программирования, созданные в рамках объектно-ориентированной методологии, такие как Smalltalk и Java. Объектно-ориентированная методология (ООМ) ориентирована, прежде всего, на создание больших систем, коллективную их разработку, последующее активное сопровождение при эксплуатации и регулярные модификации. Среди типовых задач, для которых ООМ является перспективной, можно выделить такие: • автоматизация эксперимента, робототехника; • диспетчеризация, планирование; • интерфейс пользователя, анимация; • коммуникации, связь; • медицина, экспертные системы; • обработка коммерческой информации; • операционные системы; • системы управления; • тренажеры, моделирование. Основой объектно-ориентированной методологии программирования является объектный подход, когда прикладная предметная область представляется в виде совокупности объектов, которые взаимодействуют между собой посредством передачи сообщений. Объект – это совокупность данных (переменных) и способов работы с ними (компонентных процедур и функций). Состояние объекта характеризуется перечнем всех его возможных (обычно статических) свойств и значениями каждого из этих свойств (обычно динамических). Состояние объекта описывается его переменными. Поведение объекта (или его функциональность) характеризует то, как объект взаимодействует с другими объектами или подвергается взаимодействию других объектов, проявляя свою индивидуальность. Индивидуальность - это такие свойства объекта, которые отличают его ото всех других объектов. Поведение объекта реализуется в виде функций, которые называют методами. При этом структура объекта доступна только через его методы, которые в совокупности формируют интерфейс объекта. Данный подход позволяет объединить принимаемые решения в рамках объекта, объединяя в нем и структуру, и поведение, а, следовательно, снижая сложность отдельной программы (реализующей объект). Эта идея объединения структуры и поведения в одном месте и сокрытия всех данных внутри объекта, что делает их невидимыми для всех, за исключением методов самого объекта называется инкапсуляцией. Это позволяет объектам функционировать совершенно независимо друг от друга, скрывая за интерфейсом детали реализации. Инкапсуляция позволяет рассматривать объекты, как изолированные "черные ящики", которые знают и умеют выполнять определенные действия. С этой точки зрения, внутреннее устройство "черных ящиков" для нас значения не имеет, нам все равно, что происходит внутри. Важно только знать, что надо положить в ящик при обращении к нему и что мы при этом из него получим. Из этого следует, что объекты объектно-ориентированных систем - это минимальные единицы инкапсуляции. Но как управлять таким миром объектов, когда их становиться достаточно много? Ведь многие из них будут очень сильно отличаться друг от друга, а другие объекты будут очень похожи друг на друга. Здесь на сцену выходит одна из ключевых концепций объектно-ориентированного программирования - идея группировки объектов в классы, в соответствии с тем как они устроены и действуют. Такая идея впервые была реализована еще в 60-ые годы в языке Simula. Под классом принято понимать множество объектов, связанных общностью структуры и поведения. Класс можно сравнить с шаблоном, по которому создаются объекты. Именно класс вначале описывает переменные и методы объекта, то есть структуру и поведение объекта, и определяет механизмы создания реально существующего в системе объекта, который, когда создается, представляет собой экземпляр класса. Использование классов для наведения порядка в мире объектов - большое достижение, но можно пойти дальше, определяя некоторый порядок и среди классов. Достигается это с помощью введения механизма наследования - пожалуй, самого мощного средства в любой объектно-ориентированной системе, поскольку оно позволяет многократно использовать однажды созданный код. Механизм наследования очень прост: один класс, называемый в рамках этих отношений суперклассом, полностью передает другому классу, который называется подклассом, свою структуру и поведение, то есть все свои переменные и все методы. Что далее делать с этим богатством определяет только подкласс: он может добавить в структуру что-то свое, что-то из наследуемого интерфейса он может использовать без изменений, что-то изменить, и, разумеется, может добавить свои собственные методы. То есть класс с помощью подклассов расширяется, и как результат, создаваемые объекты становятся все более и более специализированными. Классы, расположенные по принципу наследования, начиная с самого общего, базового класса, образуют иерархию классов. Разумеется, система, реализующая такие принципы построения, предъявляет более жесткие, чем при структурном подходе, требования к производительности вычислительной системы. Из всего выше сказанного следует сделать вывод, что концептуально объектно-ориентированная методология программирования опирается на объектный подход, который включает четыре основных принципа: Абстрагирование. Выделение таких существенных характеристик объектов, которые отличают его ото всех других объектов и которые четко определяют особенности данного объекта с точки зрения дальнейшего рассмотрения и анализа. Только существенное для данной задачи и ничего более. Минимальной единицей абстракции в ООМ является класс. Ограничение доступа. Процесс защиты отдельных элементов объекта, не затрагивающий существенных характеристик объекта, как целого. Модульность. Свойство системы, связанное с возможностью декомпозиции на ряд тесно связанных частей (модулей). Модульность опирается на дискретное программирование объектов, которые можно модернизировать или заменять, не воздействуя на другие объекты и систему в целом. Существование иерархий. Ранжирование, упорядочивание по некоторым правилам объектов системы. Объектно-ориентированная методология (ООМ) состоит из следующих частей: • объектно-ориентированный анализ (OOA), • объектно-ориентированное проектирование (OOD), • объектно-ориентированное программирование (OOР). ООА - методология анализа сущностей реального мира на основе понятий класса и объекта, составляющих словарь предметной области, для понимания и объяснения того, как они (сущности) взаимодействуют между собой. Модели OOA в дальнейшем преобразуются в объектно-ориентированный проект. OOD - методология проектирования программного продукта, соединяющая в себе процесс объектной декомпозиции, опирающийся на выделение классов и объектов, и приемы представления моделей, отражающих логическую (структура классов и объектов) и физическую (архитектура моделей и процессов) структуру системы. Следующие понятия являются в OOD фундаментальными: Инкапсуляция. Инкапсуляция является важнейшим свойством объектов, на котором строится объектно-ориентированное программирование. Инкапсуляция – это объединение в одном классе данных и действий над ними. При этом включенные в объект подпрограммы (методы) напрямую работают с данными этого объекта, обращаются к другим методам этого объекта или методам объектов-предков. Инкапсуляция позволяет во многом изолировать класс от остальных частей программы, сделать его «самодостаточным» для решения конкретной задачи. В результате класс всегда несет в себе некоторую функциональность. Например, класс TForm в Delphi содержит (инкапсулирует в себе) все необходимое для создания Windows-окна, класс TTimer обеспечивает работу таймера и т.д. Единицей инкапсуляции в OOD является объект. Наследование Позволяет создавать иерархию классов, начиная с некоторого первоначального базового класса (предка) и продолжая более сложными, включающими (наследующими) элементы предшествующих классов (потомков или производных классов). Любой класс может быть порожден от другого класса. Для этого при его объявлении указывается имя класса-родителя: TChildClass = class(TParentClass) (язык Object Pascal) Порожденный класс автоматом наследует поля, методы и свойства своего родителя и может дополнять их новыми. Таким образом, принцип наследования обеспечивает поэтапное создание сложных классов и разработку собственных библиотек классов. Класс, поведение которого наследуется, называется суперклассом, а класс, который наследует поведение, называется подклассом. Принцип наследования приводит к созданию постоянно разрастающегося ветвящегося дерева классов. Каждый потомок дополняет возможности своего родителя новыми и передает их своим потомкам. Полиморфизм Такое свойство родственных классов решать схожие по смыслу проблемы разными способами. Для различных родственных классов можно задать единый образ действия (например, вывод на экран любой геометрической фигуры). Затем для каждого конкретного класса составляется своя подпрограмма, выполняющая это действие непосредственно для него (отображение точки отличается от отображения линии и т.д.), причем все эти подпрограммы должны иметь одно имя. Когда потребуется отобразить конкретную фигуру, будет выбрана из всего множества одноименных подпрограмм та, которая соответствует типу конкретного объекта. Если выводимый объект является точкой, то выбирается его подпрограмма, если линия – то ее. Из этого следует основная идея полиморфизма «один интерфейс – множество методов». Выбор конкретного действия зависит от ситуации. Созданный проект превращается в программный продукт в процессе объектно-ориентированного программирования - такой методологии программирования, которая основана на представлении программного продукта в виде совокупности объектов, каждый из которых является слепком (экземпляром) определенного класса, а классы образуют иерархию на принципах наследования. Таким образом, при объектно-ориентированном подходе исчезает понятие исполняемой программы. Решение поставленной задачи сводится к построению необходимых классов, и управлению создаваемыми ими объектами-экземплярами. Фундаментальная концепция OOP состоит в том, что объекты и классы взаимодействуют друг с другом путем передачи сообщений. Для этого необходимо, чтобы объекты определялись вместе с сообщениями, на которые они реагируют, в отличие от процедурного стиля программирования, когда сначала определяются данные, которые затем передаются в процедуры (функции) как параметры. При этом средством программирования выступает один из объектно-ориентированных языков программирования. Язык программирования называется объектно-ориентированным, если • есть поддержка объектов как абстракций данных, имеющих интерфейсную часть в виде поименованных операций, и защищенную область локальных данных; • все объекты относятся к соответствующим типам (классам); • классы могут наследовать от суперклассов. • любые данные хранятся как объекты, размещаемые с автоматическим выделением и освобождением памяти. Объект существует с системе до тех пор, пока его можно именовать. Последний принцип отличает чистые объектно-ориентированные языки такие как Smalltalk, Actor, от гибридных языков программирования, выросших из ранее существовавших процедурных языков (Object Pascal, C++). Эти подходы - как бы крайности в семействе объектно-ориентированных языков. Ближе к середине лежит совершенно новый, полностью построенный на принципах объектно-ориентированной идеологии, но все же нарушающий последний принцип, язык Java. Глава 2 Объектно-ориентированные языки программирования Объектно-ориентированные языки программирования пользуются в последнее время большой популярностью среди программистов, так как они позволяют использовать преимущества объектно-ориентированного подхода не только на этапах проектирования и конструирования программных систем, но и на этапах их реализации, тестирования и сопровождения. Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время. Однако современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran). Прохладному отношению к языку Simula 67 способствовало и то обстоятельство, что он был реализован как интерпретируемый (а не компилируемый) язык, что было совершенно неприемлемым в 60-е годы, так как интерпретация связана со снижением эффективности (скорости выполнения) программ. Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др. Эти языки так и остались экспериментальными, но в результате их исследования были разработаны современные объектно-ориентированные языки программирования. Обзор некоторых современных объектно-ориентированных языков приводится ниже. Smalltalk Язык Smalltalk был разработан командой Xerox Palo Alto Research Center Learning Research Group как программная часть Dynabook - фантастического проекта Алана Кея. В основу были положены идеи Simula.. Smalltalk является одновременно и языком программирования, и средой разработки программ. Это чисто объектно-ориентированный язык, в котором абсолютно все рассматривается как объекты; даже целые числа - это классы. Вслед за Simula, Smalltalk является важнейшим объектно-ориентированным языком, поскольку он не только оказал влияние на последующие поколения языков программирования, но и заложил основы современного графического интерфейса пользователя, на которых непосредственно базируются интерфейсы Macintosh, Windows и Motif. Известны пять выпусков языка Smalltalk, обозначаемых по году их появления: Smalltalk-72, -74. -76, -78, -80. Реализации 1972 и 1974 годов заложили основу языка, в частности идею передачи сообщений и полиморфизм, хотя механизм наследования еще не появился. В последующих версиях полноправное гражданство получили классы; этим достигла завершения точка зрения, что все состоит из объектов. Smalltalk-80 был перенесен на многие компьютерные платформы. В основу языка положены две простые идеи: • все является объектами; • объекты взаимодействуют, обмениваясь сообщениями. В табл.1 приведены характеристики языка Smalltalk с точки зрения семи основных элементов объектного подхода. Абстракции Переменные экземпляра Методы экземпляра Переменные класса Методы класса Да Да Да Да Инкапсуляция Переменных Методов Закрытые Открытые Модульность Разновидности модулей Нет Иерархии Наследование Шаблоны Метаклассы Одиночное Нет Да Типизация Сильная типизация Полиморфизм Нет Да (одиночный) Параллельность Многозадачность Непрямая (посредством классов) Сохраняемость Долгоживущие объекты Нет Таблица 1. Smalltalk. [1] Существенным недостатком Smalltalk является большое требование к памяти и низкая производительность полученных программ. Это связано с не очень удачной реализацией объектно-ориентированных особенностей. C++ Язык программирования C++ был разработан Бьерном Страуструпом, сотрудником AT&T Bell Laboratories. Непосредственным предшественником C++ является С with Classes, созданный тем же автором в 1980 году. Язык С with Classes, в свою очередь, был создан под сильным влиянием С и Simula. C++ - это в значительной степени надстройка над С. В определенном смысле можно назвать C++ улучшенным С, тем С, который обеспечивает контроль типов, перегрузку функций и ряд других удобств. Но главное в том, что C++ добавляет к С объектную ориентированность. Известны несколько версий C++. В версии 1.0 реализованы основные механизмы объектно-ориентированного программирования, такие как одиночное наследование и полиморфизм, проверка типов и перегрузка функций. В созданной в 1989 году версии 2.0 нашли отражение многие дополнительные свойства, возникшие на базе широкого опыта применения языка многочисленным сообществом пользователей. В версии 3.0 (1990) появились шаблоны и обработка исключений. C++ продолжает совершенствоваться и в настоящее время, так в 1998 году вышла новая версия стандарта, содержащая в себе некоторые довольно существенные изменения. Язык стал основой для разработки современных больших и сложных проектов.
Не смогли найти подходящую работу?
Вы можете заказать учебную работу от 100 рублей у наших авторов.
Оформите заказ и авторы начнут откликаться уже через 5 мин!
Похожие работы
Курсовая работа, Программирование, 30 страниц
360 руб.
Курсовая работа, Программирование, 31 страница
600 руб.
Курсовая работа, Программирование, 98 страниц
2000 руб.
Курсовая работа, Программирование, 39 страниц
800 руб.
Курсовая работа, Программирование, 30 страниц
360 руб.
Служба поддержки сервиса
+7(499)346-70-08
Принимаем к оплате
Способы оплаты
© «Препод24»

Все права защищены

Разработка движка сайта

/slider/1.jpg /slider/2.jpg /slider/3.jpg /slider/4.jpg /slider/5.jpg